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
local args = getArgs(frame)
local query = args.query or ""
local columns = args.columns or ""
local limit = tonumber(args.limit) or 10
if query == "" or columns == "" then
return "Fehler: Abfrage und Spalten müssen angegeben werden."
end
-- QueryResult ausführen
local queryResult = mw.smw.getQueryResult({ query = query .. "|?" .. columns:gsub(",", "|?") .. "|limit=" .. limit })
if not queryResult or not queryResult.results or next(queryResult.results) == nil then
return "Keine Ergebnisse gefunden."
end
-- Tabelle erstellen
local output = "{| class=\"wikitable\"\n"
output = output .. "! " .. columns:gsub(",", " !! ") .. "\n"
for _, result in pairs(queryResult.results) do
output = output .. "|-\n"
for _, column in ipairs(mw.text.split(columns, ",")) do
local value = result.printouts[column] and result.printouts[column][1] or "—"
if column == "Hat Titel" and result.fulltext then
value = "[[" .. result.fulltext .. "|" .. value .. "]]"
end
output = output .. "| " .. value .. " || "
end
output = output:sub(1, -4) .. "\n" -- Entfernt das letzte " || "
end
output = output .. "|}"
return output
end
return related