Die Dokumentation für dieses Modul kann unter Modul:Publikation/Serie/Doku erstellt werden
local serie = {}
local getArgs = require('Module:Arguments').getArgs
local helper = require("Modul:Publikation/Helper")
local related = require("Modul:Publikation/Related")
-- Funktion zur Generierung von Kategorien
local function addCategories(args)
local categories = ""
-- Kategorie für Serie
if args["Titel"] and args["Titel"] ~= "" then
categories = categories .. "[[Category:Serie:" .. args["Titel"] .. "| ]]\n"
end
-- Kategorie "Bücher"
categories = categories .. "[[Kategorie:Serie|" .. args["Titel"] .. "]]\n"
return categories
end
function serie.render(frame)
local args = getArgs(frame)
-- Setze den DISPLAYTITLE basierend auf dem Titel des Buches
if args["Titel"] then
local DisplayTitel = 'Serie - ' .. args["Titel"]
helper.setDisplayTitle({title = DisplayTitel})
end
local output = '<table class="publikation serie table">'
-- Titel
local title = args["Titel"] or "Unbekannt"
output = output .. '<tr><td><strong>Titel</strong></td><td>[[Hat Titel::' .. title .. ']]</td></tr>'
-- Autor(en)
if args["Autor"] then
output = output .. '<tr><td><strong>Autor(en)</strong></td><td>'
for author in mw.text.gsplit(args["Autor"], ",") do
output = output .. '[[Hat Autor::' .. mw.text.trim(author) .. ']], '
end
output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
end
-- Serien ID
if args["SerienID"] then
output = output .. '<tr><td><strong>Serien ID</strong></td><td>[[SerienID::' .. args["SerienID"] .. ']]</td></tr>'
end
-- Complete volumes
if args["Complete volumes"] then
output = output .. '<tr><td><strong>Complete volumes</strong></td><td>[[Complete volumes::' .. args["Complete volumes"] .. ']]</td></tr>'
end
-- Serienbeschreibung
if args["Hat SerienBeschreibung"] then
output = output .. '<tr><td><strong>Beschreibung</strong></td><td>[[Hat SerienBeschreibung::' .. args["Hat SerienBeschreibung"] .. ']]</td></tr>'
end
-- Datensatz-IDs
if args["Bücher"] then
output = output .. '<tr><td><strong>Bücher (Datensatz-IDs)</strong></td><td>'
for id in mw.text.gsplit(args["Bücher"], ",") do
output = output .. '[[Hat Datensatz ID::' .. mw.text.trim(id) .. ']], '
end
output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
end
output = output .. '</table>'
-- Weitere Bücher in der Serie (unterhalb der Tabelle)
if args["Titel"] then
local relatedBooks = related.buchRelated({
series = args["Titel"],
limit = 50
})
output = output .. '<div class="related-books">' ..
'<h2>Bücher der Serie:</h2>' ..
(relatedBooks or "<p>Keine Bände verfügbar.</p>") ..
'</div>'
end
-- Kategorien hinzufügen
output = output .. addCategories(args)
return output
end
return serie