Lua Tutorial 03 01: Unterschied zwischen den Versionen

Aus Splitterwiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Um die Tabellen inhalte sinnvoll zu nutzen müssen wir das Modul modifizieren: <pre> local p = {} --local p = {} -- p steht für Paket (engl. package) funct…“)
 
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
 
Um die Tabellen inhalte sinnvoll zu nutzen müssen wir das Modul modifizieren:
 
Um die Tabellen inhalte sinnvoll zu nutzen müssen wir das Modul modifizieren:
 +
 +
Zum auslesen und bearbeiten der Publikationen bauen wir eine Schleife (while) die für jedes element in der Rückgabe Tabelle etwas macht, die länge der Tabelle erfahren wir über table.getn(queryResult).
 +
alles zwischen "do" und "end" wird so lange durchgeführt, bis die abbruch bedinung erreicht ist - also wenn die variable i größer oder gleich der länge der Tabelle ist. Damit das passiert erhöhen wir "i" bei jeden durchlauf um 1  (i = i+1)
 +
 +
Unseren Rückgabe string erweitern wir jeweils um den Publikationstitel (queryResult[i][1]), sowie einige formatierungselemente. Strings werden mittels .. "addiert".
  
 
<pre>
 
<pre>
Zeile 9: Zeile 14:
 
local ReturnString = ""
 
local ReturnString = ""
 
--liste aller Publikationen, Autoren sind ein attribut der liste
 
--liste aller Publikationen, Autoren sind ein attribut der liste
local queryResult =  mw.smw.ask('[[Hauptkategorie::Publikation]][[Kanon::offiziell]]|?Autoren#-=2|mainlabel=-|limit=10')
+
local queryResult =  mw.smw.ask('[[Hauptkategorie::Publikation]][[Kanon::offiziell]]|?Autoren#-=2|limit=10')
 
local i = 1
 
local i = 1
 
while i <= table.getn(queryResult)  
 
while i <= table.getn(queryResult)  
 
do
 
do
if (type(queryResult[i][1]) == "table") then
+
ReturnString = ReturnString .. "Publikationstitel:" .. queryResult[i][1] .."<br>"
-- mehr als ein Autor
 
local n = 1
 
while n <= table.getn(queryResult[i][1])
 
do
 
ReturnString = ReturnString .. " " .. queryResult[i][1][n]
 
n = n +1
 
end
 
else
 
-- only one author
 
ReturnString = ReturnString .. queryResult[i][1]
 
end
 
 
i = i + 1
 
i = i + 1
 
end
 
end
Zeile 30: Zeile 24:
 
     return ReturnString
 
     return ReturnString
 
end
 
end
 
 
 
return p
 
return p
 
 
</pre>
 
</pre>
  
 
{{#invoke:Tutorial 03 01|getOfficalAuthors}}
 
{{#invoke:Tutorial 03 01|getOfficalAuthors}}

Aktuelle Version vom 10. Mai 2024, 16:24 Uhr

Um die Tabellen inhalte sinnvoll zu nutzen müssen wir das Modul modifizieren:

Zum auslesen und bearbeiten der Publikationen bauen wir eine Schleife (while) die für jedes element in der Rückgabe Tabelle etwas macht, die länge der Tabelle erfahren wir über table.getn(queryResult). alles zwischen "do" und "end" wird so lange durchgeführt, bis die abbruch bedinung erreicht ist - also wenn die variable i größer oder gleich der länge der Tabelle ist. Damit das passiert erhöhen wir "i" bei jeden durchlauf um 1 (i = i+1)

Unseren Rückgabe string erweitern wir jeweils um den Publikationstitel (queryResult[i][1]), sowie einige formatierungselemente. Strings werden mittels .. "addiert".


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

function p.getOfficalAuthors( frame )
	-- rückgabe variable
	local ReturnString = ""
	--liste aller Publikationen, Autoren sind ein attribut der liste
	local queryResult =  mw.smw.ask('[[Hauptkategorie::Publikation]][[Kanon::offiziell]]|?Autoren#-=2|limit=10')
	local i = 1
	while i <= table.getn(queryResult) 
	do
		ReturnString = ReturnString .. "Publikationstitel:" .. queryResult[i][1] .."<br>"
		i = i + 1
	end

    return ReturnString
end
return p

Publikationstitel:Alles zum Schein
Publikationstitel:Siehe bei den enthaltenen Publikationen
Publikationstitel:An den Küsten der Kristallsee
Publikationstitel:Arkuri und Süd-Arkuri (Publikation)
Publikationstitel:Arwinger Mark (Publikation)
Publikationstitel:Auf Abwegen
Publikationstitel:Auf den Spuren der Schildkröte
Publikationstitel:Azemi der Tugendhafte - ein Antagonist für Splittermond
Publikationstitel:Badashan (Publikation)
Publikationstitel:Banden & Orden