Modul:Flagg
Utseende
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
LinkOut = " [[" .. PageLink .. "|" .. DispName .. "]]"
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] .. ' '
else
LinkRes = ' ' .. 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