Zuletzt bearbeitet vor 3 Monaten
von Xineohp1506

Modul:RezeptBerechnung: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 15: Zeile 15:
         local unit = frame.args["ingredient" .. i .. "unit"]
         local unit = frame.args["ingredient" .. i .. "unit"]
          
          
        -- Wenn wir eine Zutat haben, starten wir die Inhaltsverarbeitung
         if name then   
         if name then   
             hasIngredients = true  -- Es gibt mindestens eine Zutat
             hasIngredients = true  -- Es gibt mindestens eine Zutat
Zeile 24: Zeile 23:
                     result = result .. "\n=== " .. group .. " ===\n" .. groupContent
                     result = result .. "\n=== " .. group .. " ===\n" .. groupContent
                 end
                 end
                -- Aktualisiere die Gruppe und setze `groupContent` zurück
                 group = newGroup
                 group = newGroup
                 groupContent = ""
                 groupContent = ""
Zeile 32: Zeile 30:
             if quantity and unit then
             if quantity and unit then
                 local newQuantity = quantity * persons
                 local newQuantity = quantity * persons
                 groupContent = groupContent .. "* " .. name .. ": " .. newQuantity .. " " .. unit .. "\n"
                 groupContent = groupContent .. "* [[Has Ingredient::" .. name .. "]]: " .. newQuantity .. " " .. unit .. "\n"
             end
             end
         end
         end

Version vom 11. November 2024, 11:35 Uhr

Die Dokumentation für dieses Modul kann unter Modul:RezeptBerechnung/Doku erstellt werden

local p = {}

function p.calculateIngredients(frame)
    local persons = tonumber(frame.args["persons"]) or 1
    local result = ""
    
    local group = nil
    local groupContent = "" -- Zwischenspeicher für Zutaten in der aktuellen Gruppe
    local hasIngredients = false  -- Prüfen, ob Zutaten vorhanden sind
    
    for i = 1, 100 do
        local newGroup = frame.args["ingredient" .. i .. "group"]
        local name = frame.args["ingredient" .. i .. "name"]
        local quantity = tonumber(frame.args["ingredient" .. i .. "quantity"])
        local unit = frame.args["ingredient" .. i .. "unit"]
        
        if name then  
            hasIngredients = true  -- Es gibt mindestens eine Zutat
            
            -- Wenn eine neue Gruppe anfängt und `groupContent` gefüllt ist, wird die vorherige Gruppe zum Ergebnis hinzugefügt
            if newGroup and newGroup ~= group then
                if groupContent ~= "" then
                    result = result .. "\n=== " .. group .. " ===\n" .. groupContent
                end
                group = newGroup
                groupContent = ""
            end

            -- Berechne die Menge basierend auf der Personenanzahl und füge sie zum `groupContent` hinzu
            if quantity and unit then
                local newQuantity = quantity * persons
                groupContent = groupContent .. "* [[Has Ingredient::" .. name .. "]]: " .. newQuantity .. " " .. unit .. "\n"
            end
        end
    end

    -- Letzte Gruppe hinzufügen, falls sie nicht leer ist
    if groupContent ~= "" then
        result = result .. "\n=== " .. group .. " ===\n" .. groupContent
    end

    -- Füge die Hauptüberschrift nur hinzu, wenn Zutaten vorhanden sind
    if hasIngredients then
        return "== Zutaten für " .. persons .. " Person(en) ==\n" .. result
    else
        return ""  -- Gibt eine leere Zeichenkette zurück, wenn keine Zutaten vorhanden sind
    end
end

return p