Modul:Partiers starkaste stöd

Från Wikipedia

Dokumentation [visa] [redigera] [historik] [rensa sidcachen]


Modulen är ett stöd för {{Partiers starkaste stöd}}. Se mallens dokumentation för hur modulen används.

p = {}

function p.main(frame)
	local pFrame = frame:getParent() 
	local args = pFrame.args 
	local summa = ''	-- summa är den variabel som bygger hela tabellen
	summa = mw.text.tag('th', {style="width:75px;", rowspan="2"}, 'Parti')
	local s = ''
	if args['område'] and args['område'] ~= '' then -- Väljer "område" om den parametern används
		s = args['område']
	else
		if args.val == 'riksdag' or args.val == 'landsting' then -- annars anpassar den rubrikerna efter om det är riksdag, landsting eller kommunalval.
			s = 'Valkrets'
		else
			s = 'Valdistrikt'
		end
	end
	summa = summa .. mw.text.tag('th', {style="min-width:225px;", colspan="2"}, s)
	if args.val == 'riksdag' then
		s = 'Rike'
	elseif args.val == 'landsting' then
		s = 'Län'
	else
		s = 'Kommun'
	end
	summa = summa .. mw.text.tag('th', {}, s)
	summa =  mw.text.tag('tr', {}, summa)
	
	local a1 = mw.text.tag('th', {style="min-width:150px;"}, args.starkastrubrik or 'Starkaste')
	a1 = a1 .. mw.text.tag('th', {style="width:75px;"}, 'Andel')
	a1 = a1 .. mw.text.tag('th', {style="width:75px;"}, 'Andel')
	summa = summa .. mw.text.tag('tr', {}, a1) -- rubriken är färdig
	
	local partiet = require('Modul:Partier se')
	local i = 1
	while args[i] do -- en modul över alla numrerade parametrar
		local kort = mw.text.trim(args[i])
		frame.args = { kort }
		local vector = partiet.partisnack(frame) -- hämtar all data om just detta parti
		if not vector then -- felsökning
			return 'ERROR in parameter ' .. i
		end
		if type(vector) == 'string' then -- mer felsökning
			return 'ERROR in parameter ' .. i .. ' ' .. vector .. ' ' .. args[i]
		end
		
		local a = vector['a'] -- extraherar olika delar av partidatan
		local t = vector['t']
		local n = vector['n']
		local f = vector['f']
		local l = vector['l']
		-- Sätter ihop tabellen
		a1 = mw.text.tag('td', {style="text-align:center;font-weight:bold;background-color:" .. f, title = n}, '[[' .. l .. '|' .. mw.text.tag('span', {style="color:" .. t .. ";"}, a) .. ']]' )
		a1 = a1 .. mw.text.tag('td', {}, (args[i+2] or ''))
		a1 = a1 .. mw.text.tag('td', {style="text-align:right; background-size: " .. (string.match(string.gsub(args[i+3],',','.'),'%d+%.?%d*') or 0) .. "% 20%; background-position:bottom left; background-image: linear-gradient(" .. f .. "," .. f .. ");background-repeat: no-repeat;"}, (args[i+3] or '') .. ' %')
		a1 = a1 .. mw.text.tag('td', {style="text-align:right; background-size: " .. (string.match(string.gsub(args[i+1],',','.'),'%d+%.?%d*') or 0) .. "% 20%; background-position:bottom left; background-image: linear-gradient(" .. f .. "," .. f .. ");background-repeat: no-repeat;"}, (args[i+1] or '') .. ' %')
		summa = summa .. mw.text.tag('tr', {}, a1)
		i = i + 4 -- loopen hoppar fyra steg för att få nästa rad
	end
	a1 = mw.text.tag('td', {colspan="4", style="background:#eeeeee;"}, "Data hämtat från <i>[http://www.val.se/ Valmyndigheten]</i>.")
	summa = summa .. mw.text.tag('tr', {}, a1) -- avslutande rad i tabellen
	summa = mw.text.tag('table', {class="wikitable", style="font-size:88%;"}, summa) -- sätter ihop tabellen
	return summa
end

return p