Modul:AutomatischerIndex: Unterschied zwischen den Versionen

Aus Splitterwiki
Zur Navigation springen Zur Suche springen
Zeile 15: Zeile 15:
 
local queryResult =  mw.smw.ask('[[Typ::Gesamtquellen]][[Publikation::'..Publikation..']|?=#|limit=1999|format=array|?Seitenausgabe Gesamtquellen  = quelle') --link=none funktioniert nicht über api abfrage daher ?=#
 
local queryResult =  mw.smw.ask('[[Typ::Gesamtquellen]][[Publikation::'..Publikation..']|?=#|limit=1999|format=array|?Seitenausgabe Gesamtquellen  = quelle') --link=none funktioniert nicht über api abfrage daher ?=#
 
     local i = 1
 
     local i = 1
 +
    local ersterBuchstabe = nil
 
while i <= table.getn(queryResult)
 
while i <= table.getn(queryResult)
 
do
 
do
 +
--ersten buchstaben herausfinden
 +
if ersterBuchstabe ~= mw.text.truncate(mw.text.split(queryResult[i][1],'#')[1],1,'')
 +
then
 +
-- setze aktuellen ersten buchstaben
 +
ersterBuchstabe = mw.text.truncate(mw.text.split(queryResult[i][1],'#')[1],1,'')
 +
-- schreibe überschrift
 +
returnString = '<h2>' .. ersterBuchtabe .. '</h2>'
 +
end
 +
--an rückgabe string anfügen
 
returnString = returnString .. mw.text.split(queryResult[i][1],'#')[1] .. " S." ..queryResult[i]['quelle']..'<br>'
 
returnString = returnString .. mw.text.split(queryResult[i][1],'#')[1] .. " S." ..queryResult[i]['quelle']..'<br>'
 
i = i +1
 
i = i +1

Version vom 28. November 2020, 20:48 Uhr

Die Dokumentation für dieses Modul kann unter Modul:AutomatischerIndex/Doku erstellt werden

--[[
Lua Alternative für Vorlage:AutomatischerIndex - bessere Performance in allen Bereichen
erwartet eine Publikation als argument
]]--


local p = {} --local p = {} -- p steht für Paket (engl. package)

function p.Index( frame )
	--teste ob argument ungleich nichts
	local Publikation = frame.args['Publikation']
	if Publikation == nil then return nil end
	--
	local returnString = ""
	local queryResult =  mw.smw.ask('[[Typ::Gesamtquellen]][[Publikation::'..Publikation..']|?=#|limit=1999|format=array|?Seitenausgabe Gesamtquellen  = quelle') --link=none funktioniert nicht über api abfrage daher ?=#
    local i = 1
    local ersterBuchstabe = nil
	while i <= table.getn(queryResult)
		do
			--ersten buchstaben herausfinden
			if ersterBuchstabe ~= mw.text.truncate(mw.text.split(queryResult[i][1],'#')[1],1,'')
				then
					-- setze aktuellen ersten buchstaben
					ersterBuchstabe = mw.text.truncate(mw.text.split(queryResult[i][1],'#')[1],1,'')
					-- schreibe überschrift
					returnString = '<h2>' .. ersterBuchtabe .. '</h2>'
				end
			--an rückgabe string anfügen
			returnString = returnString .. mw.text.split(queryResult[i][1],'#')[1] .. " S." ..queryResult[i]['quelle']..'<br>'
			i = i +1
		end
    return returnString
end

return p