Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
local episode = {} | local episode = {} | ||
local helper = require('Module:LPON/Helper') | local helper = require('Module:LPON/Helper') | ||
local getArgs = require('Module:Arguments').getArgs | |||
function episode.render(frame) | function episode.render(frame) | ||
local args = | local args = getArgs(frame) | ||
local projectName = args["Projekt"] | local projectName = args["Projekt"] | ||
if not projectName or projectName == "" then | if not projectName or projectName == "" then | ||
Zeile 9: | Zeile 10: | ||
end | end | ||
local cleanProjektname = helper.cleanString(projectName) | local cleanProjektname = helper.cleanString(projectName) | ||
local cleanGame = helper.cleanString(args["Game"]) | |||
local output = "" | local output = "" | ||
-- Setzen des Datensatztyp | |||
helper.setProperty({args = {["LPON:Typ"] = "Episode"}}) | |||
-- DISPLAYTITLE setzen | -- DISPLAYTITLE setzen | ||
helper.setDisplayTitle({title = | helper.setDisplayTitle({title = '#'.. args["Episodennummer"] .. ' - ' .. args["Titel"]}) | ||
-- Semantische Attribute setzen | -- Semantische Attribute setzen | ||
Zeile 19: | Zeile 24: | ||
helper.setProperty({args = {["LPON:Episodentitel"] = args["Titel"]}}) | helper.setProperty({args = {["LPON:Episodentitel"] = args["Titel"]}}) | ||
helper.setProperty({args = {["LPON:Spieler"] = args["Spieler"]}}) | helper.setProperty({args = {["LPON:Spieler"] = args["Spieler"]}}) | ||
helper.setProperty({args = {["LPON: | helper.setProperty({args = {["LPON:Description"] = args["Beschreibung"]}}) | ||
helper.setProperty({args = {["LPON:Projekt"] = cleanProjektname}}) | helper.setProperty({args = {["LPON:Projekt"] = cleanProjektname}}) | ||
helper.setProperty({args = {["LPON:Service"] = args["Service"]}}) | helper.setProperty({args = {["LPON:Service"] = args["Service"]}}) | ||
helper.setProperty({args = {["LPON:ID"] = args["ID"]}}) | helper.setProperty({args = {["LPON:ID"] = args["ID"]}}) | ||
helper.setProperty({args = {["LPON:Game"] = cleanGame}}) | |||
-- EmbedVideo generieren | -- EmbedVideo generieren | ||
Zeile 41: | Zeile 47: | ||
output = output .. string.format('<li><b>Episodennummer:</b> %s</li>\n', args["Episodennummer"] or "Unbekannt") | output = output .. string.format('<li><b>Episodennummer:</b> %s</li>\n', args["Episodennummer"] or "Unbekannt") | ||
output = output .. string.format('<li><b>Veröffentlichungsdatum:</b> %s</li>\n', args["Veröffentlichungsdatum"] or "Unbekannt") | output = output .. string.format('<li><b>Veröffentlichungsdatum:</b> %s</li>\n', args["Veröffentlichungsdatum"] or "Unbekannt") | ||
output = output .. string.format('<li><b>Spieler:</b> %s</li>\n', args["Spieler"] or "Unbekannt") | --output = output .. string.format('<li><b>Spieler:</b> %s</li>\n', args["Spieler"] or "Unbekannt") | ||
-- Spieler-Links generieren | |||
if args["Spieler"] and args["Spieler"] ~= "" then | |||
local playerLinks = {} | |||
for player in mw.text.gsplit(args["Spieler"], ",") do | |||
player = mw.text.trim(player) | |||
table.insert(playerLinks, helper.getPlayerLink(frame, player)) | |||
end | |||
output = output .. string.format('<li><b>Spieler:</b> %s</li>\n', table.concat(playerLinks, ", ")) | |||
else | |||
output = output .. '<li><b>Spieler:</b> Unbekannt</li>\n' | |||
end | |||
output = output .. string.format('<li><b>Beschreibung:</b> %s</li>\n', args["Beschreibung"] or "Keine Beschreibung verfügbar") | output = output .. string.format('<li><b>Beschreibung:</b> %s</li>\n', args["Beschreibung"] or "Keine Beschreibung verfügbar") | ||
-- Link zur Videoplattform generieren | |||
if args["Service"] and args["ID"] then | |||
local videoLink = helper.getVideoLink(args["Service"], args["ID"]) | |||
if videoLink then | |||
local wikitextLink = "[" .. videoLink .. " " .. args["Service"]:gsub("^%l", string.upper) .. "]" | |||
output = output .. "<li><b>Link zur Plattform:</b> " .. frame:preprocess(wikitextLink) .. "</li>\n" | |||
end | |||
end | |||
output = output .. '</ul>\n' | output = output .. '</ul>\n' | ||
output = output .. '</div>\n' | output = output .. '</div>\n' | ||
-- Kategorien setzen | |||
local categories = {} -- Korrekte Initialisierung der Tabelle | |||
-- Kategorien basierend auf Argumenten hinzufügen | |||
if args["Spieler"] then | |||
for player in mw.text.gsplit(args["Spieler"], ",") do | |||
table.insert(categories, "LPON:Spieler:" .. mw.text.trim(player) .. ":Episoden") | |||
end | |||
end | |||
table.insert(categories, "LPON:" .. cleanProjektname .. ":Episoden") | |||
table.insert(categories, cleanGame .. ":Episoden") | |||
-- Kategorien hinzufügen | |||
output = output .. helper.addCategories({categories = categories, sortkey = args["Titel"]}) | |||
return output | return output | ||
end | end | ||
return episode | return episode |
Aktuelle Version vom 18. Dezember 2024, 18:36 Uhr
Die Dokumentation für dieses Modul kann unter Modul:LPON/Episode/Doku erstellt werden
local episode = {}
local helper = require('Module:LPON/Helper')
local getArgs = require('Module:Arguments').getArgs
function episode.render(frame)
local args = getArgs(frame)
local projectName = args["Projekt"]
if not projectName or projectName == "" then
return "Kein Projektname angegeben."
end
local cleanProjektname = helper.cleanString(projectName)
local cleanGame = helper.cleanString(args["Game"])
local output = ""
-- Setzen des Datensatztyp
helper.setProperty({args = {["LPON:Typ"] = "Episode"}})
-- DISPLAYTITLE setzen
helper.setDisplayTitle({title = '#'.. args["Episodennummer"] .. ' - ' .. args["Titel"]})
-- Semantische Attribute setzen
helper.setProperty({args = {["LPON:Episodennummer"] = args["Episodennummer"]}})
helper.setProperty({args = {["LPON:Veröffentlichungsdatum"] = args["Veröffentlichungsdatum"]}})
helper.setProperty({args = {["LPON:Episodentitel"] = args["Titel"]}})
helper.setProperty({args = {["LPON:Spieler"] = args["Spieler"]}})
helper.setProperty({args = {["LPON:Description"] = args["Beschreibung"]}})
helper.setProperty({args = {["LPON:Projekt"] = cleanProjektname}})
helper.setProperty({args = {["LPON:Service"] = args["Service"]}})
helper.setProperty({args = {["LPON:ID"] = args["ID"]}})
helper.setProperty({args = {["LPON:Game"] = cleanGame}})
-- EmbedVideo generieren
if args["Service"] and args["ID"] then
local embedVideo = "{{#ev:" .. args["Service"] .. "|" .. args["ID"] .. "|640|center||" .. (args["Titel"] or "Video") .. "}}"
output = output .. '<div class="lpnon-video-container">\n'
output = output .. frame:preprocess(embedVideo) .. "\n"
output = output .. '</div>\n'
else
output = output .. '<div class="lpnon-video-container"><p>Keine Video-ID oder Service angegeben.</p></div>\n'
end
-- Ausgabe der Episodendetails
output = output .. '<div class="lpnon-episode-details">\n'
output = output .. '<h2>Details</h2>\n'
output = output .. '<ul>\n'
output = output .. string.format('<li><b>Titel:</b> %s</li>\n', args["Titel"] or "Unbekannt")
output = output .. string.format('<li><b>Episodennummer:</b> %s</li>\n', args["Episodennummer"] or "Unbekannt")
output = output .. string.format('<li><b>Veröffentlichungsdatum:</b> %s</li>\n', args["Veröffentlichungsdatum"] or "Unbekannt")
--output = output .. string.format('<li><b>Spieler:</b> %s</li>\n', args["Spieler"] or "Unbekannt")
-- Spieler-Links generieren
if args["Spieler"] and args["Spieler"] ~= "" then
local playerLinks = {}
for player in mw.text.gsplit(args["Spieler"], ",") do
player = mw.text.trim(player)
table.insert(playerLinks, helper.getPlayerLink(frame, player))
end
output = output .. string.format('<li><b>Spieler:</b> %s</li>\n', table.concat(playerLinks, ", "))
else
output = output .. '<li><b>Spieler:</b> Unbekannt</li>\n'
end
output = output .. string.format('<li><b>Beschreibung:</b> %s</li>\n', args["Beschreibung"] or "Keine Beschreibung verfügbar")
-- Link zur Videoplattform generieren
if args["Service"] and args["ID"] then
local videoLink = helper.getVideoLink(args["Service"], args["ID"])
if videoLink then
local wikitextLink = "[" .. videoLink .. " " .. args["Service"]:gsub("^%l", string.upper) .. "]"
output = output .. "<li><b>Link zur Plattform:</b> " .. frame:preprocess(wikitextLink) .. "</li>\n"
end
end
output = output .. '</ul>\n'
output = output .. '</div>\n'
-- Kategorien setzen
local categories = {} -- Korrekte Initialisierung der Tabelle
-- Kategorien basierend auf Argumenten hinzufügen
if args["Spieler"] then
for player in mw.text.gsplit(args["Spieler"], ",") do
table.insert(categories, "LPON:Spieler:" .. mw.text.trim(player) .. ":Episoden")
end
end
table.insert(categories, "LPON:" .. cleanProjektname .. ":Episoden")
table.insert(categories, cleanGame .. ":Episoden")
-- Kategorien hinzufügen
output = output .. helper.addCategories({categories = categories, sortkey = args["Titel"]})
return output
end
return episode