Die Dokumentation für dieses Modul kann unter Modul:Publikation/Related/Doku erstellt werden
local related = {}
local getArgs = require("Module:Arguments").getArgs
function related.render(frame)
if not mw.smw then
return "Semantic MediaWiki-Erweiterung nicht gefunden."
end
-- Debugging: Zeige die Argumente
local args = frame.args
local debugOutput = mw.dumpObject(args)
local query = args["query"]
local columns = args["columns"]
local limit = args["limit"] or 5
if not query then
return "Keine Abfrage angegeben."
end
-- Debugging: Ausgabe des Abfrage-Strings
debugOutput = debugOutput .. "\nAbfrage-Parameter: " .. query
-- Abfrage ausführen
local queryResult = mw.smw.getQueryResult({ query = query, limit = limit })
-- Kein Ergebnis
if not queryResult or not queryResult.results then
return debugOutput .. "\nKeine Ergebnisse gefunden."
end
-- Ergebnis aufbereiten
local output = '<table class="wikitable sortable">'
output = output .. '<tr>'
-- Spalten definieren
for column in mw.text.gsplit(columns, ",") do
output = output .. '<th>' .. mw.text.trim(column) .. '</th>'
end
output = output .. '</tr>'
-- Ergebnisse iterieren
for _, result in pairs(queryResult.results) do
output = output .. '<tr>'
for column in mw.text.gsplit(columns, ",") do
local cellValue = result.printouts[mw.text.trim(column)] or ""
output = output .. '<td>' .. tostring(cellValue) .. '</td>'
end
output = output .. '</tr>'
end
output = output .. '</table>'
return output
end
return related