Modul:ListeBasistyp: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Stewie (Diskussion | Beiträge) |
Stewie (Diskussion | Beiträge) |
||
Zeile 19: | Zeile 19: | ||
while i <= table.getn(queryResult) | while i <= table.getn(queryResult) | ||
do | do | ||
− | local basistypArtikelinfo = mw.smw.ask('[[' .. queryResult[i][1] ..']]|?Artikelinfo|mainlabel=-') | + | local basistypArtikelinfo = mw.smw.ask('[[' .. queryResult[i][1] ..']]|?Artikelinfo|?Profilbild|mainlabel=-') |
− | returnString = returnString ..basistypArtikelinfo[1]['Artikelinfo'] | + | -- um fehler zu vermeiden auf nil prüfen |
+ | if basistypArtikelinfo[1]['Artikelinfo'] ~= nil | ||
+ | then | ||
+ | returnString = returnString ..basistypArtikelinfo[1]['Artikelinfo'] | ||
+ | end | ||
+ | if basistypArtikelino[1]['Profilbild'] ~= nil | ||
+ | then | ||
+ | returnString = returnString ..basistypArtikelinfo[1]['Profilbild'] | ||
+ | end | ||
i = i + 1 | i = i + 1 | ||
Version vom 22. November 2020, 15:24 Uhr
Die Dokumentation für dieses Modul kann unter Modul:ListeBasistyp/Doku erstellt werden
--[[
Lua Alternative für Vorlage:Liste Basistyp (in der Hoffnung auf bessere Performance)
erwartet ein basistyp als argument und stellt zugehörigen Seiten da.
]]--
local p = {} --local p = {} -- p steht für Paket (engl. package)
function p.Liste( frame )
local returnString = ""
local Basistyp = frame.args['Basistyp']
-- test ob Basistyp leer ist wenn ja, beende hier
if Basistyp == nil then return nil end
-- Todo: test ob argument tatsächlich ein basistyp ist wenn nicht beende hier
-- Semantische Abfrage nach Seiten mit diesen Basistyp
local queryResult = mw.smw.ask('[[Basistyp::'..Basistyp .. ']]|?=#|limit=1999') --link=none funktioniert nicht über api abfrage daher ?=#
-- loop über query result und erstelle tabelle
local i = 1
while i <= table.getn(queryResult)
do
local basistypArtikelinfo = mw.smw.ask('[[' .. queryResult[i][1] ..']]|?Artikelinfo|?Profilbild|mainlabel=-')
-- um fehler zu vermeiden auf nil prüfen
if basistypArtikelinfo[1]['Artikelinfo'] ~= nil
then
returnString = returnString ..basistypArtikelinfo[1]['Artikelinfo']
end
if basistypArtikelino[1]['Profilbild'] ~= nil
then
returnString = returnString ..basistypArtikelinfo[1]['Profilbild']
end
i = i + 1
end
return returnString
end
return p