Modul:ListeBasistyp: Unterschied zwischen den Versionen

Aus Splitterwiki
Zur Navigation springen Zur Suche springen
Zeile 14: Zeile 14:
 
-- Semantische Abfrage nach Seiten mit diesen Basistyp
 
-- Semantische Abfrage nach Seiten mit diesen Basistyp
 
local queryResult =  mw.smw.ask('[[Basistyp::'..Basistyp .. ']]|?=#|limit=1999') --link=none funktioniert nicht über api abfrage daher ?=#
 
local queryResult =  mw.smw.ask('[[Basistyp::'..Basistyp .. ']]|?=#|limit=1999') --link=none funktioniert nicht über api abfrage daher ?=#
+
-- tabellen kopf
 +
returnString = returnString .. p.TabellenKopf()
 
-- loop über query result und erstelle tabelle
 
-- loop über query result und erstelle tabelle
 
local i = 1
 
local i = 1
Zeile 34: Zeile 35:
 
 
 
end
 
end
 +
--tabelle schließen
 +
returnString = returnString .. '</table>'
  
 
     return returnString
 
     return returnString
 
end
 
end
  
 +
function p.TabellenKopf()
 +
return '<table class="wikitable sortable oben" ><tr><th>{{PAGENAME}}</th><th>Gehört zu...</th><th>Quellen</th></tr>'
 +
end
 
return p
 
return p

Version vom 22. November 2020, 16:34 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 ?=#
	-- tabellen kopf
	returnString = returnString .. p.TabellenKopf()
	-- 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|?GehörtZu|?Publikation|mainlabel=-')
			-- um fehler zu vermeiden auf nil prüfen
			if basistypArtikelinfo[1]['Artikelinfo'] ~= nil
				then
					returnString = returnString ..basistypArtikelinfo[1]['Artikelinfo']
				end
			if basistypArtikelinfo[1]['Profilbild'] ~= nil
				then
					-- Vorlage:Vorschaubild.Kreis ggf. als eigene Funktion auslagern wenn öfter notwendig
					returnString = returnString .. '<div style="width: 64px; height: 64px; border-radius: 64px; -webkit-border-radius: 640px; -moz-border-radius: 64px; overflow:hidden; float:right; background:lightgray; ">'
					returnString = returnString ..'[[Datei:'..basistypArtikelinfo[1]['Profilbild'] .. '|90x90px|verweis='.. queryResult[i][1] ..']]</div>'
				end
			i = i + 1
		
		end
		--tabelle schließen
		returnString = returnString .. '</table>'

    return returnString
end

function p.TabellenKopf()
return '<table class="wikitable sortable oben" ><tr><th>{{PAGENAME}}</th><th>Gehört zu...</th><th>Quellen</th></tr>'
end
return p