Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 7: | Zeile 7: | ||
end | end | ||
local args = | -- Debugging: Zeige die Argumente | ||
local query = args | local args = frame.args | ||
local columns = args | local debugOutput = mw.dumpObject(args) | ||
local limit = | local query = args["query"] | ||
local columns = args["columns"] | |||
local limit = args["limit"] or 5 | |||
if query | if not query then | ||
return " | return "Keine Abfrage angegeben." | ||
end | end | ||
-- | -- Debugging: Ausgabe des Abfrage-Strings | ||
debugOutput = debugOutput .. "\nAbfrage-Parameter: " .. query | |||
-- | -- Abfrage ausführen | ||
local queryResult = mw.smw.getQueryResult( | local queryResult = mw.smw.getQueryResult({ query = query, limit = limit }) | ||
-- Kein Ergebnis | -- Kein Ergebnis | ||
if not queryResult or not queryResult.results | if not queryResult or not queryResult.results then | ||
return | return debugOutput .. "\nKeine Ergebnisse gefunden." | ||
end | 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 | for _, result in pairs(queryResult.results) do | ||
output = output .. | output = output .. '<tr>' | ||
for | for column in mw.text.gsplit(columns, ",") do | ||
local | local cellValue = result.printouts[mw.text.trim(column)] or "" | ||
output = output .. '<td>' .. tostring(cellValue) .. '</td>' | |||
output = output .. | |||
end | end | ||
output = output | output = output .. '</tr>' | ||
end | end | ||
output = output .. '</table>' | |||
return output | return output | ||
end | end | ||
return related | return related |
Version vom 24. November 2024, 01:29 Uhr
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