Modul:Benutzer:Zukunft99

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Die Dokumentation für dieses Modul kann unter Modul:Benutzer:Zukunft99/Doku erstellt werden

local p = {}
local getArgs = require('Module:Arguments').getArgs
local farben = require('Module:Partei').farbe
local hell = require('Module:Partei').hell
local sort = require('Modul:Vorlage:PersonZelle').f

function p.kand(frame)
	local args = getArgs(frame)
	local index = {}
	local i = 0
	for datum = 1, 50 do i = i + 1
		if args['k' .. i] then table.insert(index, i) end
	end
	
	local function color(a)
		local a = farben({(a)})
		return "#"..a
	end
	
	local root = mw.html.create('table'):addClass('wikitable sortable')
	root
		:tag('th'):attr('colspan', '2'):wikitext('Listen'):done()
		:tag('th'):wikitext('Kandidaten'):done()
		:tag('th'):wikitext('Stimmen'):done()

	for i, v in ipairs(index) do
		row = root:tag('tr')

			if args['p'..v] then
			row:tag('td')
				:attr('rowspan', args['n'..v])
				:css('width', '0px')
				:css('background', color(args['p'..v]))
			row:tag('td')
				:attr('rowspan', args['n'..v])
				:wikitext(args['p'..v])
			end
			row:tag('td')
				:wikitext(args['k'..v])
			row:tag('td')
				:wikitext(mw.getLanguage('de'):formatNum(tonumber(args['s'..v])))
		
	end
	
	return tostring(root)
end

function p.bar(frame)
	local args = getArgs(frame)
	local index, data = {}, {}
	local num = 1
	local maxvalue = 0
	local i = 0
	for a = 1, 30 do i = i + 1
		if args['m' .. i] then table.insert(index, i) end
	end

	--- use for args[m..i] --
	mvalue = math.max(args['m1'], args['m2'] or 0, args['m3'] or 0, args['m4'] or 0, args['m5'] or 0, args['m6'] or 0, args['m7'] or 0, args['m8'] or 0, args['m9'] or 0, args['m10'] or 0, args['m11'] or 0, args['m12'] or 0) 

	if args['s1'] then a = 1 else a = 0 end
	if args['k1'] then b = 1 else b = 0 end
	if args['verleich'] then c = 1 else c = 0 end
		
	cspan = 3 + a + b + c
	local datum = mw.html.create('table'):css('background-color', '#F8F9FA'):css('border', '0.1px solid #C0C0C0'):css('font-size', args['font-size'] or '100%'):done()
	datum
	:tag('th'):wikitext(args['titel'] or 'Datum'):attr('colspan', cspan):css('background-color', '#EBEBFF'):css('border-bottom', '0.1px solid #CCF'):done()
	row = datum:tag('tr')
	:tag('th'):wikitext(args['titeld'] or 'Datum'):css('background-color', '#F0F0F0'):done()
	if args['s1'] then
		row
		:tag('th'):wikitext(args['titels'] or 'Datum'):css('background-color', '#F0F0F0'):done()
	end
	row
	:tag('th'):css('background-color', '#F0F0F0'):done()
	:tag('th'):wikitext(args['titelv'] or 'Datum'):css('background-color', '#F0F0F0'):done()
	if args['verleich'] then
		row
		:tag('th'):wikitext('+ / –'):css('background-color', '#F0F0F0'):done()
	end

	for i, v in ipairs(index) do datum:tag('tr')
		breite = args['m'..v]*(args['width'] or 100)/mvalue
		if args['k'..v] then breitediff = args['k'..v]*(args['width'] or 100)/mvalue end
		if args['k'..v] then b = args['k'..v]*(args['width'] or 100)/mvalue end

		if args['titeld'] == 'Partei' then farbe = farben({args['d'..v]}) else farbe = args['f' .. v] or args['farbe'] or '6495ED' end
		if args['titeld'] == 'Partei' then farbek = hell({args['d'..v]}) else farbek = args['fk' .. v] or args['farbek'] or '6495ED' end		

		if args['k'..v] then color = '<div style="background-color:#'.. farbe..';width:'.. breite ..'px;height:70%;"></div><div style="height:6px"></div><div style="background-color:#'.. farbek..';width:'.. breitediff ..'px;height:70%;"></div>'
			else color = '<div style="background-color:#'.. farbe..';width:'.. breite ..'px;height:70%;"></div>'
		end

		if args['einheit'] then e = ' '..args['einheit'] else e = '' end
		if args['k'..v] then value = (mw.getLanguage('de'):formatNum(tonumber(args['m'..v]))).. e..'<div></div>'..(mw.getLanguage('de'):formatNum(tonumber(args['k'..v])))
			else value = (mw.getLanguage('de'):formatNum(tonumber(args['m'..v]))).. e
		end

		if args['verleich'] then diff = (args['m'..v] - args['k'..v])
			if diff < 0 then diffnum = -diff else diffnum = diff end
			diffvalue = (mw.getLanguage('de'):formatNum(tonumber(diffnum)))
			if diff > 0 then verleich = '+'..diffvalue
				elseif diff == 0 then verleich = '±0'
				else verleich = '&ndash;'.. diffvalue
				end
		end
		
		row = datum:tag('tr')
		if args['d' .. v] then
			row:tag('td')
				:wikitext(args['d' .. v])
				:css('border-top', '0.1px solid #E0E0E0')
				:css('padding-right', '20px')
		end
		if args['s1'] then
			row:tag('td')
				:wikitext(args['s1']..'<div></div>'..args['s2'])
				:css('border-top', '0.1px solid #E0E0E0')
				:css('padding-right', '20px')
		end
		if args['d' .. v] then
			row:tag('td')
				:wikitext(color)
				:css('width', args['width'] or '100px')
				:css('max-width', args['width'] or '100px')
				:css('height', '20px')
				:css('padding-left', '0px')
				:css('border-top', '0.1px solid #E0E0E0')
				:css('border-left', '0.1px solid #E0E0E0')				
		end
		if args['m' .. v] then
			row:tag('td')
				:wikitext(value)
				:css('min-width', '50px')
				:css('text-align', 'center')
				:css('border-top', '0.1px solid #E0E0E0')
				:css('border-left', '0.1px solid #E0E0E0')
		end
		if args['verleich'] then
			row:tag('td')
				:wikitext(verleich)
				:css('min-width', '50px')
				:css('text-align', 'center')
				:css('border-top', '0.1px solid #E0E0E0')
				:css('border-left', '0.1px solid #E0E0E0')
		end
	end

	return datum
end

function p.gew(frame)
	local args = getArgs(frame)
	return '&nbsp;<span style="background-color:#4BBD71;padding-left:6px;padding-right:6px;line-height:6px;border-radius:4px 4px 4px;font-size:80%;border:0.1px solid #3A9157;text-align:center;font-weight:bold;color:#FFFFFF;">'.. (args[1] or 'Gewählt')..'</span>'
end

return p