Zuletzt bearbeitet vor 2 Monaten
von Xineohp1506

Projekt

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

local getArgs = require('Module:Arguments').getArgs
local helper = require('Module:LPON/Helper')
local projekt = {}

function projekt.render(frame)
    local args = getArgs(frame)
    local output = ""

    -- DISPLAYTITLE setzen
    if args["Titel"] then
        helper.setDisplayTitle({title = args["Titel"]})
    end

    -- Semantische Daten setzen
    if args["Status"] then
        helper.setProperty({args = {["LPON:Status"] = args["Status"]}})
    end

    if args["Spieler"] then
        for player in mw.text.gsplit(args["Spieler"], ",") do
            helper.setProperty({args = {["LPON:Spieler"] = mw.text.trim(player)}})
        end
    end

    if args["Beschreibung"] then
        local truncatedDesc = mw.ustring.sub(args["Beschreibung"], 1, 250)
        helper.setProperty({args = {["LPON:Beschreibung"] = truncatedDesc}})
    end

    -- Infobox
    output = output .. string.format([[
<div class="lpnon-infobox">
    <strong>Projekt:</strong> %s<br />
    <strong>Status:</strong> %s<br />
    <strong>Spieler:</strong> %s<br />
</div>
    ]], 
    args["Titel"] or mw.title.getCurrentTitle().text,
    args["Status"] or "Unbekannt",
    args["Spieler"] or "Keine Spieler angegeben")

    -- Beschreibung
    output = output .. string.format('<div class="lpnon-description">%s</div>', args["Beschreibung"] or "Keine Beschreibung verfügbar.")

    -- Mods (optional Subseite oder direkt)
    if args["useSubpage"] == "true" then
        output = output .. string.format('<div class="lpnon-mods"><a href="%s/Mods">Zur Modliste</a></div>', mw.title.getCurrentTitle().text)
    else
        output = output .. '<div class="lpnon-mods"><ul><li>Mod 1</li><li>Mod 2</li></ul></div>'
    end

    -- Folgen (optional Subseite oder direkt)
    if args["useEpisodesSubpage"] == "true" then
        output = output .. string.format('<div class="lpnon-episodes"><a href="%s/Folgen">Zur Folgenübersicht</a></div>', mw.title.getCurrentTitle().text)
    else
        output = output .. '<div class="lpnon-episodes"><ul><li>Folge 1</li><li>Folge 2</li></ul></div>'
    end

    -- Kategorien setzen
    local categories = {} -- Korrekte Initialisierung der Tabelle
    
    if args["Spieler"] then
        for player in mw.text.gsplit(args["Spieler"], ",") do
            table.insert(categories, "LPON:Spieler:" .. mw.text.trim(player))
        end
    end
    if args["Status"] then
        table.insert(categories, "LPON:Status:" .. args["Status"])
    end
    
    if args["Titel"] then
        table.insert(categories, "LPON:Projekte:" .. args["Titel"])
    end
    
    -- Hinzufügen allgemeiner Kategorien
    table.insert(categories, "All LPON")

    output = output .. helper.addCategories({categories = categories, sortkey = args["Titel"]})

    return output
end

return projekt