Modul:Zastava

Izvor: Wikipedija
Dokumentacija modula[vidi] [uredi] [povijest] [osvježi]

Modul se koristi u predlošcima {{Zastava}}, {{Z+X}} i {{Z}}.

{{#invoke:Zastava|main |kratica=BAH |godina=1972 |veličina=45x30px |okvir=x |wp=x}}
Bahami
{{#invoke:Zastava|main |kratica=BAH |veličina=45 |wp=x}}
Bahami
{{#invoke:Zastava|main |kratica=BAH |veličina=45 |wp= }}
{{#invoke:Zastava|main |kratica=BAH}}

Kategorije za praćenje


local p = {}

local podatci = mw.loadData('Modul:Zastava/podatci')

function p.main(frame)
	local args = frame.args
	return p.zastava(args)
end
--
-- main(frame)
--
function p.zastava(args)
	local kratica = args["kratica"]  or  ""
	local velicina = (args["veličina"] and args["veličina"]~="" and args["veličina"])  or  "24x16px"
	local godina = (args["godina"] and args["godina"]~="" and args["godina"])  or  "2999"
	local okvir = args["okvir"] and args["okvir"]~="" --neprazno: prikaži
	local wp = args["wp"] and args["wp"]~="" --prikazati i wikipoveznicu na državu? neprazno:prikaži
	local nocat = args["nocat"] and args["nocat"]~="" --ne kategoriziraj, u slučaju greške
	godina = tonumber(godina)
	
	local z = p.Zastava(kratica, godina) 
	local slika = z or "No flag 3 - wc.svg"
	  
	local rv = "[[slika:" .. slika
	
	if okvir then
		rv = rv .. "|border"
	end
	
	rv = rv .. "|"  .. velicina:gsub("px","") .. "px"
	
	if not z then
		rv = rv .. "|Nepoznata kratica »" .. kratica .. "«"
	end
	
	local link = p.Wp(kratica, godina)
	rv = rv .. "|link=" .. (string.match(link or "", "%[%[([^|%]]+)") or "Wikipedija:Zastave") --u link= ne ide wikipoveznica

	rv = rv .. "]]"
	
	
	if wp and kratica~="" then
		rv = rv .. " " .. (link  or  "Nepoznata kratica »" .. kratica .. "«. Unesite kôd s [[Modul:Zastava/podatci|'''ove stranice''']]. ")
	end
	
	if not z and not nocat and kratica~="" then
		rv = "[[Kategorija:Greška u modulu zastave|" .. kratica .. "]]" .. rv
	end
	
	return rv
end

--
-- Zastava(kratica, godina): vraća ime slike
--
function p.Zastava(kratica, godina)
	local entitet = podatci[kratica]
	if entitet then
		local povijesne_zastave = entitet.povijesneZastave
		if type(godina)=="number" and type(povijesne_zastave)=="table" then
			for i, pz in ipairs(povijesne_zastave) do
				--mw.log(i,pz.pocetak,pz.kraj,pz.zastava, godina)
				if pz.pocetak <= godina and godina <= pz.kraj then
					return pz.zastava
				end --if
			end --for
		end --if	
		return entitet.zastava
	end --if
	return nil
end

--
-- Wp(kratica, godina): vraća wikipoveznicu na državu; (zasad) ne ovisi o godini
--
function p.Wp(kratica, godina)
	local entitet = podatci[kratica]
	return (entitet and entitet.wp) or nil
end

return p