(Die Seite wurde neu angelegt: „local episodeOutput = {} local helper = require('Module:LPON/Helper') -- Funktion zur tabberbasierten Ausgabe der Folgen function episodeOutput.render(cleanProjektname) if not mw.smw then return "Semantic MediaWiki-Erweiterung nicht gefunden." end if not cleanProjektname or cleanProjektname == "" then return "Kein Projekt angegeben." end -- Abfrage-String erstellen local query = string.format( "[[LPON:Pro…“) |
Keine Bearbeitungszusammenfassung |
||
Zeile 3: | Zeile 3: | ||
-- Funktion zur tabberbasierten Ausgabe der Folgen | -- Funktion zur tabberbasierten Ausgabe der Folgen | ||
function episodeOutput. | function episodeOutput.inside(cleanProjektname) | ||
if not mw.smw then | if not mw.smw then | ||
return "Semantic MediaWiki-Erweiterung nicht gefunden." | return "Semantic MediaWiki-Erweiterung nicht gefunden." |
Version vom 17. Dezember 2024, 22:16 Uhr
Die Dokumentation für dieses Modul kann unter Modul:LPON/EpisodeOutput/Doku erstellt werden
local episodeOutput = {}
local helper = require('Module:LPON/Helper')
-- Funktion zur tabberbasierten Ausgabe der Folgen
function episodeOutput.inside(cleanProjektname)
if not mw.smw then
return "Semantic MediaWiki-Erweiterung nicht gefunden."
end
if not cleanProjektname or cleanProjektname == "" then
return "Kein Projekt angegeben."
end
-- Abfrage-String erstellen
local query = string.format(
"[[LPON:Projekt::%s]][[LPON:Typ::Episode]]|?LPON:Episodennummer|?LPON:Episodentitel|?LPON:Veröffentlichungsdatum|?LPON:Spieler",
cleanProjektname
)
local queryResult = mw.smw.getQueryResult(query)
if not queryResult or not queryResult.results then
return "Keine Folgen für dieses Projekt gefunden."
end
-- Folgen nach Tabs aufteilen
local tabGroups = {}
for _, result in ipairs(queryResult.results) do
local episodeNumber = result.printouts["LPON:Episodennummer"] and result.printouts["LPON:Episodennummer"][1] or 0
local episodeTitle = result.printouts["LPON:Episodentitel"] and result.printouts["LPON:Episodentitel"][1] or "Ohne Titel"
local releaseDate = result.printouts["LPON:Veröffentlichungsdatum"] and result.printouts["LPON:Veröffentlichungsdatum"][1] or "Unbekannt"
local players = result.printouts["LPON:Spieler"] and table.concat(result.printouts["LPON:Spieler"], ", ") or "Unbekannt"
-- Staffelnummer bestimmen (z. B. alle 20 Folgen eine neue Staffel)
local season = math.floor((episodeNumber - 1) / 20) + 1
local tabName = "Staffel " .. season
if not tabGroups[tabName] then
tabGroups[tabName] = {}
end
table.insert(tabGroups[tabName], string.format(
'|-\n| %d || [[%s/Folge %d|%s]] || %s || %s',
episodeNumber,
cleanProjektname,
episodeNumber,
episodeTitle,
releaseDate,
players
))
end
-- TabberNeue-Ausgabe generieren
local output = '<tabber>'
for tabName, episodes in pairs(tabGroups) do
output = output .. string.format(
"\n%s=\n{| class=\"lpnon-episode-table\"\n! # !! Titel !! Veröffentlichungsdatum !! Spieler\n%s\n|}\n|\n",
tabName,
table.concat(episodes, "\n")
)
end
output = output .. '</tabber>'
return output
end
return episodeOutput