Modul:ListenAuswahl: Unterschied zwischen den Versionen

Aus Splitterwiki
Zur Navigation springen Zur Suche springen
 
(57 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
 
Lua Alternative für den ersten Teil der Vorlage:Listen, die weitere Listen je nach art der Seite nachläd.
 
Lua Alternative für den ersten Teil der Vorlage:Listen, die weitere Listen je nach art der Seite nachläd.
 
Bisherige auswahl logik:
 
Bisherige auswahl logik:
Teste ob die Seite von Typ Kategorie ist, wenn ja und vorhanden zeige Liste_Pagename
+
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 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 vorhanden prüfe ob Liste_Hauptkategorie vorhanden und zeige diese und Liste_Eigenkategorie an
Zeile 18: Zeile 18:
 
if Pagename == nil then return nil end
 
if Pagename == nil then return nil end
 
local returnString = ""
 
local returnString = ""
     local queryResult =  mw.smw.ask('[['..Pagename..']]|?Seitentyp|?Basistyp|mainlabel=-')
+
     local queryResult =  mw.smw.ask('[['..Pagename..']]|?Seitentyp|?Basistyp#|?Hauptkategorie#|?Eigenkategorie#')
 
     if queryResult == nil then return nil end
 
     if queryResult == nil then return nil end
 
     local Seitentyp = queryResult[1]['Seitentyp']
 
     local Seitentyp = queryResult[1]['Seitentyp']
 +
    local Basistyp = nil
 +
    if queryResult[1]['Basistyp'] ~= nil
 +
    then
 +
    Basistyp = queryResult[1]['Basistyp']
 +
Basistyp = string.gsub(Basistyp, "%s+", "_")
 +
    end
 +
 +
local Hauptkategorie = nil
 +
if queryResult[1]['Hauptkategorie'] ~= nil
 +
then
 +
Hauptkategorie = queryResult[1]['Hauptkategorie']
 +
Hauptkategorie = string.gsub(Hauptkategorie, "%s+", "_")
 +
end
 +
 +
local Eigenkategorie = nil
 +
if queryResult[1]['Eigenkategorie'] ~= nil
 +
then
 +
Eigenkategorie = queryResult[1]['Eigenkategorie']
 +
Eigenkategorie = string.gsub(Eigenkategorie, "%s+", "_")
 +
end
 
     --teste ob Seitentyp Kategorie
 
     --teste ob Seitentyp Kategorie
 
     if Seitentyp == 'Kategorie'  
 
     if Seitentyp == 'Kategorie'  
Zeile 27: Zeile 47:
 
     local Vorlage = mw.title.new('Liste_'..Pagename, 'Vorlage' )
 
     local Vorlage = mw.title.new('Liste_'..Pagename, 'Vorlage' )
 
     -- wenn das der fall ist lade entsprechendes template
 
     -- wenn das der fall ist lade entsprechendes template
     if Vorlage.exists  
+
     if Vorlage.exists == true
 
     then  
 
     then  
 
     returnString = mw.getCurrentFrame():expandTemplate{title ="Liste_"..Pagename}  
 
     returnString = mw.getCurrentFrame():expandTemplate{title ="Liste_"..Pagename}  
Zeile 33: Zeile 53:
 
     end
 
     end
 
     end
 
     end
     --keine Kategorienliste vorhanden, teste ob Basistyp (dann nutze Modul:ListeBasistyp)
+
     --keine Kategorienliste vorhanden, teste ob Basistyp  
 
     if Basistyp ~= nil  
 
     if Basistyp ~= nil  
 
     then
 
     then
     return "FOo"
+
     -- teste ob Liste_Basistyp vorhanden ist
 +
    local Vorlage = mw.title.new('Liste_'..Basistyp, 'Vorlage' )
 +
    if Vorlage.exists == true
 +
    then
 +
    returnString = mw.getCurrentFrame():expandTemplate{title ="Liste_"..Basistyp}
 +
    returnString = mw.getCurrentFrame():callParserFunction{name='#invoke', args={'ListeBasistyp','Liste',Basistyp}}
 +
    return returnString
 +
    end
 +
    end
 +
    --teste ob Liste_Hauptkategrie vorhanden, wenn ja diese nutzen
 +
if Hauptkategorie ~= nil
 +
then
 +
    local Vorlage = mw.title.new('Liste_'..Hauptkategorie, 'Vorlage' )
 +
    if Vorlage.exists == true
 +
    then
 +
    returnString = mw.getCurrentFrame():expandTemplate{title ="Liste_"..Hauptkategorie}
 +
    --returnString = returnString .. mw.getCurrentFrame():callParserFunction{name='#invoke', args={'ListeBasistyp','Liste','Basistyp='..Basistyp}}
 +
    return returnString
 +
    end
 +
end
 +
--eigenkategorie (kann basistyp sein dann lieber invoke funktion )
 +
if Eigenkategorie ~= nil
 +
then
 +
    local Vorlage = mw.title.new('Liste_'..Eigenkategorie, 'Vorlage' )
 +
    if Vorlage.exists == true
 +
    then
 +
    if Eigenkategorie == "Basistyp"
 +
    then
 +
    returnString = mw.getCurrentFrame():callParserFunction{name='#invoke', args={'ListeBasistyp','Liste','Basistyp=Basistyp'}}
 +
    end
 +
 
 +
    returnString = mw.getCurrentFrame():expandTemplate{title ="Liste_"..Eigenkategorie}
 +
    return returnString
 +
    end
 
     end
 
     end
     return returnString  
+
     return returnString ..mw.getCurrentFrame():expandTemplate{title ="Liste_GehörtZu"}
 
end
 
end
  
 
return p
 
return p

Aktuelle Version vom 28. Dezember 2021, 02:35 Uhr

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#|?Hauptkategorie#|?Eigenkategorie#')
    if queryResult == nil then return nil end
    local Seitentyp = queryResult[1]['Seitentyp']
    local Basistyp = nil
    if queryResult[1]['Basistyp'] ~= nil 
    	then
    		Basistyp = queryResult[1]['Basistyp']
			Basistyp = string.gsub(Basistyp, "%s+", "_")
    	end
	
	local Hauptkategorie = nil
	if queryResult[1]['Hauptkategorie'] ~= nil
		then
			Hauptkategorie = queryResult[1]['Hauptkategorie']
			Hauptkategorie = string.gsub(Hauptkategorie, "%s+", "_")
		end
		
	local Eigenkategorie = nil
	if queryResult[1]['Eigenkategorie'] ~= nil
		then
			Eigenkategorie = queryResult[1]['Eigenkategorie']
			Eigenkategorie = string.gsub(Eigenkategorie, "%s+", "_")
		end
    --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 == true
    			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_Basistyp vorhanden ist 
    		local Vorlage = mw.title.new('Liste_'..Basistyp, 'Vorlage' )
    		if Vorlage.exists == true
    			then
    				returnString = mw.getCurrentFrame():expandTemplate{title ="Liste_"..Basistyp} 
    				returnString = mw.getCurrentFrame():callParserFunction{name='#invoke', args={'ListeBasistyp','Liste',Basistyp}}
    				return returnString
    			end
    	end
    --teste ob Liste_Hauptkategrie vorhanden, wenn ja diese nutzen
	if Hauptkategorie ~= nil 
		then
    		local Vorlage = mw.title.new('Liste_'..Hauptkategorie, 'Vorlage' )
    		if Vorlage.exists == true
    			then
    				returnString = mw.getCurrentFrame():expandTemplate{title ="Liste_"..Hauptkategorie} 
    				--returnString = returnString .. mw.getCurrentFrame():callParserFunction{name='#invoke', args={'ListeBasistyp','Liste','Basistyp='..Basistyp}}
    				return returnString
    			end
		end
	--eigenkategorie (kann basistyp sein dann lieber invoke funktion )
	if Eigenkategorie ~= nil 
		then
    		local Vorlage = mw.title.new('Liste_'..Eigenkategorie, 'Vorlage' )
    		if Vorlage.exists == true
    		then
    			if Eigenkategorie == "Basistyp" 
    				then
    					returnString = mw.getCurrentFrame():callParserFunction{name='#invoke', args={'ListeBasistyp','Liste','Basistyp=Basistyp'}}	
    				end

    				returnString = mw.getCurrentFrame():expandTemplate{title ="Liste_"..Eigenkategorie} 
    				return returnString
    		end
    	end
    return returnString ..mw.getCurrentFrame():expandTemplate{title ="Liste_GehörtZu"} 
end

return p