Modul:Spiel-Info: Unterschied zwischen den Versionen

Aus LASK Wiki
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „local p = {} -- Erstellt eine 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 -- Liste der möglichen Felder local fields = { {"result", "Endergebnis"},…“
 
Keine Bearbeitungszusammenfassung
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
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 möglichen Felder
local function addMatchRow(box, label, date, stadium, result)
 
    if date ~= "" or stadium ~= "" or result ~= "" then
 
        box
            :tag("tr")
                :tag("th")
    :attr("colspan", "4")
    :css("text-align", "center")
    :css("font-weight", "bold")
    :wikitext(label)
    :done()
            :done()
 
 
        if date ~= "" then
            box
                :tag("tr")
                    :tag("th")
                        :wikitext("Datum")
                        :done()
                    :tag("td")
                        :wikitext(date)
                        :done()
                :done()
        end
 
        if stadium ~= "" then
            box
                :tag("tr")
                    :tag("th")
                        :wikitext("Stadion")
                        :done()
                    :tag("td")
                        :wikitext(stadium)
                        :done()
                :done()
        end
 
        if result ~= "" then
            box
                :tag("tr")
                    :tag("th")
                        :wikitext("Ergebnis")
                        :done()
                    :tag("td")
                        :wikitext(result)
                        :done()
                :done()
        end
 
    end
 
end
 
 
 
-- Liste der normalen Felder
local fields = {
local fields = {
{"result", "Endergebnis"},
{"date_first_leg", "Datum"},
{"stadium_first_leg", "Stadion Hinspiel"},
{"result_first_leg"},
{"date_second_leg"},
{"stadium_second_leg", "Stadion Rückspiel"},
{"result_second_leg"},
     {"coach", "Trainer"},
     {"coach", "Trainer"},
}
}
Zeile 44: Zeile 94:
     -- Grundparameter
     -- Grundparameter
     local titel = args.titel or ""
     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 ~= ""




Zeile 62: Zeile 127:


     end
     end
 
for _, field in ipairs(fields) do
 
 
    -- Alle Felder automatisch hinzufügen
    for _, field in ipairs(fields) do


         local parameter = field[1]
         local parameter = field[1]
Zeile 77: Zeile 138:
     end
     end


addSeasonLinks(box, titel)
    -- 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
        )
addRow(box, "Endergebnis", args.result or "")
    else
 
        addMatchRow(
            box,
            "Spiel",
            date_first_leg,
            stadium_first_leg,
            result_first_leg
        )
 
    end
 


     -- HTML zurückgeben
     -- HTML zurückgeben
Zeile 83: Zeile 174:


end
end
return p
return p

Aktuelle Version vom 3. September 2026, 17:41 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


local function addMatchRow(box, label, date, stadium, result)

    if date ~= "" or stadium ~= "" or result ~= "" then

        box
            :tag("tr")
                :tag("th")
    				:attr("colspan", "4")
    				:css("text-align", "center")
    				:css("font-weight", "bold")
    				:wikitext(label)
    				:done()
            :done()


        if date ~= "" then
            box
                :tag("tr")
                    :tag("th")
                        :wikitext("Datum")
                        :done()
                    :tag("td")
                        :wikitext(date)
                        :done()
                :done()
        end

        if stadium ~= "" then
            box
                :tag("tr")
                    :tag("th")
                        :wikitext("Stadion")
                        :done()
                    :tag("td")
                        :wikitext(stadium)
                        :done()
                :done()
        end

        if result ~= "" then
            box
                :tag("tr")
                    :tag("th")
                        :wikitext("Ergebnis")
                        :done()
                    :tag("td")
                        :wikitext(result)
                        :done()
                :done()
        end

    end

end



-- Liste der normalen Felder
local fields = {
    {"coach", "Trainer"},
}


-- Hauptfunktion
function p.main(frame)

    -- Parameter der Vorlage holen
    local args = frame:getParent().args


    -- Grundparameter
    local titel = args.titel 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
	for _, field in ipairs(fields) do

        local parameter = field[1]
        local label = field[2]

        local value = args[parameter]

        addRow(box, label, value)

    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
        )
		addRow(box, "Endergebnis", args.result or "")
    else

        addMatchRow(
            box,
            "Spiel",
            date_first_leg,
            stadium_first_leg,
            result_first_leg
        )

    end


    -- HTML zurückgeben
    return tostring(box)

end

return p