K (Xineohp1506 verschob die Seite Modul:Publikation/SerieRelated nach Modul:Publikation/Related, ohne dabei eine Weiterleitung anzulegen) |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
local | local related = {} | ||
local | local getArgs = require("Module:Arguments").getArgs | ||
function related.render(frame) | |||
function | if not mw.smw then | ||
local args = frame.args | return "Semantic MediaWiki-Erweiterung nicht gefunden." | ||
local | 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" | |||
if | 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 | end | ||
output = output .. "|}" | |||
return output | |||
return | |||
end | end | ||
return | return related |
Version vom 24. November 2024, 01:13 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
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