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 15: |
Zeile 15: |
| | | |
| function p.Liste( frame ) | | function p.Liste( frame ) |
− | local Pagename = frame.args['Pagenname'] | + | local Pagename = frame.args['Pagename'] |
| 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#') |
− | return queryResult | + | 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 | | end |
| | | |
| return p | | return p |