Hoppa till innehållet

Modul:Europa metamall

Från Plutten

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