Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
local serie = {} | 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) | function serie.render(frame) | ||
local args = getArgs(frame) | |||
local output = '<table class="publikation serie">' | |||
-- Setze den DISPLAYTITLE basierend auf dem Titel des Buches | |||
if args["Titel"] then | |||
local DisplayTitel = 'Serie - ' .. args["Titel"] | |||
helper.setDisplayTitle({title = DisplayTitel}) | |||
end | |||
-- Setze das semantische Attribut "Typ" | |||
helper.setProperty({ args = { ["Typ"] = "Serie" } }) | |||
local output = '<table class="publikation serie table">' | |||
-- Titel | -- Titel | ||
Zeile 18: | Zeile 46: | ||
end | 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 | -- Complete volumes | ||
if args["Complete volumes"] then | if args["Complete volumes"] then | ||
Zeile 30: | Zeile 63: | ||
-- Datensatz-IDs | -- Datensatz-IDs | ||
if args["Bücher"] then | if args["Bücher"] then | ||
output = output .. '<tr><td><strong>Bücher (Datensatz- | output = output .. '<tr><td><strong>Bücher (Datensatz-IDs)</strong></td><td>' | ||
for id in mw.text.gsplit(args["Bücher"], ",") do | for id in mw.text.gsplit(args["Bücher"], ",") do | ||
output = output .. '[[Hat Datensatz ID::' .. mw.text.trim(id) .. ']], ' | output = output .. '[[Hat Datensatz ID::' .. mw.text.trim(id) .. ']], ' | ||
Zeile 38: | Zeile 71: | ||
output = output .. '</table>' | 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 | return output | ||
end | end | ||
return serie | return serie |
Aktuelle Version vom 30. November 2024, 00:41 Uhr
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
-- Setze das semantische Attribut "Typ"
helper.setProperty({ args = { ["Typ"] = "Serie" } })
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