Zuletzt bearbeitet vor 3 Monaten
von Xineohp1506

Modul:LPON/ModOutput: Unterschied zwischen den Versionen

(Die Seite wurde neu angelegt: „local modOutput = {} local helper = require('Module:LPON/Helper') -- Funktion zur Ausgabe der Mods innerhalb einer Projektseite oder Modseite function modOutput.inside(cleanProjektname) if not mw.smw then return "Semantic MediaWiki-Erweiterung nicht gefunden." end -- Sicherstellen, dass der bereinigte Projektname angegeben wurde if not cleanProjektname or cleanProjektname == "" then return "Kein Projekt angegeben." en…“)
 
Keine Bearbeitungszusammenfassung
Zeile 33: Zeile 33:
         -- Mod-Informationen extrahieren
         -- Mod-Informationen extrahieren
         local modName = result.printouts["LPON:Modname"] and result.printouts["LPON:Modname"][1] or "Unbekannt"
         local modName = result.printouts["LPON:Modname"] and result.printouts["LPON:Modname"][1] or "Unbekannt"
         local description = result.printouts["LPON:Beschreibung"] and result.printouts["LPON:Beschreibung"][1] or "Keine Beschreibung verfügbar"
         local description = result.printouts["LPON:Description"] and result.printouts["LPON:Description"][1] or "Keine Beschreibung verfügbar"
         local downloadURL = result.printouts["LPON:Download-URL"] and result.printouts["LPON:Download-URL"][1]
         local downloadURL = result.printouts["LPON:Download-URL"] and result.printouts["LPON:Download-URL"][1]
         local downloadSource = result.printouts["LPON:Download-Quelle"] and result.printouts["LPON:Download-Quelle"][1] or "Unbekannt"
         local downloadSource = result.printouts["LPON:Download-Quelle"] and result.printouts["LPON:Download-Quelle"][1] or "Unbekannt"
Zeile 39: Zeile 39:


         -- Download-Link erstellen
         -- Download-Link erstellen
         local downloadLink = downloadURL and ('<a href="' .. downloadURL .. '">' .. downloadSource .. '</a>') or "PRIVAT"
         local downloadLink = downloadURL and ('[' .. downloadURL .. ' ' .. downloadSource .. ']') or "PRIVAT"


         -- Mod zur entsprechenden Kategorie hinzufügen
         -- Mod zur entsprechenden Kategorie hinzufügen

Version vom 3. Dezember 2024, 20:07 Uhr

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

local modOutput = {}
local helper = require('Module:LPON/Helper')

-- Funktion zur Ausgabe der Mods innerhalb einer Projektseite oder Modseite
function modOutput.inside(cleanProjektname)
    if not mw.smw then
        return "Semantic MediaWiki-Erweiterung nicht gefunden."
    end

    -- Sicherstellen, dass der bereinigte Projektname angegeben wurde
    if not cleanProjektname or cleanProjektname == "" then
        return "Kein Projekt angegeben."
    end

    -- Abfrage-String erstellen
    local query = string.format(
        "[[LPON:Projekt::%s]]|?LPON:Modname|?LPON:Beschreibung|?LPON:Download-URL|?LPON:Download-Quelle|?LPON:Mod-Kategorie",
        cleanProjektname
    )

    -- Abfrage ausführen
    local queryResult = mw.smw.getQueryResult(query)

    -- Kein Ergebnis gefunden
    if not queryResult or not queryResult.results then
        return "Keine Mods für dieses Projekt gefunden."
    end

    -- Kategorien sammeln
    local categorizedMods = {}

    for _, result in ipairs(queryResult.results) do
        -- Mod-Informationen extrahieren
        local modName = result.printouts["LPON:Modname"] and result.printouts["LPON:Modname"][1] or "Unbekannt"
        local description = result.printouts["LPON:Description"] and result.printouts["LPON:Description"][1] or "Keine Beschreibung verfügbar"
        local downloadURL = result.printouts["LPON:Download-URL"] and result.printouts["LPON:Download-URL"][1]
        local downloadSource = result.printouts["LPON:Download-Quelle"] and result.printouts["LPON:Download-Quelle"][1] or "Unbekannt"
        local category = result.printouts["LPON:Mod-Kategorie"] and result.printouts["LPON:Mod-Kategorie"][1] or "Allgemein"

        -- Download-Link erstellen
        local downloadLink = downloadURL and ('[' .. downloadURL .. ' ' .. downloadSource .. ']') or "PRIVAT"

        -- Mod zur entsprechenden Kategorie hinzufügen
        if not categorizedMods[category] then
            categorizedMods[category] = {}
        end
        table.insert(categorizedMods[category], '<li><b>' .. modName .. '</b> - ' .. description .. ' - ' .. downloadLink .. '</li>')
    end

    -- Ausgabe generieren
    local output = '<div class="lpon-mods">'
    for category, mods in pairs(categorizedMods) do
        output = output .. '<p><b>' .. category .. ':</b></p>\n'
        output = output .. '<ul>' .. table.concat(mods, "\n") .. '</ul>\n'
    end
    output = output .. '</div>'

    return output
end

return modOutput