Modul:Poängtabell med övertid och straffar

Från Wikipedia

Dokumentationen för denna modul kan skapas på Modul:Poängtabell med övertid och straffar/dok

local p = {}

function p.tabell(frame)
	local args = frame.getParent(frame).args
	local result = ''
	local i = 0
	local farg = 'white'
	local startnummer = tonumber(args.startnummer) or 1
	local sorterbar = false
	local widht = "min-width: 1.8em;"
	if (args.sorterbar and args.sorterbar == 'ja') or (args.sortering and args.sortering == 'ja') then
		sorterbar = true
		local widht = "min-width: 2.4em;"
	end
	if (args.placeringar and args.placeringar ~= '') or (args.placering and args.placering ~= '') then
		result = result .. mw.text.tag('th', {style="min-width:1.8em;"}, mw.text.tag('span', {style="cursor:help;", title="Placering"}, 'Nr'))
	end
	result = result .. mw.text.tag('th', {style="min-width:" .. (args['rubrikbredd'] or  args['rubrik1bredd'] or "13em")}, (args['rubrik'] or args['rubrik1'] or 'Lag'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Spelade matcher"}, 'S'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Vinster"}, 'V'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Oavgjorda"}, 'O'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Förluster"}, 'F'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Övertidsvinster"}, 'ÖV'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Övertidsförluster"}, 'ÖF'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Straffläggningsvinster"}, 'SV'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Straffläggningsförluster"}, 'SF'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Gjorda mål"}, 'GM'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Insläppta mål"}, 'IM'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Målskillnad"}, 'MS'))
	result = result .. mw.text.tag('th', {style = width}, mw.text.tag('span', {style="cursor:help;", title="Poäng"}, 'P'))
	result = mw.text.tag ('tr', {}, result)
	
	while args[i*10+1] do
		local r = ''
		local f = 'färg' .. tostring(i+1)
		local k = 'kval' .. tostring(i+1)
		if args[f] then
			farg = args[f]
		end
		if (args.placeringar and args.placeringar ~= '') or (args.placering and args.placering ~= '') then
			r = mw.text.tag('td', {}, startnummer + i)
		end
		r = r .. mw.text.tag('td', {style="text-align:left;"}, args[i*10+1])
		local summa = (tonumber(args[i*10+2]) or 0) + (tonumber(args[i*10+3]) or 0) + (tonumber(args[i*10+4]) or 0) + (tonumber(args[i*10+5]) or 0) + (tonumber(args[i*10+6]) or 0) + (tonumber(args[i*10+7]) or 0)
		r = r .. mw.text.tag('td', {}, summa)
		r = r .. mw.text.tag('td', {}, args[i*10+2])
		summa = (tonumber(args[i*10+4]) or 0) + (tonumber(args[i*10+5]) or 0) + (tonumber(args[i*10+6]) or 0) + (tonumber(args[i*10+7]) or 0)
		r = r .. mw.text.tag('td', {}, summa)
		r = r .. mw.text.tag('td', {}, args[i*10+3])
		r = r .. mw.text.tag('td', {}, args[i*10+4])
		r = r .. mw.text.tag('td', {}, args[i*10+5])
		r = r .. mw.text.tag('td', {}, args[i*10+6])
		r = r .. mw.text.tag('td', {}, args[i*10+7])
		r = r .. mw.text.tag('td', {}, args[i*10+8])
		r = r .. mw.text.tag('td', {}, args[i*10+9])
		local s = ''
		if (args[i*10+8] or 0) > (args[i*10+9] or 0) then 
			s = '+'
		elseif (args[i*10+8] or 0) < (args[i*10+9] or 0) then
			s = '-'
		end
		s = s .. tostring(math.abs((args[i*10+8] or 0) - (args[i*10+9] or 0)))
		r = r .. mw.text.tag('td', {}, s)
		summa = (args[i*10+2] or 0)*(tonumber(args['poäng']) or 3) + (tonumber(args[i*10+4]) or 0)*(tonumber(args['ÖV-poäng']) or 2) + (tonumber(args[i*10+5]) or 0) + (tonumber(args[i*10+7]) or 0) + (tonumber(args[i*10+10]) or 0)
		r = r .. mw.text.tag('td', {style="font-weight:bold;"}, summa)
		local style = 'background:' .. mw.getCurrentFrame():preprocess("{{ligafärg|".. farg .. "}}") .. ';'
		if args[k] then
			style = style .. ' border-bottom:2px solid ' .. mw.getCurrentFrame():preprocess("{{ligafärg|".. args[k] .."}}") .. ';'
		end
		result = result .. mw.text.tag('tr', {style = style}, r)
		i = i + 1
	end
	
	if sorterbar then
		return mw.text.tag('table', {class="wikitable sortable", style="font-size:0.9375em;text-align:center;background:white;"}, result)
	end
	return mw.text.tag('table', {class="wikitable", style="font-size:0.9375em;text-align:center;background:white;"}, result)
	
end

return p