Zeile 18: |
Zeile 18: |
| local ntitle = mw.title.getCurrentTitle().text | | local ntitle = mw.title.getCurrentTitle().text |
| local queryResult = mw.smw.ask('[[Ausrüstungskategorie::'..ntitle..'|?=#|limit=1999') | | local queryResult = mw.smw.ask('[[Ausrüstungskategorie::'..ntitle..'|?=#|limit=1999') |
− | returnString = '<table class="wikitable sortable oben" ><tr><th>' .. Basistyp ..'</th><th>Preis</th><th>Quellen</th></tr>' | + | returnString = '<table class="wikitable sortable oben" ><tr><th>Ausrüstung</th><th>Preis</th><th>Last</th><th>Verfügbarkeit</th><th>Komplexität</th><th>Quellen</th></tr>' |
| | | |
| local i = 1 | | local i = 1 |
− | while i <= table.getn(queryResult) | + | if queryResult ~= nil then |
− | do
| + | while i <= table.getn(queryResult) |
− | local basistypArtikelinfo = mw.smw.ask('[[' .. queryResult[i][1] ..']]|?Artikelinfo|?Profilbild|?Preis|?Publikation|mainlabel=-')
| + | do |
− | -- Artikelinfo
| + | local basistypArtikelinfo = mw.smw.ask('[[' .. queryResult[i][1] ..']]|?Artikelinfo|?Profilbild|?Last|?Preis|?Komplexität|?Verfügbarkeit|?Publikation|mainlabel=-') |
− | if basistypArtikelinfo[1]['Artikelinfo'] ~= nil
| + | -- Artikelinfo |
− | then
| + | if basistypArtikelinfo[1]['Artikelinfo'] ~= nil |
− | returnString = returnString .. '<tr>' -- neue tabellen reihe
| + | then |
− | returnString = returnString ..'<td>[[' .. queryResult[i][1] .. ']] (' .. basistypArtikelinfo[1]['Artikelinfo'] ..')</td>'
| + | returnString = returnString .. '<tr>' -- neue tabellen reihe |
| + | returnString = returnString ..'<td>[[' .. queryResult[i][1] .. ']] (' .. basistypArtikelinfo[1]['Artikelinfo'] ..')</td>' |
| + | end |
| + | returnString = returnString .. '<td>' |
| + | --Preis |
| + | if basistypArtikelinfo[1]['Preis'] ~= nil |
| + | then |
| + | returnString = returnString .. basistypArtikelinfo[1]['Preis'] ..'</td>' |
| + | end |
| + | --Last |
| + | returnString = returnString .. '<td>' |
| + | if basistypArtikelinfo[1]['Last'] ~= nil |
| + | then |
| + | returnString = returnString .. basistypArtikelinfo[1]['Last'] ..'</td>' |
| + | end |
| + | --Verfügbarkeit |
| + | returnString = returnString .. '<td>' |
| + | if basistypArtikelinfo[1]['Verfügbarkeit'] ~= nil |
| + | then |
| + | returnString = returnString .. basistypArtikelinfo[1]['Verfügbarkeit'] ..'</td>' |
| + | end |
| + | --Komplexität |
| + | returnString = returnString .. '<td>' |
| + | if basistypArtikelinfo[1]['Komplexität'] ~= nil |
| + | then |
| + | returnString = returnString .. basistypArtikelinfo[1]['Komplexität'] ..'</td>' |
| + | end |
| + | --Quellen |
| + | returnString = returnString .. '<td>' |
| + | if basistypArtikelinfo[1]['Publikation'] ~= nil |
| + | then |
| + | if (type(basistypArtikelinfo[1]['Publikation']) == "table") |
| + | then |
| + | n = 1 |
| + | while n <= table.getn(basistypArtikelinfo[1]['Publikation']) |
| + | do |
| + | returnString = returnString .. basistypArtikelinfo[1]['Publikation'][n] |
| + | if n < table.getn(basistypArtikelinfo[1]['Publikation']) |
| + | then |
| + | returnString = returnString ..", " |
| + | end |
| + | n = n + 1 |
| + | end |
| + | else |
| + | returnString = returnString .. basistypArtikelinfo[1]['Publikation'] |
| + | end |
| + | end |
| + | returnString = returnString .. '</td>' |
| + | |
| + | i = i +1 |
| end | | end |
− | i = i +1 | + | --tabelle schließen |
− | end
| + | returnString = returnString .. '</table>' |
− | --tabelle schließen
| + | return returnString |
− | returnString = returnString .. '</table>'
| + | end |
− | return returnString | + | end |
| + | -- Ausbildung benutzt zwei Vorlagen.. Liste.Ausbildung wird nicht gefunden |
| + | if Basistyp == "Ausbildung" |
| + | then |
| + | returnString = returnString .. mw.getCurrentFrame():expandTemplate{title ="Vorlage:Ausbildung.Listen"} |
| + | return returnString -- kaputte tabelle vermeiden, funktion hier beenden |
| end | | end |
− |
| |
| -- Semantische Abfrage nach Seiten mit diesen Basistyp | | -- Semantische Abfrage nach Seiten mit diesen Basistyp |
| local queryResult = mw.smw.ask('[[Basistyp::'..Basistyp .. ']]|?=#|limit=1999') --link=none funktioniert nicht über api abfrage daher ?=# | | local queryResult = mw.smw.ask('[[Basistyp::'..Basistyp .. ']]|?=#|limit=1999') --link=none funktioniert nicht über api abfrage daher ?=# |
| if queryResult == nil then return nil end -- Wenn query nicht funktionert abbruch: TODO funktionierender alternativer query | | if queryResult == nil then return nil end -- Wenn query nicht funktionert abbruch: TODO funktionierender alternativer query |
| -- tabellen kopf | | -- tabellen kopf |
− | returnString = '<table class="wikitable sortable oben" ><tr><th>' .. Basistyp ..'</th><th>Gehört zu...</th><th>Quellen</th></tr>' | + | returnString = returnString .. '<table class="wikitable sortable oben" ><tr><th>' .. Basistyp ..'</th><th>Gehört zu...</th><th>Quellen</th></tr>' |
| -- loop über query result und erstelle tabelle | | -- loop über query result und erstelle tabelle |
| local i = 1 | | local i = 1 |