Modul:Quellen: Unterschied zwischen den Versionen

Aus Splitterwiki
Zur Navigation springen Zur Suche springen
 
(33 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 11: Zeile 11:
 
if arg == nil then return nil end
 
if arg == nil then return nil end
 
local returnString = ""
 
local returnString = ""
local queryResult =  mw.smw.ask('[[Typ::Gesamtquellen]][[-Hat Unterobjekt::Selenia]]|?=#|limit=1999|format=array|')
+
local queryResult =  mw.smw.ask('[[Typ::Gesamtquellen]][[-Hat Unterobjekt::'.. arg .. ']]|?=#|limit=1999|format=array|')
 
local i = 1
 
local i = 1
 
while i <= table.getn(queryResult)
 
while i <= table.getn(queryResult)
 
do
 
do
local queryQuelle = mw.smw.ask('[[' .. queryResult[i][1] ..']]|?Seitenausgabe Quelle|mainlabel=-')
+
local queryQuelle = mw.smw.ask('[[' .. queryResult[i][1] ..']]|?Seitenausgabe Quelle|?Publikation|mainlabel=-')
if type( queryQuelle ) == "table" then
+
returnString = returnString .. queryQuelle[1]['Publikation'] .. ":"
        local myResult = ""
+
if (queryQuelle[1]['Seitenausgabe Quelle']) == nil then -- fehlende Angaben in der Quelle
        for num, row in pairs( queryResult ) do
+
returnString = returnString .."Fehler: keine Seitenzahl zu finden"
            myResult = myResult .. '* This is result #' .. num .. '\n'
+
elseif(type(queryQuelle[1]['Seitenausgabe Quelle']) == "table") then -- Tabelle ein loop mehr
            for property, data in pairs( row ) do
+
local n = 1
                local dataOutput = data
+
returnString = returnString .. " Seite: "
                if type( data ) == 'table' then
+
while n <= table.getn(queryQuelle[1]['Seitenausgabe Quelle'])
                    dataOutput = mw.text.listToText( data, ', ', ' and ')
+
do
                end
+
returnString = returnString .. queryQuelle[1]['Seitenausgabe Quelle'][n] ..","
                myResult = myResult .. '** ' .. property .. ': ' .. dataOutput .. '\n'
+
n = n +1
            end
+
end
        end
+
else -- einfach nur text
        return myResult
+
returnString = returnString .. " Seite: " .. queryQuelle[1]['Seitenausgabe Quelle']
    end
+
end
 +
returnString = returnString .. "<br>"
 +
i = i +1
 
end
 
end
 
 
     return returnString
 
     return returnString
 
end
 
end
  
 
return p
 
return p

Aktuelle Version vom 26. Februar 2024, 22:25 Uhr

Die Dokumentation für dieses Modul kann unter Modul:Quellen/Doku erstellt werden

--[[
Lua Modul zum zuverlässigen darstellen von Artikelquellen
]]--


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

function p.getQuellen( frame )
	--teste ob argument ungleich nichts
	local arg = frame.args['Pagename']
	if arg == nil then return nil end
	local returnString = ""
	local queryResult =  mw.smw.ask('[[Typ::Gesamtquellen]][[-Hat Unterobjekt::'.. arg .. ']]|?=#|limit=1999|format=array|')
	local i = 1
	while i <= table.getn(queryResult)
		do
			local queryQuelle = mw.smw.ask('[[' .. queryResult[i][1] ..']]|?Seitenausgabe Quelle|?Publikation|mainlabel=-')	
			returnString = returnString .. queryQuelle[1]['Publikation'] .. ":"
			if (queryQuelle[1]['Seitenausgabe Quelle']) == nil then -- fehlende Angaben in der Quelle
				returnString = returnString .."Fehler: keine Seitenzahl zu finden"
			elseif(type(queryQuelle[1]['Seitenausgabe Quelle']) == "table") then -- Tabelle ein loop mehr
				local n = 1
				returnString = returnString .. " Seite: " 
				while n <= table.getn(queryQuelle[1]['Seitenausgabe Quelle'])
					do
						returnString = returnString .. queryQuelle[1]['Seitenausgabe Quelle'][n] ..","
						n = n +1
					end
			else -- einfach nur text
				returnString = returnString .. " Seite: " .. queryQuelle[1]['Seitenausgabe Quelle']
			end
			returnString = returnString .. "<br>"
		i = i +1	
		end
    return returnString
end

return p