Modul:Quellen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Stewie (Diskussion | Beiträge) |
Stewie (Diskussion | Beiträge) |
||
(43 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 10: | Zeile 10: | ||
local arg = frame.args['Pagename'] | local arg = frame.args['Pagename'] | ||
if arg == nil then return nil end | if arg == nil then return nil end | ||
− | + | local returnString = "" | |
− | local queryResult = mw.smw.ask('[[Typ::Gesamtquellen]]') | + | local queryResult = mw.smw.ask('[[Typ::Gesamtquellen]][[-Hat Unterobjekt::'.. arg .. ']]|?=#|limit=1999|format=array|') |
− | + | local i = 1 | |
− | return | + | while i <= table.getn(queryResult) |
+ | do | ||
+ | local queryQuelle = mw.smw.ask('[[' .. queryResult[i][1] ..']]|?Seitenausgabe Quelle|?Publikation|mainlabel=-') | ||
+ | returnString = returnString .. queryQuelle[1]['Publikation'] .. ":" | ||
+ | if (queryQuelle[1]['Seitenausgabe Quelle']) == nil then -- fehlende Angaben in der Quelle | ||
+ | returnString = returnString .."Fehler: keine Seitenzahl zu finden" | ||
+ | elseif(type(queryQuelle[1]['Seitenausgabe Quelle']) == "table") then -- Tabelle ein loop mehr | ||
+ | local n = 1 | ||
+ | returnString = returnString .. " Seite: " | ||
+ | while n <= table.getn(queryQuelle[1]['Seitenausgabe Quelle']) | ||
+ | do | ||
+ | returnString = returnString .. queryQuelle[1]['Seitenausgabe Quelle'][n] .."," | ||
+ | n = n +1 | ||
+ | end | ||
+ | else -- einfach nur text | ||
+ | returnString = returnString .. " Seite: " .. queryQuelle[1]['Seitenausgabe Quelle'] | ||
+ | end | ||
+ | returnString = returnString .. "<br>" | ||
+ | i = i +1 | ||
+ | end | ||
+ | return returnString | ||
end | end | ||
return p | return p |
Aktuelle Version vom 26. Februar 2024, 22:25 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Quellen/Doku erstellt werden
--[[
Lua Modul zum zuverlässigen darstellen von Artikelquellen
]]--
local p = {} --local p = {} -- p steht für Paket (engl. package)
function p.getQuellen( frame )
--teste ob argument ungleich nichts
local arg = frame.args['Pagename']
if arg == nil then return nil end
local returnString = ""
local queryResult = mw.smw.ask('[[Typ::Gesamtquellen]][[-Hat Unterobjekt::'.. arg .. ']]|?=#|limit=1999|format=array|')
local i = 1
while i <= table.getn(queryResult)
do
local queryQuelle = mw.smw.ask('[[' .. queryResult[i][1] ..']]|?Seitenausgabe Quelle|?Publikation|mainlabel=-')
returnString = returnString .. queryQuelle[1]['Publikation'] .. ":"
if (queryQuelle[1]['Seitenausgabe Quelle']) == nil then -- fehlende Angaben in der Quelle
returnString = returnString .."Fehler: keine Seitenzahl zu finden"
elseif(type(queryQuelle[1]['Seitenausgabe Quelle']) == "table") then -- Tabelle ein loop mehr
local n = 1
returnString = returnString .. " Seite: "
while n <= table.getn(queryQuelle[1]['Seitenausgabe Quelle'])
do
returnString = returnString .. queryQuelle[1]['Seitenausgabe Quelle'][n] ..","
n = n +1
end
else -- einfach nur text
returnString = returnString .. " Seite: " .. queryQuelle[1]['Seitenausgabe Quelle']
end
returnString = returnString .. "<br>"
i = i +1
end
return returnString
end
return p