Modul:Europa metamall
Utseende
Dokumentationen för denna modul kan skapas på Modul:Europa metamall/dok
p={}
arrayStater={"Albanien","Andorra","Armenien","Azerbajdzjan","Belarus","Belgien","Bosnien och Hercegovina","Bulgarien","Cypern","Danmark","Estland","Finland","Frankrike","Georgien","Grekland","Irland","Island","Italien","Kosovo","Kroatien","Lettland","Liechtenstein","Litauen","Luxemburg","Malta","Moldavien","Monaco","Montenegro","Nederländerna","Nordmakedonien","Norge","Polen","Portugal","Rumänien","Ryssland","San Marino","Schweiz","Serbien","Slovakien","Slovenien","Spanien","Storbritannien","Sverige","Tjeckien","Turkiet","Tyskland","Ukraina","Ungern","Vatikanstaten","Österrike"}
arrayKaukasus={"Armenien","Azerbajdzjan","Georgien"}
arrayMicroStater={"Andorra","Liechtenstein","Luxemburg","Monaco","Montenegro","San Marino","Vatikanstaten"}
arraySmaStater={"Cypern","Island","Malta"}
arrayEjGenetiveS={"Belarus","Schweiz"}
arraPrepositionPa={"Cypern","Irland","Island", "Färöarna","Guernsey","Isle of Man","Jersey","Svalbard","Åland"}
arrayAutonomaRegioner={"Athos", "Färöarna","Gibraltar","Guernsey","Isle of Man","Jersey","Svalbard","Åland"}
-- Function to check if the array contains the target element
local function contains(arrayAll, element)
for k, value in pairs(arrayAll) do
if string.gsub(value, " ", "") ==string.gsub(element, " ", "") then -- Jämför utan att ta hänsyn till mellanslag (kan ibland följa med i början på parametervärden)
return true
end
end
return false
end
p.Stater=function(frame)
return p.show(frame,arrayStater)
end
p.Autonoma=function(frame)
return p.show(frame,arrayAutonomaRegioner)
end
p.navbox=function(frame)
myArgs={}
myArgs["name"]=mw.getCurrentFrame():getParent():getTitle()
if (frame.args.state) then
myArgs["state"]=frame.args.state
end
if (frame.args.above) then
myArgs["above"]=frame.args.above
end
if (frame.args.below) then
myArgs["below"]=frame.args.below
end
if (frame.args.image) then
myArgs["image"]=frame.args.image
end
if (frame.args.imageleft) then
myArgs["imageleft"]=frame.args.imageleft
end
if (frame.args.rubrik) then
myArgs["title"]=frame.args.rubrik
else
myArgs["title"]="Rubrik saknas! Lägg till rubrik = RUBRIKEN DU VILL HA i anropet "
end
myArgs["list1"]=p.Stater(frame)
if (not contains(frame.args,"barastater")) then
myArgs["group1"]="Stater"
myArgs["group2"]="Autonoma territorier"
myArgs["list2"]=p.Autonoma(frame)
end
return frame:expandTemplate{ title = 'navbox',args=myArgs}
end
p.show=function(frame,array)
local ejmicro=contains(frame.args,"ejmicro")
local prefix=frame.args['prefix']
local suffix=frame.args['suffix']
local preposition=contains(frame.args,"preposition")
local ejsma=contains(frame.args,"ejsma")
local ejkaukasus=contains(frame.args,"ejkaukasus")
tblItems={}
for i = 1, #array do
txtState=array[i]
addit=(not(ejmicro and contains(arrayMicroStater,txtState))) and
(not(ejsma and contains(arraySmaStater,txtState))) and
(not(ejkaukasus and contains(arrayKaukasus,txtState)))
if addit then
txtLink=''
if (prefix) then
txtLink=txtLink.. prefix
if (preposition) then
if (contains(arraPrepositionPa,txtState)) then txtLink=txtLink .. " på " else txtLink=txtLink .. " i " end
else
txtLink = txtLink .. " "
end
end
txtLink=txtLink.. array[i]
if suffix then
if not (contains(arrayEjGenetiveS,txtState)) then txtLink = txtLink .. 's' end
txtLink=txtLink .. " " .. suffix
end
table.insert(tblItems,"[[" .. txtLink .. "|" .. array[i] .. "]]")
end
end
txt = table.concat(tblItems, frame:expandTemplate{ title = ','})
return txt
end
return p