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] = 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 .. "]] "
else
LinkOut = " [[" .. 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]) .. ' '
else
LinkRes = ' ' .. 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