Hopp til innhold

Modul:Flagg

Fra Wikipedia, den frie encyklopedi
Sideversjon per 11. mai 2014 kl. 21:43 av Cocu (diskusjon | bidrag) (test)

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] = 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 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
	OLYear1 = DataPage.OLyear1
	OLFlag1 = DataPage.OLflag1
	OLYear2 = DataPage.OLyear2
	OLFlag2 = DataPage.OLflag2
	OLYear3 = DataPage.OLyear3
	OLFlag3 = DataPage.OLflag3
	OLYear4 = DataPage.OLyear4
	OLFlag4 = DataPage.OLflag4
	OLYear5 = DataPage.OLyear5
	OLFlag5 = DataPage.OLflag5
	OLYear6 = DataPage.OLyear6
	OLFlag6 = DataPage.OLflag6
	OLYear7 = DataPage.OLyear7
	OLFlag7 = DataPage.OLflag7
	OLYear8 = DataPage.OLyear8
	OLFlag8 = DataPage.OLflag8
	OLYear9 = DataPage.OLyear9
	OLFlag9 = DataPage.OLflag9
	OLYear10 = DataPage.OLyear10
	OLFlag10 = DataPage.OLflag10
	OLYear11 = DataPage.OLyear11
	OLFlag11 = DataPage.OLflag11
	OLYear12 = DataPage.OLyear12
	OLFlag12 = DataPage.OLflag12
	OLYear13 = DataPage.OLyear13
	OLFlag13 = DataPage.OLflag13
	OLYear14 = DataPage.OLyear14
	OLFlag14 = DataPage.OLflag14
	OLYear15 = DataPage.OLyear15
	OLFlag15 = DataPage.OLflag15
	OLYear16 = DataPage.OLyear16
	OLFlag16 = DataPage.OLflag16
	OLYear17 = DataPage.OLyear17
	OLFlag17 = DataPage.OLflag17
	OLYear18 = DataPage.OLyear18
	OLFlag18 = DataPage.OLflag18
	OLYear19 = DataPage.OLyear19
	OLFlag19 = DataPage.OLflag19
	OLYear20 = DataPage.OLyear20
	OLFlag20 = DataPage.OLflag20
	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 then
			FlagName = DefFlag
		elseif FlagVar == "" then
			FlagName = DefFlag
		elseif 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 == 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 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]]</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]]</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

	local FlagLink
 	if frame.args[8] == "" or frame.args[8] == nil then
 		FlagLink = PageLink
 	else
 		FlagLink = 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 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
		if frame.args[9] == "h" then
			LinkOut = "[[" .. PageLink .. "|" .. DispName .. "]]&nbsp;"
		else
			LinkOut = "&nbsp;[[" .. PageLink .. "|" .. DispName  .. "]]"
		end
	end
 
	local LinkRes;
	if frame.args[7] == nil or frame.args[7] == "" then
		if LinkOut ~= nil then
			LinkRes = LinkOut
		elseif LinkOut == nil or LinkOut == "" then
			LinkRes = ""
		end
	elseif frame.args[7] ~= "" then
		if frame.args[9] == "h" then
			LinkRes = frame.args[7] .. '&nbsp;'
		else
			LinkRes = '&nbsp;' .. 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
 
	result = "[[Fil:" .. FlagName .. "|" .. size .. "|" .. border .. "|lenke=" .. FlagLink .. "]]" .. LinkRes
 
	return result
end
 
return p