Hopp til innhold

Modul:Flagg

Fra Wikipedia, den frie encyklopedi
Sideversjon per 26. mar. 2014 kl. 00:13 av Cocu (diskusjon | bidrag) (fix)

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:Flagg/ISO")
	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] = 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] ~= "" then
		size = frame.args[6]
	elseif frame.args[6] == nil or frame.args[6] == "" then
		size = "22x18px"
	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 eller våpen]]</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 eller våpen]]</sup>"
 		end
	end
 
	-- Henter ut nødvendige parametere fra datasiden
	DefFlag = DataPage.defflag
	AirForceFlag = DataPage.airforce
	AltFlag = DataPage.alt
	CivilFlag = DataPage.civil
	CoastGuardFlag = DataPage.coastguard
	EMflag = DataPage.EM
	EmpireFlag = DataPage.empire
	FootballFlag = DataPage.football
	NavalFlag = DataPage.naval
	NaziFlag = DataPage.nazi
	OldFlag = DataPage.old
	OttoFlag = DataPage.otto
	RoyalFlag = DataPage.royal
	RoyalNavyFlag = DataPage.royalnavy
	RugbyFlag = DataPage.rugby
	SultanatetFlag = DataPage.sultanatet
	VMflag = DataPage.VM
	Weapon = DataPage.weapon
	WeimarFlag = DataPage.weimar
	OLflag = DataPage.OL
	OLfootballflag = DataPage.OLfootball
	OL1Year = DataPage.OL1year
	OL1Flag = DataPage.OL1flag
	OL2Year = DataPage.OL2year
	OL2Flag = DataPage.OL2flag
	OL3Year = DataPage.OL3year
	OL3Flag = DataPage.OL3flag
	OL4Year = DataPage.OL4year
	OL4Flag = DataPage.OL4flag
	OL5Year = DataPage.OL5year
	OL5Flag = DataPage.OL5flag
	OL6Year = DataPage.OL6year
	OL6Flag = DataPage.OL6flag
	OL7Year = DataPage.OL7year
	OL7Flag = DataPage.OL7flag
	OL8Year = DataPage.OL8year
	OL8Flag = DataPage.OL8flag
	OL9Year = DataPage.OL9year
	OL9Flag = DataPage.OL9flag
	OL10Year = DataPage.OL10year
	OL10Flag = DataPage.OL10flag
	OL11Year = DataPage.OL11year
	OL11Flag = DataPage.OL11flag
	OL12Year = DataPage.OL12year
	OL12Flag = DataPage.OL12flag
	OL13Year = DataPage.OL13year
	OL13Flag = DataPage.OL13flag
	OL14Year = DataPage.OL14year
	OL14Flag = DataPage.OL14flag
	OL15Year = DataPage.OL15year
	OL15Flag = DataPage.OL15flag
	OL16Year = DataPage.OL16year
	OL16Flag = DataPage.OL16flag
	OL17Year = DataPage.OL17year
	OL17Flag = DataPage.OL17flag
	OL18Year = DataPage.OL18year
	OL18Flag = DataPage.OL18flag
	OL19Year = DataPage.OL19year
	OL19Flag = DataPage.OL19flag
	OL20Year = DataPage.OL20year
	OL20Flag = DataPage.OL20flag
	HistYear1 = DataPage.histyear1
	HistFlag1 = DataPage.histflag1
	HistYear2 = DataPage.histyear2
	HistFlag2 = DataPage.histflag2
	HistYear3 = DataPage.histyear3
	HistFlag3 = DataPage.histflag3
	HistYear4 = DataPage.histyear4
	HistFlag4 = DataPage.histflag4
	HistYear5 = DataPage.histyear5
	HistFlag5 = DataPage.histflag5
	HistYear6 = DataPage.histyear6
	HistFlag6 = DataPage.histflag6
	HistYear7 = DataPage.histyear7
	HistFlag7 = DataPage.histflag7
	HistYear8 = DataPage.histyear8
	HistFlag8 = DataPage.histflag8
	HistYear9 = DataPage.histyear9
	HistFlag9 = DataPage.histflag9
	HistYear10 = DataPage.histyear10
	HistFlag10 = DataPage.histflag10
	HistYear11 = DataPage.histyear11
	HistFlag11 = DataPage.histflag11
	HistYear12 = DataPage.histyear12
	HistFlag12 = DataPage.histflag12
	HistYear13 = DataPage.histyear13
	HistFlag13 = DataPage.histflag13
	HistYear14 = DataPage.histyear14
	HistFlag14 = DataPage.histflag14
	HistYear15 = DataPage.histyear15
	HistFlag15 = DataPage.histflag15
	HistYear16 = DataPage.histyear16
	HistFlag16 = DataPage.histflag16
	HistYear17 = DataPage.histyear17
	HistFlag17 = DataPage.histflag17
	HistYear18 = DataPage.histyear18
	HistFlag18 = DataPage.histflag18
	HistYear19 = DataPage.histyear19
	HistFlag19 = DataPage.histflag19
	HistYear20 = DataPage.histyear20
	HistFlag20 = DataPage.histflag20
	HistYear21 = DataPage.histyear21
	HistFlag21 = DataPage.histflag21
	HistYear22 = DataPage.histyear22
	HistFlag22 = DataPage.histflag22
	HistYear23 = DataPage.histyear23
	HistFlag23 = DataPage.histflag23
	HistYear24 = DataPage.histyear24
	HistFlag24 = DataPage.histflag24
	HistYear25 = DataPage.histyear25
	HistFlag25 = DataPage.histflag25
	HistYear26 = DataPage.histyear26
	HistFlag26 = DataPage.histflag26
	HistYear27 = DataPage.histyear27
	HistFlag27 = DataPage.histflag27
	HistYear28 = DataPage.histyear28
	HistFlag28 = DataPage.histflag28
	HistYear29 = DataPage.histyear29
	HistFlag29 = DataPage.histflag29
	HistYear30 = DataPage.histyear30
	HistFlag30 = DataPage.histflag30
	HistYearA = DataPage.histyeara
	HistFlagA = DataPage.histflaga
	HistYearB = DataPage.histyearb
	HistFlagB = DataPage.histflagb
	HistYearC = DataPage.histyearc
	HistFlagC = DataPage.histflagc
 
	-- 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 or FlagVar == "" or FlagVar == "lenke" then
			FlagName = DefFlag
		elseif FlagVar == "airforce" or FlagVar == "air force" then
			FlagName = AirForceFlag
		elseif FlagVar == "alt" then
			FlagName = AltFlag
		elseif FlagVar == "civil" then
			FlagName = CivilFlag
		elseif FlagVar == "coast guard" or FlagVar == "coastguard" then
			FlagName = CoastGuardFlag
		elseif FlagVar == "empire" then
			FlagName = EmpireFlag
		elseif FlagVar == "fotball" or FlagVar == "Fotball" then
			FlagName = FootballFlag
		elseif FlagVar == "naval" then
			FlagName = NavalFlag
		elseif FlagVar == "nazi" then
			FlagName = NaziFlag
		elseif FlagVar == "old" then
			FlagName = OldFlag
		elseif FlagVar == "royal" then
			FlagName = RoyalFlag
		elseif FlagVar == "royal navy" or FlagVar == "royalnavy" then
			FlagName = RoyalNavyFlag
		elseif FlagVar == "rugby" or FlagVar == "Rugby" then
			FlagName = RugbyFlag
		elseif FlagVar == "sultanatet" or FlagVar == "Sultanatet" then
			FlagName = SultanatetFlag
		elseif FlagVar == "våpen" then
			FlagName = Weapon
		elseif FlagVar == "weimar" or FlagVar == "Weimar" then
			FlagName = WeimarFlag
		elseif FlagVar == HistYearA then
			FlagName = HistFlagA
		elseif FlagVar == HistYearB then
			FlagName = HistFlagB
		elseif FlagVar == HistYearC then
			FlagName = HistFlagC
		elseif FlagVar == "EM" then
			FlagName = EMflag
		elseif FlagVar == "VM" then
			FlagName = VMflag
		elseif FlagVar == "OL" then
			FlagName = OLflag
		elseif FlagVar == "OL (fotball)" then
			FlagName = OLfootballflag
		elseif FlagVar == OL1Year then
			FlagName = OL1Flag
		elseif FlagVar == OL2Year then
			FlagName = OL2Flag
		elseif FlagVar == OL3Year then
			FlagName = OL3Flag
		elseif FlagVar == OL4Year then
			FlagName = OL4Flag
		elseif FlagVar == OL5Year then
			FlagName = OL5Flag
		elseif FlagVar == OL6Year then
			FlagName = OL6Flag
		elseif FlagVar == OL7Year then
			FlagName = OL7Flag
		elseif FlagVar == OL8Year then
			FlagName = OL8Flag
		elseif FlagVar == OL9Year then
			FlagName = OL9Flag
		elseif FlagVar == OL10Year then
			FlagName = OL10Flag
		elseif FlagVar == OL11Year then
			FlagName = OL11Flag
		elseif FlagVar == OL12Year then
			FlagName = OL12Flag
		elseif FlagVar == OL13Year then
			FlagName = OL13Flag
		elseif FlagVar == OL14Year then
			FlagName = OL14Flag
		elseif FlagVar == OL15Year then
			FlagName = OL15Flag
		elseif FlagVar == OL16Year then
			FlagName = OL16Flag
		elseif FlagVar == OL17Year then
			FlagName = OL17Flag
		elseif FlagVar == OL18Year then
			FlagName = OL18Flag
		elseif FlagVar == OL91Year then
			FlagName = OL19Flag
		elseif FlagVar == OL20Year then
			FlagName = OL20Flag
		elseif HistYear1 then
			if tonumber(FlagVar) <= HistYear1 then
				FlagName = HistFlag1
			elseif HistYear2 then
				if tonumber(FlagVar) <= HistYear2 then
					FlagName = HistFlag2
				elseif HistYear3 then
					if tonumber(FlagVar) <= HistYear3 then
						FlagName = HistFlag3
					elseif HistYear4 then
						if tonumber(FlagVar) <= HistYear4 then
							FlagName = HistFlag4
						elseif HistYear5 then
							if tonumber(FlagVar) <= HistYear5 then
								FlagName = HistFlag5
							elseif HistYear6 then
								if tonumber(FlagVar) <= HistYear6 then
									FlagName = HistFlag6
								elseif HistYear7 then
									if tonumber(FlagVar) <= HistYear7 then
										FlagName = HistFlag7
									elseif HistYear8 then
										if tonumber(FlagVar) <= HistYear8 then
											FlagName = HistFlag8
										elseif HistYear9 then
											if tonumber(FlagVar) <= HistYear9 then
												FlagName = HistFlag9
											elseif HistYear10 then
												if tonumber(FlagVar) <= HistYear10 then
													FlagName = HistFlag10
												elseif HistYear11 then
													if tonumber(FlagVar) <= HistYear11 then
														FlagName = HistFlag11
													elseif HistYear12 then
														if tonumber(FlagVar) <= HistYear12 then
															FlagName = HistFlag12
														elseif HistYear13 then
															if tonumber(FlagVar) <= HistYear13 then
																FlagName = HistFlag13
															elseif HistYear14 then
																if tonumber(FlagVar) <= HistYear14 then
																	FlagName = HistFlag14
																elseif HistYear15 then
																	if tonumber(FlagVar) <= HistYear15 then
																		FlagName = HistFlag15
																	elseif HistYear16 then
																		if tonumber(FlagVar) <= HistYear16 then
																			FlagName = HistFlag16
																		elseif HistYear17 then
																			if tonumber(FlagVar) <= HistYear17 then
																				FlagName = HistFlag17
																			elseif HistYear18 then
																				if tonumber(FlagVar) <= HistYear18 then
																					FlagName = HistFlag18
																				elseif HistYear19 then
																					if tonumber(FlagVar) <= HistYear19 then
																						FlagName = HistFlag19
																					elseif HistYear20 then
																						if tonumber(FlagVar) <= HistYear20 then
																							FlagName = HistFlag20
																						elseif HistYear21 then
																							if tonumber(FlagVar) <= HistYear21 then
																								FlagName = HistFlag21
																							elseif HistYear22 then
																								if tonumber(FlagVar) <= HistYear22 then
																									FlagName = HistFlag22
																								elseif HistYear23 then
																									if tonumber(FlagVar) <= HistYear23 then
																										FlagName = HistFlag23
																									elseif HistYear24 then
																										if tonumber(FlagVar) <= HistYear24 then
																											FlagName = HistFlag24
																										elseif HistYear25 then
																											if tonumber(FlagVar) <= HistYear25 then
																												FlagName = HistFlag25
																											elseif HistYear26 then
																												if tonumber(FlagVar) <= HistYear26 then
																													FlagName = HistFlag26
																												elseif HistYear27 then
																													if tonumber(FlagVar) <= HistYear27 then
																														FlagName = HistFlag27
																													elseif HistYear28 then
																														if tonumber(FlagVar) <= HistYear28 then
																															FlagName = HistFlag28
																														elseif HistYear29 then
																															if tonumber(FlagVar) <= HistYear29 then
																																FlagName = HistFlag29
																															elseif HistYear30 then
																																if tonumber(FlagVar) <= HistYear30 then
																																	FlagName = HistFlag30
																																else
																																	FlagName = DefFlag
																																end
																															end
																														end
																													end
																												end
																											end
																										end
																									end
																								end
																							end
																						end
																					end
																				end
																			end
																		end
																	end
																end
															end
														end
													end
												end
											end
										end
									end
								end
							end
						end
					end
				end
			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 eller våpen]]</sup>"
	end
 
	-- Hvis det ikke er angitt noen form for flaggvariant, vises standard flagg
	if FlagName == nil then
		FlagName = 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 eller våpen]]</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 frame.args[4] ~= "" or frame.args[4] ~= nil then
		PageLink = frame.args[4]
	else
		PageLink = Name
	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 frame.args[5] == "" or frame.args[5] == nil then
		DispName = DisplayName
	elseif frame.args[5] ~= "" or frame.args[5] ~= nil then
		DispName = frame.args[5]
	else
		DispName = Name
	end
 
	-- Avgjør om det skal vises lenke
	local LinkOut;
	if frame.args[2] ~= "lenke" and frame.args[3] ~= "lenke" and frame.args[4] == "" and frame.args[5] == "" then
		LinkOut = ""
	else
		LinkOut = "&nbsp;[[" .. PageLink .. "|" .. DispName  .. "]]"
	end
 
	local LinkRes;
	if LinkOut ~= nil then
		LinkRes = LinkOut
	elseif LinkOut == nil or LinkOut == "" then
		LinkRes = ""
	end
 
	-- border?
	local border = DataPage.border
	if border == nil then
		border = "border"
	elseif border == "" then
		border = ""
	else
		border = DataPage.border
	end
 
	result = "[[Fil:" .. FlagName .. "|" .. size .. "|" .. border .. "|lenke=" .. PageLink .. "]]" .. LinkRes
 
	return result
end
 
return p