Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 7: | Zeile 7: | ||
end | end | ||
local query = "[[Hat Titel::" .. seriesTitle .. "]] | -- Aufteilung in Bedingung und Anzeige | ||
local result = mw.smw.getQueryResult(query) | local query = "[[Hat Titel::" .. seriesTitle .. "]]" -- Bedingung | ||
local printrequest = {"Complete volumes"} -- Ausgabe | |||
-- Ergebnisse der Abfrage holen | |||
local result = mw.smw.getQueryResult({query = query, printrequest = printrequest}) | |||
-- Debugging-Ausgabe | -- Debugging-Ausgabe |
Version vom 20. November 2024, 00:58 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Publikation/Buch/Doku erstellt werden
local buch = {}
-- Funktion, um die Anzahl der Bände aus der Serienseite zu holen
local function getTotalVolumes(seriesTitle)
if not seriesTitle or seriesTitle == "" then
return nil, "Kein Serienname angegeben."
end
-- Aufteilung in Bedingung und Anzeige
local query = "[[Hat Titel::" .. seriesTitle .. "]]" -- Bedingung
local printrequest = {"Complete volumes"} -- Ausgabe
-- Ergebnisse der Abfrage holen
local result = mw.smw.getQueryResult({query = query, printrequest = printrequest})
-- Debugging-Ausgabe
local debugOutput = "Abfrage: " .. query .. "\n"
if result and result.results and next(result.results) then
for _, data in pairs(result.results) do
debugOutput = debugOutput .. "Ergebnisse: " .. mw.text.jsonEncode(data) .. "\n"
return data.properties["Complete volumes"] and data.properties["Complete volumes"][1], debugOutput
end
end
debugOutput = debugOutput .. "Keine Ergebnisse gefunden.\n"
return nil, debugOutput
end
-- Hauptfunktion zur Darstellung der Buchinformationen
function buch.render(args, main)
local output = '<table class="publikation buch">'
-- 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
-- Band
if args["Band"] then
local seriesTitle = args["Hat Serie"] or ""
local totalVolumes, debugInfo = getTotalVolumes(seriesTitle)
output = output .. '<tr><td><strong>Band</strong></td><td>'
output = output .. args["Band"]
if totalVolumes then
output = output .. ' von ' .. totalVolumes
end
if seriesTitle ~= "" then
output = output .. ' ([[ ' .. seriesTitle .. ' | Serie ]])'
end
output = output .. '</td></tr>'
-- Debugging-Informationen ausgeben
output = output .. '<tr><td colspan="2"><pre>' .. debugInfo .. '</pre></td></tr>'
end
-- Weitere Felder können hier hinzugefügt werden...
output = output .. '</table>'
return output
end
return buch