Modul:ListenAuswahl

Aus Splitterwiki
Zur Navigation springen Zur Suche springen

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

--[[
Lua Alternative für den ersten Teil der Vorlage:Listen, die weitere Listen je nach art der Seite nachläd.
Bisherige auswahl logik:
Teste ob die Seite von Typ Kategorie ist, wenn ja und vorhanden zeige Liste_Pagename (funktioniert)
Wenn Liste_Pagename nicht vorhanden prüfe ob Liste_Basistyp vorhanden ist und zeige diese an
Wenn nicht vorhanden prüfe ob Liste_Hauptkategorie vorhanden und zeige diese und Liste_Eigenkategorie an
Wenn NICHT Kategorie 
Wenn Liste_Hauptkategorie vorhanden zeige diese an (Diese prüft ob sie auf einen Basistyp oder anderen eingebunden wird)
zeige immer Liste GehörtZu an
]]--



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

function p.Liste( frame )
	local Pagename = frame.args['Pagename']
	if Pagename == nil then return nil end
	local returnString = ""
    local queryResult =  mw.smw.ask('[['..Pagename..']]|?Seitentyp|?Basistyp|mainlabel=-')
    if queryResult == nil then return nil end
    local Seitentyp = queryResult[1]['Seitentyp']
    local Basistyp = queryResult[1]['Basistyp']
	Basistyp = string.gsub(Basistyp, "%s+", "_")
    --teste ob Seitentyp Kategorie
    if Seitentyp == 'Kategorie' 
    	then 
    		-- teste ob Liste_Pagename vorhanden ist 
    		local Vorlage = mw.title.new('Liste_'..Pagename, 'Vorlage' )
    		-- wenn das der fall ist lade entsprechendes template
    		if Vorlage.exists ~= nil
    			then 
    				returnString = mw.getCurrentFrame():expandTemplate{title ="Liste_"..Pagename} 
    				return returnString
    			end
    	end
    --keine Kategorienliste vorhanden, teste ob Basistyp 
    if Basistyp ~= nil 
    	then
    		-- teste ob Liste_Pagename vorhanden ist 
    		local Vorlage = mw.title.new('Liste_'..Basistyp, 'Vorlage' )
    		if Vorlage ~= nil
    			then
    				returnString = mw.getCurrentFrame():expandTemplate{title ="Liste_"..Basistyp} 
    				return returnString
    			end
    	end
    return returnString
end

return p