The Elder Scrolls Wiki
mNie podano opisu zmian
mNie podano opisu zmian
Linia 49: Linia 49:
 
end
 
end
 
if f.is(g[k-1]) then
 
if f.is(g[k-1]) then
g[k-1]=mw.text.split(f.check(g[k-2],g[k-1],1),',')
+
g[k-1]=mw.text.split(mw.text.split(f.check(g[k-2],g[k-1],1),','),'*')
 
r[#r+1]='<data><label>'..g[k-2]..'</label><default><div>'..table.concat(g[k-1],'</div><div>')..'</div></default></data>'
 
r[#r+1]='<data><label>'..g[k-2]..'</label><default><div>'..table.concat(g[k-1],'</div><div>')..'</div></default></data>'
 
end
 
end

Wersja z 14:10, 27 kwi 2021

Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:IESW/opis

--<source lang="lua">
--=p.main({args={["1:ID:Dane"]='Test',["2:s:Dane"]='Test',["0:Szablon"]='',["3:Występowanie:Informacje"]="Morrowind",["0:Nazwa"]="Artykuł",["0:Plik"]="Plik.jpg",["4:Rasa:Dane"]="Dunmer",["0:Mapa"]="",["0:Podpis mapy"]="",["0:Podpis pliku"]="",["0:Nawigacja"]=""}})
local p={}
local f=require("Moduł:IE5W/f")
local title=mw.title.getCurrentTitle()

function p.main(frame)
	local r,g,t={},{},''
	local n={
		["brak"] = true,
		["brak pliku"] = true,
		["nie"] = true,
		["nie istnieje"] = true,
		["plik nie istnieje"] = true
	}

	for k,v in pairs(frame.args) do
		u=mw.text.split(k,':')
		g[tonumber(u[1])*3-2]=u[2]
		g[tonumber(u[1])*3-1]=v
		g[tonumber(u[1])*3]=u[3]
		g[u[2]]=v:gsub('%[+(.-)%|?%]+','%1')
	end

	local title2=title.text:gsub(tostring(f.check('Występowanie',g['Występowanie'],6)),'')

	local function IESWFileExt(a,b)
		return title2..(a or '')..(g['Występowanie'] and f.check('Występowanie',g['Występowanie'],5,'') or '')..'.'..b
	end

	local function IESWFileExists(a)
		for _,l in pairs({'png','jpg','gif'}) do
			if mw.title.new(IESWFileExt(a,l),'Plik').exists then
				return IESWFileExt(a,l)
			end
		end
	end
	
	local function IESWFile(a,b,c)
		return n[mw.ustring.lower(g[a])] and '<navigation>'..a..' do danego artykułu nie istnieje. Nie pojawia się nigdy w serii [[The Elder Scrolls]].</navigation>' or f.is(g[a]) and '<image><default>'..g[a]..'</default><alt><default>'..g[b]..'</default></alt></image>' or IESWFileExists(c) and '<image><default>'..IESWFileExists(c)..'</default></image>' or not c and '<navigation>Artykuł nie posiada grafik? <span class="plainlinks">['..tostring(mw.uri.fullUrl('Specjalna:Prześlij','wpDestFile='..IESWFileExt(c,'png')..'&wpLicense=Fairuse'))..' Dodaj je!]</span></navigation>' or ''
	end
				
	r[#r+1]='<title><default>'..(f.is(g['Ikona']) and '<div class="pi-icon">[[Plik:'..g['Ikona']..'|32px|right]]</div>' or '')..'<div class="pi-title-icon">'..(f.is(g['Nazwa']) and g['Nazwa'] or title2)..'</div>'..(f.is(g['Podtytuł']) and '<div class="pi-subtitle">'..g['Podtytuł']..'</div>' or '')..'</default></title><navigation>'..g['Nawigacja']..'</navigation>'..IESWFile("Plik","Podpis pliku")..IESWFile("Mapa","Podpis mapy","_(mapa)")

	for k=3,#g,3 do
		if t~=g[k] and f.is(g[k-1]) then
			r[#r+1]='<header>'..g[k]..'</header>'
			t=g[k]
		end
		if f.is(g[k-1]) then
			g[k-1]=mw.text.split(mw.text.split(f.check(g[k-2],g[k-1],1),','),'*')
			r[#r+1]='<data><label>'..g[k-2]..'</label><default><div>'..table.concat(g[k-1],'</div><div>')..'</div></default></data>'
		end
	end

	r[#r+1]='<navigation><div class="pi-links plainlinks">[['..g['Szablon']..'|<span title="Zapoznaj się z dokumentacją szablonu.">szablon</span>]] • ['..tostring(mw.uri.fullUrl('Specjalna:Przegląd/'..title.text))..' <span title="Zobacz własności szablonu.">własności</span>] • <span title="Podgląd">['..tostring(mw.uri.fullUrl('Infobox:'..title.text))..' podgląd]</span> • <span title="Dyskusja">['..tostring(mw.uri.fullUrl('Dyskusja_infoboksu:'..title.text))..' dyskusja]</span> • <span title="Edytuj">['..tostring(mw.uri.fullUrl('Infobox:'..title.text,'action=edit'))..' edytuj]</span> • <span title="Edytuj korzystając z formularza">['..tostring(mw.uri.fullUrl('Infobox:'..title.text,'action=formedit'))..' formularz]</span></div></navigation>'
	return mw.getCurrentFrame():preprocess('<infobox theme="'..(g['Występowanie'] and f.check('Występowanie',g['Występowanie'],4) or '')..'">'..table.concat(r)..'</infobox>')
end
-- do navboksów tymczasowo
function p.getLine(frame)
	if f.is(frame.args[5]) then
		return frame:preprocess(frame.args[1])
	else
		return f.check(frame.args[1],frame.args[2],tonumber(frame.args[3]),frame.args[4])
	end
end

return p
--</source>