Zuletzt bearbeitet vor 4 Monaten
von Xineohp1506

Mod

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

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

function mod.render(frame)
    local args = getArgs(frame)
    local output = ""
    local cleanGame = helper.cleanString(args["Game"])
    
    -- Setzen des Datensatztyp
	helper.setProperty({args = {["LPON:Typ"] = "Mod"}})
	
    -- DISPLAYTITLE setzen
    if args["Titel"] then
        helper.setDisplayTitle({title = args["Titel"]})
        helper.setProperty({args = {["LPON:Modname"] = args["Titel"]}})
    end

    -- Tabelle erstellen
    output = output .. '<table class="lpnon-mod-table">\n'

    -- Titel
    output = output .. '<tr><th>Mod-Name</th><td>' .. (args["Titel"] or "Unbekannt") .. '</td></tr>\n'

    -- Projekte
    if args["Projekt"] then
	    local projectList = {}
	    for projekt in mw.text.gsplit(args["Projekt"], ",") do
	        projekt = mw.text.trim(projekt)
	        helper.setProperty({args = {["LPON:Projekt"] = helper.cleanString(projekt)}})
	        table.insert(projectList, projekt)
	    end
	    output = output .. '<tr><th>Projekte</th><td>' .. table.concat(projectList, ", ") .. '</td></tr>\n'
	end

    
    -- Spiel
    if args["Game"] then
        helper.setProperty({args = {["LPON:Game"] = cleanGame}})
        output = output .. '<tr><th>Spiel</th><td>' .. args["Game"] .. '</td></tr>\n'
    end

    -- Kategorie
    if args["Kategorie"] then
        output = output .. '<tr><th>Kategorie</th><td>' .. args["Kategorie"] .. '</td></tr>\n'
        helper.setProperty({args = {["LPON:Mod-Kategorie"] = args["Kategorie"]}})
    end

    -- Version
    if args["Version"] then
        output = output .. '<tr><th>Version</th><td>' .. args["Version"] .. '</td></tr>\n'
        helper.setProperty({args = {["LPON:Mod-Version"] = args["Version"]}})
    end

    -- Modautor
    if args["Modautor"] then
        output = output .. '<tr><th>Modautor</th><td>' .. args["Modautor"] .. '</td></tr>\n'
        helper.setProperty({args = {["LPON:Modautor"] = args["Modautor"]}})
    end

    -- Download
    if args["Download"] and args["Download"] ~= "" then
	    local source = args["Quelle"] or "Unbekannt"
		-- Semantische Speicherung der URL und Quelle
    	helper.setProperty({args = {["LPON:Download-URL"] = args["Download"]}})
    	helper.setProperty({args = {["LPON:Download-Quelle"] = source}})
	    output = output .. '<tr><th>Download</th><td>[' .. args["Download"] .. ' ' .. source .. ']</td></tr>\n'
	else
	    output = output .. '<tr><th>Download</th><td>PRIVAT</td></tr>\n'
	end

    -- Beschreibung
    if args["Beschreibung"] and args["Beschreibung"] ~= ""  then
    	helper.setProperty({args = {["LPON:Description"] = args["Beschreibung"]}})
        output = output .. '<tr><th>Beschreibung</th><td>' .. args["Beschreibung"] .. '</td></tr>\n'
    else
    	helper.setProperty({args = {["LPON:Description"] = "keine Beschreibung hinterlegt"}})
	    output = output .. '<tr><th>Beschreibung</th><td>keine Beschreibung hinterlegt</td></tr>\n'
	end

    output = output .. '</table>\n' -- Ende der Tabelle
    
    -- Kategorien setzen
    local categories = {} -- Korrekte Initialisierung der Tabelle

    -- Kategorien basierend auf Argumenten hinzufügen
    if args["Projekt"] and args["Projekt"] ~= "" then
        for projekt in mw.text.gsplit(args["Projekt"], ",") do
        	local cleanProjekt = helper.cleanString(projekt)
            table.insert(categories, "LPON:" .. cleanProjekt)
        end
    end
    if args["Game"] then
        table.insert(categories, cleanGame .. ":Mods")
    end

    -- Kategorien hinzufügen
    output = output .. helper.addCategories({categories = categories, sortkey = args["Titel"]})
    
    return output
end

return mod