Modul:Benutzer:Zukunft99
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 cfg = mw.loadData('Modul:Parlamente/Liste');
local function einheit(frame)
local args = getArgs(frame)
local staat = args[1]
local info = cfg.info[staat] or staat
return info
end
function p.erste(frame)
local args = getArgs(frame)
local name = einheit(frame)
return name[1]
end
function p.zweite(frame)
local args = getArgs(frame)
local name = einheit(frame)
return name[2]
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 = '–'.. 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 ' <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
function p.tabellen(frame)
local root = mw.html.create('table'):addClass('wikitable')
local args = getArgs(frame)
local i = 0
row = root:tag('th')
:wikitext('Partei')
:attr('colspan','2')
:attr('rowspan','2')
row2 = root:tag('tr')
for wahl = 1, 10 do i = i + 1
if args['jahr'..i] then
row:tag('th')
:wikitext(args['jahr'..i])
:attr('colspan', 2)
end
if args['jahr'..i] then
row2
:tag('th')
:wikitext('%')
row2
:tag('th')
:wikitext('Mandate')
end
end
for k,v in pairs(args) do
if tonumber(k) then
value = string.gsub(v, "%,", "%.") or v
if not tonumber(value) then
if v == '-' or v == '–' or v == '/' then
row:tag('td')
:wikitext('–')
:css('text-align', 'center')
else
row = root:tag('tr')
row:tag('td')
:css('background', '#'..farben({v}))
row:tag('td')
:wikitext(v)
end
else
row:tag('td')
:wikitext(v)
:css('text-align', 'center')
end
end
end
return tostring(root)
end
return p