Modul:ListenAuswahl: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Stewie (Diskussion | Beiträge) |
Stewie (Diskussion | Beiträge) |
||
(60 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| | + | 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 | + | --keine Kategorienliste vorhanden, teste ob Basistyp |
− | if | + | if Basistyp ~= nil |
then | then | ||
− | local Vorlage = mw.title.new('Liste_'.. | + | -- teste ob Liste_Basistyp vorhanden ist |
− | -- wenn | + | local Vorlage = mw.title.new('Liste_'..Basistyp, 'Vorlage' ) |
− | if Vorlage.exists | + | if Vorlage.exists == true |
− | then | + | then |
− | returnString = mw.getCurrentFrame():expandTemplate{title ="Liste_".. | + | 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 | return returnString | ||
end | 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