Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
||
Zeile 22: | Zeile 22: | ||
if newGroup and newGroup ~= group then | if newGroup and newGroup ~= group then | ||
if groupContent ~= "" then | if groupContent ~= "" then | ||
result = result .. " | result = result .. '<div class="ingredient-group"><h4>' .. group .. '</h4><ul>' .. groupContent .. '</ul></div>' | ||
end | end | ||
-- Aktualisiere die Gruppe und setze `groupContent` zurück | -- Aktualisiere die Gruppe und setze `groupContent` zurück | ||
Zeile 32: | Zeile 32: | ||
if quantity and unit then | if quantity and unit then | ||
local newQuantity = quantity * persons | local newQuantity = quantity * persons | ||
groupContent = groupContent .. | groupContent = groupContent .. '<li>[[Has Ingredient::' .. name .. ']]: ' .. newQuantity .. " " .. unit .. "</li>" | ||
end | end | ||
end | end | ||
Zeile 39: | Zeile 39: | ||
-- Letzte Gruppe hinzufügen, falls sie nicht leer ist | -- Letzte Gruppe hinzufügen, falls sie nicht leer ist | ||
if groupContent ~= "" then | if groupContent ~= "" then | ||
result = result .. " | result = result .. '<div class="ingredient-group"><h4>' .. group .. '</h4><ul>' .. groupContent .. '</ul></div>' | ||
end | end | ||
-- Füge die Hauptüberschrift nur hinzu, wenn Zutaten vorhanden sind | -- Füge die Hauptüberschrift nur hinzu, wenn Zutaten vorhanden sind | ||
if hasIngredients then | if hasIngredients then | ||
return | return '<h3>Angepasste Zutaten für ' .. persons .. ' Person(en)</h3>' .. result | ||
else | else | ||
return "" -- Gibt eine leere Zeichenkette zurück, wenn keine Zutaten vorhanden sind | return "" -- Gibt eine leere Zeichenkette zurück, wenn keine Zutaten vorhanden sind |
Version vom 7. November 2024, 22:44 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"]
-- Wenn wir eine Zutat haben, starten wir die Inhaltsverarbeitung
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 .. '<div class="ingredient-group"><h4>' .. group .. '</h4><ul>' .. groupContent .. '</ul></div>'
end
-- Aktualisiere die Gruppe und setze `groupContent` zurück
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 .. '<li>[[Has Ingredient::' .. name .. ']]: ' .. newQuantity .. " " .. unit .. "</li>"
end
end
end
-- Letzte Gruppe hinzufügen, falls sie nicht leer ist
if groupContent ~= "" then
result = result .. '<div class="ingredient-group"><h4>' .. group .. '</h4><ul>' .. groupContent .. '</ul></div>'
end
-- Füge die Hauptüberschrift nur hinzu, wenn Zutaten vorhanden sind
if hasIngredients then
return '<h3>Angepasste Zutaten für ' .. persons .. ' Person(en)</h3>' .. result
else
return "" -- Gibt eine leere Zeichenkette zurück, wenn keine Zutaten vorhanden sind
end
end
return p