Modul:Flagg
Hopp til navigering
Hopp til søk
Modul:Flagg med undersider er tenkt brukt av {{Flagg}} for fremvisning av områders flagg.
Modulserien består av følgende sider:
- Modul:Flagg • Modul:Flagg/sandkasse • forskjellig (diff)
- Modul:Flagg/Masterdata • Modul:Flagg/Masterdata/sandkasse • forskjellig (diff)
- Modul:Flagg/Altnavn • Modul:Flagg/Altnavn/sandkasse • forskjellig (diff)
- Modul:Flagg/Data/nye • Modul:Flagg/Data/nye/sandkasse • samme innhold
I tillegg brukes Modul:Flagg/Data/info til å automatisk vise alle flagg på dokumentasjonssidene.
Legge til nytt flagg?[rediger kilde]
Registrerte flagg[rediger kilde]
local getArgs = require('Modul:Arguments').getArgs local p = {} local lang = mw.getContentLanguage() function p._areaname(frame, args) local args = getArgs(frame) -- Hvis ikke det er angitt noe argument 1, kan heller ikke flagget finnes if not frame.args[1] then return '' else areaname = mw.text.trim(frame.args[1]) end -- Definerer hva som skal settes som områdenavn basert på input i argument 1 if require("Modul:Flagg/Masterdata").flagdata[areaname] ~= nil then areaname = areaname elseif require("Modul:Flagg/Data/nye").flagdata[areaname] ~= nil then areaname = areaname elseif require("Modul:Flagg/Altnavn")[areaname] ~= nil then areaname = require("Modul:Flagg/Altnavn")[areaname] elseif require("Modul:Land/alfa3")[areaname] ~= nil then areaname = require("Modul:Land/alfa3")[areaname] elseif require("Modul:Land/alfa2")[areaname] ~= nil then areaname = require("Modul:Land/alfa2")[areaname] elseif require("Modul:Land/num")[areaname] ~= nil then areaname = require("Modul:Land/num")[areaname] else areaname = "Ikke-eksisterende" end return areaname end function p._data(frame, args) local args = getArgs(frame) -- Henter ut nødvendige data fra undersider local areaname = p._areaname(frame, args) Data = require("Modul:Flagg/Masterdata").flagdata[areaname] if Data == nil or Data == "" then return "Flag of None.svg" end if not frame.args[2] then return Data['defflag'] elseif frame.args[2] == "lenke" then return Data['defflag'] end local FlagVar = mw.text.trim(frame.args[2]) local FlagData = require("Modul:Flagg/Masterdata").flagdata[areaname] if tostring(FlagVar) == FlagData['histyeara'] then return FlagData['histflaga'] elseif tostring(FlagVar) == FlagData['histyearb'] then return FlagData['histflagb'] elseif tostring(FlagVar) == FlagData['histyearc'] then return FlagData['histflagc'] elseif FlagVar:match("^%u%u.%d%d%d%d$") then n = tonumber(1) repeat if not FlagData['OLyear'..tostring(n)] then FlagName = FlagData['defflag'] elseif FlagData['OLyear'..tostring(n)] ~= tostring(FlagVar) then FlagName = FlagData['defflag'] end if FlagData['OLyear'..tostring(n)] then if tostring(FlagVar) == FlagData['OLyear'..tostring(n)] then FlagName = FlagData['OLflag'..tostring(n)] break end end n=tonumber(n+1) until not FlagData['OLyear'..n] elseif FlagVar:match("^%d%d%d%d$") or FlagVar:match("^%d%d%d$") or FlagVar:match("^%d%d$") then i = 1 repeat if not FlagData['histyear'..i] then FlagName = FlagData['defflag'] elseif FlagData['histyear'..i] < tonumber(FlagVar) then FlagName = FlagData['defflag'] end if FlagData['histyear'..i] then Y = FlagData['histyear'..i] F = FlagData['histflag'..i] if tonumber(FlagVar) <= Y then FlagName = F break end end i=i+1 until not FlagData['histyear' .. i] elseif FlagVar == "OL" then FlagName = FlagData["OLflag1"] elseif FlagVar == "vinterOL" or FlagVar == "VinterOL" or FlagVar == 'Vinter-OL' or FlagVar == "vinter-ol" or FlagVar == "vinter-ol" then FlagName = FlagData["vinterOLflag1"] elseif FlagVar == "sultanatet" then FlagName = FlagData["sultanatet"] elseif FlagVar == "våpen" or FlagVar == "Våpen" or FlagVar == "coa" or FlagVar == "COA" or FlagVar == "weapon" then FlagName = FlagData["coa"] elseif FlagVar == "skjold" or FlagVar == "Skjold" or FlagVar == "shield" then FlagName = FlagData["shield"] elseif FlagVar == "segl" or FlagVar == "Segl" or FlagVar == "seal" then FlagName = FlagData["seal"] elseif FlagVar == "fotball" or FlagVar == "Fotball" then FlagName = FlagData["football"] elseif FlagVar == "OL (fotball)" then FlagName = FlagData["OLfootball"] elseif FlagVar == "eurovision" or FlagVar == "Eurovision" then FlagName = FlagData["eurovision"] elseif FlagVar == "turkvision" or FlagVar == "Turkvision" then FlagName = FlagData["turkvision"] elseif FlagVar ~= "" then FlagName = FlagData[FlagVar] else FlagName = FlagData['defflag'] end return FlagName end function p._pagelink(frame, args) local args = getArgs(frame) local areaname = p._areaname(frame, args) local FlagData = require("Modul:Flagg/Masterdata").flagdata[areaname] local LinkedPage = FlagData['pagelink'] local Name = FlagData['name'] if frame.args["lenke"] ~= nil and frame.args["lenke"] ~= "" then return mw.text.trim(frame.args["lenke"]) elseif frame.args[2] == "lenke" or frame.args[3] == "lenke" then if LinkedPage ~= nil and LinkedPage ~= "" then return LinkedPage else return Name end elseif LinkedPage ~= nil and LinkedPage ~= "" then return LinkedPage else return Name end end function p._flaglink(frame, args) local args = getArgs(frame) local PageLink = p._pagelink(frame, args) if frame.args["flagglenke"] ~= nil and frame.args["flagglenke"] ~= "" then return mw.text.trim(frame.args["flagglenke"]) elseif frame.args["lenke"] ~= "" and frame.args["lenke"] ~= nil then return frame.args["lenke"] else return PageLink end end function p._displaylink(frame, args) local args = getArgs(frame) local areaname = p._areaname(frame, args) local PageLink = p._pagelink(frame, args) local FlagData = require("Modul:Flagg/Masterdata").flagdata[areaname] local Name = FlagData['name'] local DisplayName = FlagData['dispname'] if DisplayName == nil or DisplayName == "" then DisplayName = Name elseif DisplayName ~= nil and DisplayName ~= "" then DisplayName = DisplayName end -- Hvilken lenketekst skal vises? if frame.args["lenketekst"] ~= nil and frame.args["lenketekst"] ~= "" then DispName = mw.text.trim(frame.args["lenketekst"]) else DispName = DisplayName end -- Avgjør om det skal vises lenke if frame.args["side"] == nil then RightFlag = "" else RightFlag = frame.args["side"] end if RightFlag == "" then if frame.args[2] == "lenke" or frame.args[3] == "lenke" then if frame.args["lenketekst"] ~= nil and frame.args["lenketekst"] ~= "" then return " [[" .. PageLink .. "|" .. frame.args["lenketekst"] .. "]]" else return " [[" .. PageLink .. "|" .. DispName .. "]]" end elseif frame.args["lenke"] ~= nil and frame.args["lenke"] ~= "" then if frame.args["lenketekst"] ~= nil and frame.args["lenketekst"] ~= "" then return " [[" .. frame.args["lenke"] .. "|" .. frame.args["lenketekst"] .. "]]" else return " [[" .. frame.args["lenke"] .. "]]" end elseif frame.args["tekst"] ~= nil and frame.args["tekst"] ~= "" then return frame.args["tekst"] else return "" end elseif RightFlag == "h" then return "[[" .. PageLink .. "|" .. DispName .. "]] " else return "" end end function p._size(frame, args) local args = getArgs(frame) if frame.args["størrelse"] ~= nil and frame.args["størrelse"] ~= "" then size = frame.args["størrelse"] else size = '22x18px' end if size == nil then return "" else return size end end function p._border(frame, args) local FlagData = require("Modul:Flagg/Masterdata").flagdata[areaname] local border = FlagData['border'] if FlagData['border'] ~= nil then return FlagData['border'] else return "border" end end function p.build(frame, args) local args = getArgs(frame) local size = p._size(frame, args) local areaname = p._areaname(frame, args) local flagname = p._data(frame, args) local pagelink = p._pagelink(frame, args) local flaglink = p._flaglink(frame, args) local displaylink = p._displaylink(frame, args) local border = p._border(frame, args) if areaname == "Ikke-eksisterende" then result = mw.getCurrentFrame():expandTemplate{ title = "Bruker:Cocu/Flagg/Old", args = { frame.args[1], frame.args[2], frame.args[3], ["lenke"] = frame.args["lenke"], ["lenketekst"] = frame.args["lenketekst"], ["størrelse"] = frame.args["størrelse"]} }; end if result == nil then areaname = "Ikke-eksisterende" else return result end if Data['defflag'] == "" then return "[[Fil:Flag of None.svg|" .. size .. "|lenke=" .. areaname .. "]]<sup>[[Modul:Flagg/Data/nye|[?]]][[Kategori:Sider som inneholder uregistrerte flagg]]</sup>" elseif frame.args["side"] == "h" then return displaylink .. '[[Fil:' .. flagname .. '|' .. size .. '|' .. border .. '|lenke=' .. flaglink .. ']]' else return '[[Fil:' .. flagname .. '|' .. size .. '|' .. border .. '|lenke=' .. flaglink .. ']]' .. displaylink end end return p