Modul:Spiel-Info: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 2: | Zeile 2: | ||
-- Erstellt eine Zeile der Infobox | -- Erstellt eine normale Zeile der Infobox | ||
local function addRow(box, label, value) | local function addRow(box, label, value) | ||
| Zeile 22: | Zeile 22: | ||
-- Liste der | -- Erstellt eine Zeile mit mehreren Werten | ||
local function addMatchRow(box, label, date, stadium, result) | |||
if date ~= "" or stadium ~= "" or result ~= "" then | |||
local row = box:tag("tr") | |||
row | |||
:tag("th") | |||
:wikitext(label) | |||
:done() | |||
row | |||
:tag("td") | |||
:wikitext(date) | |||
:done() | |||
row | |||
:tag("td") | |||
:wikitext(stadium) | |||
:done() | |||
row | |||
:tag("td") | |||
:wikitext(result) | |||
:done() | |||
row:done() | |||
end | |||
end | |||
-- Liste der normalen Felder | |||
local fields = { | local fields = { | ||
{"result", "Endergebnis"}, | |||
{"coach", "Trainer"}, | {"coach", "Trainer"}, | ||
} | } | ||
| Zeile 46: | Zeile 74: | ||
local bild = args.bild or "" | local bild = args.bild or "" | ||
local bildbeschreibung = args.bildbeschreibung or "" | local bildbeschreibung = args.bildbeschreibung or "" | ||
-- Werte für Hin- und Rückspiel | |||
local date_first_leg = args.date_first_leg or "" | |||
local stadium_first_leg = args.stadium_first_leg or "" | |||
local result_first_leg = args.result_first_leg or "" | |||
local date_second_leg = args.date_second_leg or "" | |||
local stadium_second_leg = args.stadium_second_leg or "" | |||
local result_second_leg = args.result_second_leg or "" | |||
-- Prüfen, ob ein Rückspiel vorhanden ist | |||
local has_second_leg = | |||
date_second_leg ~= "" or | |||
stadium_second_leg ~= "" or | |||
result_second_leg ~= "" | |||
| Zeile 63: | Zeile 108: | ||
end | end | ||
-- Spiele | |||
if has_second_leg then | |||
addMatchRow( | |||
box, | |||
"Hinspiel", | |||
date_first_leg, | |||
stadium_first_leg, | |||
result_first_leg | |||
) | |||
addMatchRow( | |||
box, | |||
"Rückspiel", | |||
date_second_leg, | |||
stadium_second_leg, | |||
result_second_leg | |||
) | |||
else | |||
addMatchRow( | |||
box, | |||
"Spiel", | |||
date_first_leg, | |||
stadium_first_leg, | |||
result_first_leg | |||
) | |||
end | |||
-- | -- Normale Felder | ||
for _, field in ipairs(fields) do | for _, field in ipairs(fields) do | ||
| Zeile 76: | Zeile 152: | ||
end | end | ||
-- HTML zurückgeben | -- HTML zurückgeben | ||
return tostring(box) | return tostring(box) | ||
end | end | ||
return p | return p | ||
Version vom 3. September 2026, 12:34 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Spiel-Info/Doku erstellt werden
local p = {}
-- Erstellt eine normale Zeile der Infobox
local function addRow(box, label, value)
if value and value ~= "" then
box
:tag("tr")
:tag("th")
:wikitext(label)
:done()
:tag("td")
:wikitext(value)
:done()
:done()
end
end
-- Erstellt eine Zeile mit mehreren Werten
local function addMatchRow(box, label, date, stadium, result)
if date ~= "" or stadium ~= "" or result ~= "" then
local row = box:tag("tr")
row
:tag("th")
:wikitext(label)
:done()
row
:tag("td")
:wikitext(date)
:done()
row
:tag("td")
:wikitext(stadium)
:done()
row
:tag("td")
:wikitext(result)
:done()
row:done()
end
end
-- Liste der normalen Felder
local fields = {
{"result", "Endergebnis"},
{"coach", "Trainer"},
}
-- Hauptfunktion
function p.main(frame)
-- Parameter der Vorlage holen
local args = frame:getParent().args
-- Grundparameter
local titel = args.titel or ""
local bild = args.bild or ""
local bildbeschreibung = args.bildbeschreibung or ""
-- Werte für Hin- und Rückspiel
local date_first_leg = args.date_first_leg or ""
local stadium_first_leg = args.stadium_first_leg or ""
local result_first_leg = args.result_first_leg or ""
local date_second_leg = args.date_second_leg or ""
local stadium_second_leg = args.stadium_second_leg or ""
local result_second_leg = args.result_second_leg or ""
-- Prüfen, ob ein Rückspiel vorhanden ist
local has_second_leg =
date_second_leg ~= "" or
stadium_second_leg ~= "" or
result_second_leg ~= ""
-- Tabelle erstellen
local box = mw.html.create("table")
:addClass("infobox")
-- Titel
if titel ~= "" then
box
:tag("caption")
:wikitext(titel)
:done()
end
-- Spiele
if has_second_leg then
addMatchRow(
box,
"Hinspiel",
date_first_leg,
stadium_first_leg,
result_first_leg
)
addMatchRow(
box,
"Rückspiel",
date_second_leg,
stadium_second_leg,
result_second_leg
)
else
addMatchRow(
box,
"Spiel",
date_first_leg,
stadium_first_leg,
result_first_leg
)
end
-- Normale Felder
for _, field in ipairs(fields) do
local parameter = field[1]
local label = field[2]
local value = args[parameter]
addRow(box, label, value)
end
-- HTML zurückgeben
return tostring(box)
end
return p