Hopp til innhold

Modul:Flagg

Fra Wikipedia, den frie encyklopedi
Sideversjon per 18. mar. 2016 kl. 23:42 av Cocu (diskusjon | bidrag) (rv)

Mal:Dokumentasjon

local p = {}
 
local lang = mw.getContentLanguage()
function p.flag( frame )

	-- sjekker om området er angitt vha en ISO 3166-1 alfa-2 eller alfa-3-kode
	-- hvis det er det, og ISO-koden er registrert, finner den automatisk det fulle navnet
	local ISO = require("Modul:Land")
	local ISOname = ISO.ISO(frame)
	if ISOname == nil or ISOname == "" then
		ISOname = ""
	else
		frame.args[1] = ISOname
	end
 
	-- sjekker om området er angitt vha en alternativ skrivemåte
	-- hvis det er det, og den alternative skrivemåten er registrert, finner den automatisk riktig navn
	local ALT = require("Modul:Flagg/Altnavn")
	local ALTname = ALT[frame.args[1]]
	if ALTname == nil or ALTname == "" then
		ALTname = ""
	else
		frame.args[1] = mw.text.trim(ALT[frame.args[1]])
	end
 
 	-- Henter ut nødvendige data fra undersider basert på første bokstav i områdets fulle navn
 	local datap = require("Modul:Flagg/Data")
 	local datapage = datap.areaname(frame)
 
	-- velger størrelsen på flagget
	local size;
	if frame.args[6] == nil or frame.args[6] == "" then 
		size = "22x18px"
	elseif frame.args[6] ~= "" then
		size = frame.args[6]
	end
 
	-- hvis det ikke er angitt flagg for ønsket område, vises et grått flagg
	DataPage = datapage.flagdata[frame.args[1]]
	if DataPage == nil or DataPage == "" then
 		return "[[Fil:Flag of None.svg|" .. size .. "|lenke=" .. frame.args[1] .. "]]<sup>[[Modul:Flagg/Data/nye|[?]]][[Kategori:Sider som inneholder uregistrerte flagg]]</sup>"
	end
	if DataPage.defflag == nil or DataPage.defflag == "" then
		if DataPage.weapon == nil or DataPage.weapon == "" then
 			return "[[Fil:Flag of None.svg|" .. size .. "|lenke=" .. frame.args[1] .. "]]<sup>[[Modul:Flagg/Data/nye|[?]]][[Kategori:Sider som inneholder uregistrerte flagg]]</sup>"
 		end
	end
 
	-- Henter ut de nødvendige data fra datasiden, basert på angitt parameter
	local FlagName;
	FlagVar = frame.args[2]	
	if frame.args[1] ~= "" then
		if FlagVar == nil then
			FlagName = DataPage.defflag
		elseif FlagVar == "" then
			FlagName = DataPage.defflag
		elseif FlagVar == "lenke" then
			FlagName = DataPage.defflag
		elseif FlagVar == "airforce" or FlagVar == "air force" then
			FlagName = DataPage.airforce
		elseif FlagVar == "alt" then
			FlagName = DataPage.alt
		elseif FlagVar == "civil" then
			FlagName = DataPage.civil
		elseif FlagVar == "coast guard" or FlagVar == "coastguard" then
			FlagName = DataPage.coastguard
		elseif FlagVar == "empire" then
			FlagName = DataPage.empire
		elseif FlagVar == "fotball" or FlagVar == "Fotball" then
			FlagName = DataPage.football
		elseif FlagVar == "naval" then
			FlagName = DataPage.naval
		elseif FlagVar == "nazi" then
			FlagName = DataPage.nazi
		elseif FlagVar == "old" then
			FlagName = DataPage.old
		elseif FlagVar == "otto" then
			FlagName = DataPage.otto
		elseif FlagVar == "royal" then
			FlagName = DataPage.royal
		elseif FlagVar == "royal navy" or FlagVar == "royalnavy" then
			FlagName = DataPage.royalnavy
		elseif FlagVar == "rugby" or FlagVar == "Rugby" then
			FlagName = DataPage.rugby
		elseif FlagVar == "sultanatet" or FlagVar == "Sultanatet" then
			FlagName = DataPage.sultanatet
		elseif FlagVar == "våpen" then
			FlagName = DataPage.weapon
		elseif FlagVar == "weimar" or FlagVar == "Weimar" then
			FlagName = DataPage.weimar
		elseif FlagVar == DataPage.histyeara then
			FlagName = DataPage.histflaga
		elseif FlagVar == DataPage.histyearb then
			FlagName = DataPage.histflagb
		elseif FlagVar == DataPage.histyearc then
			FlagName = DataPage.histflagc
		elseif FlagVar == "EM" then
			FlagName = DataPage.EM
		elseif FlagVar == "VM" then
			FlagName = DataPage.VM
		elseif FlagVar == "OL" then
			FlagName = DataPage.OL
		elseif FlagVar == "OL (fotball)" then
			FlagName = DataPage.OLfootball
		elseif FlagVar == OLYear1 then
			FlagName = OLFlag1
		elseif FlagVar == OLYear2 then
			FlagName = OLFlag2
		elseif FlagVar == OLYear3 then
			FlagName = OLFlag3
		elseif FlagVar == OLYear4 then
			FlagName = OLFlag4
		elseif FlagVar == OLYear5 then
			FlagName = OLFlag5
		elseif FlagVar == OLYear6 then
			FlagName = OLFlag6
		elseif FlagVar == OLYear7 then
			FlagName = OLFlag7
		elseif FlagVar == OLYear8 then
			FlagName = OLFlag8
		elseif FlagVar == OLYear9 then
			FlagName = OLFlag9
		elseif FlagVar == OLYear10 then
			FlagName = OLFlag10
		elseif FlagVar == OLYear11 then
			FlagName = OLFlag11
		elseif FlagVar == OLYear12 then
			FlagName = OLFlag12
		elseif FlagVar == OLYear13 then
			FlagName = OLFlag13
		elseif FlagVar == OLYear14 then
			FlagName = OLFlag14
		elseif FlagVar == OLYear15 then
			FlagName = OLFlag15
		elseif FlagVar == OLYear16 then
			FlagName = OLFlag16
		elseif FlagVar == OLYear17 then
			FlagName = OLFlag17
		elseif FlagVar == OLYear18 then
			FlagName = OLFlag18
		elseif FlagVar == OLYear91 then
			FlagName = OLFlag19
		elseif FlagVar == OLYear20 then
			FlagName = OLFlag20
		elseif FlagVar:match("^%d%d%d%d$") then
			if DataPage.histyear1 then
				if tonumber(FlagVar) <= DataPage.histyear1 then
					FlagName = DataPage.histflag1
				end
			elseif DataPage.histyear2 then
				if tonumber(FlagVar) <= DataPage.histyear2 then
					FlagName = DataPage.histflag2
				end
			elseif DataPage.histyear3 then
				if tonumber(FlagVar) <= DataPage.histyear3 then
					FlagName = DataPage.histflag3
				end
			elseif DataPage.histyear4 then
				if tonumber(FlagVar) <= DataPage.histyear4 then
					FlagName = DataPage.histflag4
				end
			elseif DataPage.histyear5 then
				if tonumber(FlagVar) <= DataPage.histyear5 then
					FlagName = DataPage.histflag5
				end
			elseif DataPage.histyear6 then
				if tonumber(FlagVar) <= DataPage.histyear6 then
					FlagName = DataPage.histflag6
				end
			elseif DataPage.histyear7 then
				if tonumber(FlagVar) <= DataPage.histyear7 then
					FlagName = DataPage.histflag7
				end
			elseif DataPage.histyear8 then
				if tonumber(FlagVar) <= DataPage.histyear8 then
					FlagName = DataPage.histflag8
				end
			elseif DataPage.histyear9 then
				if tonumber(FlagVar) <= DataPage.histyear9 then
					FlagName = DataPage.histflag9
				end
			elseif DataPage.histyear10 then
				if tonumber(FlagVar) <= DataPage.histyear10 then
					FlagName = DataPage.histflag10
				end
			elseif DataPage.histyear11 then
				if tonumber(FlagVar) <= DataPage.histyear11 then
					FlagName = DataPage.histflag11
				end
			elseif DataPage.histyear12 then
				if tonumber(FlagVar) <= DataPage.histyear12 then
					FlagName = DataPage.histflag12
				end
			elseif DataPage.histyear13 then
				if tonumber(FlagVar) <= DataPage.histyear13 then
					FlagName = DataPage.histflag13
				end
			elseif DataPage.histyear14 then
				if tonumber(FlagVar) <= DataPage.histyear14 then
					FlagName = DataPage.histflag14
				end
			elseif DataPage.histyear15 then
				if tonumber(FlagVar) <= DataPage.histyear15 then
					FlagName = DataPage.histflag15
				end
			elseif DataPage.histyear16 then
				if tonumber(FlagVar) <= DataPage.histyear16 then
					FlagName = DataPage.histflag16
				end
			elseif DataPage.histyear17 then
				if tonumber(FlagVar) <= DataPage.histyear17 then
					FlagName = DataPage.histflag17
				end
			elseif DataPage.histyear18 then
				if tonumber(FlagVar) <= DataPage.histyear18 then
					FlagName = DataPage.histflag18
				end
			elseif DataPage.histyear19 then
				if tonumber(FlagVar) <= DataPage.histyear19 then
					FlagName = DataPage.histflag19
				end
			elseif DataPage.histyear20 then
				if tonumber(FlagVar) <= DataPage.histyear20 then
					FlagName = DataPage.histflag20
				end
			elseif DataPage.histyear21 then
				if tonumber(FlagVar) <= DataPage.histyear21 then
					FlagName = DataPage.histflag21
				end
			elseif DataPage.histyear22 then
				if tonumber(FlagVar) <= DataPage.histyear22 then
					FlagName = DataPage.histflag22
				end
			elseif DataPage.histyear23 then
				if tonumber(FlagVar) <= DataPage.histyear23 then
					FlagName = DataPage.histflag23
				end
			elseif DataPage.histyear24 then
				if tonumber(FlagVar) <= DataPage.histyear24 then
					FlagName = DataPage.histflag24
				end
			elseif DataPage.histyear25 then
				if tonumber(FlagVar) <= DataPage.histyear25 then
					FlagName = DataPage.histflag25
				end
			elseif DataPage.histyear26 then
				if tonumber(FlagVar) <= DataPage.histyear26 then
					FlagName = DataPage.histflag26
				end
			elseif DataPage.histyear27 then
				if tonumber(FlagVar) <= DataPage.histyear27 then
					FlagName = DataPage.histflag27
				end
			elseif DataPage.histyear28 then
				if tonumber(FlagVar) <= DataPage.histyear28 then
					FlagName = DataPage.histflag28
				end
			elseif DataPage.histyear29 then
				if tonumber(FlagVar) <= DataPage.histyear29 then
					FlagName = DataPage.histflag29
				end
			elseif DataPage.histyear30 then
				if tonumber(FlagVar) <= DataPage.histyear30 then
					FlagName = DataPage.histflag30
				end
			else
				FlagName = DataPage.defflag
			end
		end
	else
		return "[[Fil:Flag of None.svg|" .. size .. "|lenke=" .. frame.args[1] .. "]]<sup>[[Modul:Flagg/Data/nye|[?]]][[Kategori:Sider som inneholder uregistrerte flagg]]</sup>"
	end
 
	-- Hvis det ikke er angitt noen form for flaggvariant, vises standard flagg
	if FlagName == nil then
		FlagName = DataPage.defflag
	else
		FlagName = FlagName
	end
	if FlagName == nil then
		return "[[Fil:Flag of None.svg|" .. size .. "|lenke=" .. frame.args[1] .. "]]<sup>[[Modul:Flagg/Data/nye|[?]]][[Kategori:Sider som inneholder uregistrerte flagg]]</sup>"
	end
 
	-- avgjør hvilken side som flagget, og evt. synlig lenke, skal lenke til
	local LinkedPage = DataPage.pagelink
	local Name = DataPage.name
 
	if LinkedPage == nil then
		LinkedPage = Name
	else
		LinkedPage = LinkedPage
	end
 
	local PageLink;
	if frame.args[4] == "" or frame.args[4] == nil then
		PageLink = LinkedPage
	elseif mw.text.trim(frame.args[4]) ~= "" or mw.text.trim(frame.args[4]) ~= nil then
		PageLink = mw.text.trim(frame.args[4])
	else
		PageLink = Name
	end
 
	local FlagLink
 	if frame.args[8] == "" or frame.args[8] == nil then
 		FlagLink = PageLink
 	else
 		FlagLink = mw.text.trim(frame.args[8])
 	end
 
	-- hva skal vises?
	local DisplayName = DataPage.dispname
 
	if DisplayName == nil then
		DisplayName = Name
	else
		DisplayName = DisplayName
	end
 
	-- Hvilken lenketekst skal vises?
	local DispName;
	if mw.text.trim(frame.args[5]) == "" or mw.text.trim(frame.args[5]) == nil then
		DispName = DisplayName
	elseif mw.text.trim(frame.args[5]) ~= "" or mw.text.trim(frame.args[5]) ~= nil then
		DispName = mw.text.trim(frame.args[5])
	else
		DispName = Name
	end
 
	-- Avgjør om det skal vises lenke
	local LinkOut;
	if mw.text.trim(frame.args[2]) ~= "lenke" and mw.text.trim(frame.args[3]) ~= "lenke" and frame.args[4] == "" and frame.args[5] == "" then
		LinkOut = ""
	else
		if frame.args[9] == "h" then
			LinkOut = "[[" .. PageLink .. "|" .. DispName .. "]]&nbsp;"
		else
			LinkOut = "&nbsp;[[" .. PageLink .. "|" .. DispName  .. "]]"
		end
	end
 
	local LinkRes;
	if mw.text.trim(frame.args[7]) == nil or mw.text.trim(frame.args[7]) == "" then
		if LinkOut ~= nil then
			LinkRes = LinkOut
		elseif LinkOut == nil or LinkOut == "" then
			LinkRes = ""
		end
	elseif mw.text.trim(frame.args[7]) ~= "" then
		if mw.text.trim(frame.args[9]) == "h" then
			LinkRes = mw.text.trim(frame.args[7]) .. '&nbsp;'
		else
			LinkRes = '&nbsp;' .. mw.text.trim(frame.args[7])
		end
	end
 
	-- border?
 
	local border = DataPage.border
	if border == nil then
		border = "border"
	elseif border == "" then
		border = ""
	else
		border = DataPage.border
	end
 
	if frame.args[9] == "h" then
		result = LinkRes .. "[[Fil:" .. FlagName .. "|" .. size .. "|" .. border .. "|lenke=" .. FlagLink .. "]]"
	else
		result = "[[Fil:" .. FlagName .. "|" .. size .. "|" .. border .. "|lenke=" .. FlagLink .. "]]" .. LinkRes
	end
 
	return result
end
 
return p