Module:Sports rbr table/matchup

MyWikiBiz, Author Your Legacy — Tuesday April 23, 2024
Jump to navigationJump to search

Template:Module rating

Usage

Basic usage

This module is an extension of Module:Sports rbr table, showing matchups and head-to-head results table.

In it's simplest form, only several parameters need to be used to build a table.

What you type <syntaxhighlight lang=moin>Lua error: expandTemplate: template "citation needed" does not exist.</syntaxhighlight>
What it looks like Lua error: expandTemplate: template "citation needed" does not exist.

Parameters

General parameters

Template:Main

Style–specific parameters

Style–specific parameters
Parameter Description
opp1 or
opp_ABC
The forward slash (/) delimited list of round-by-round opponents of the team. For example, Template:Para for seven games.
legend_style Legend colors and text to display based on usage. The default is WL. See the legend section below for more information on legend syntax.
rdrobin Number of times each team plays all other teams. The default is 1 (i.e. single round-robin).
ticon The name of the template to trigger to show teams' identity (e.g. three-letter codes, team colors, team icons)

Legend

Key

The keys below correspond to res1 or res_ABC usage: the forward slash (/) delimited list of matchup results of the team.

For example, Template:Para for five games with the round-by-round results of win, OT loss, win by forfeit, win, loss.

Key Legend color
W Template:Legend2
D Template:Legend2
L Template:Legend2
OTW Template:Legend2
OTL Template:Legend2
FW Template:Legend2
FL Template:Legend2

Style

Legend colors and text will be displayed based on usage.

Legend style WL WLF BSK BSKF FBR FBRF
Colors Template:Unbulleted list Template:Unbulleted list Template:Unbulleted list Template:Unbulleted list Template:Unbulleted list Template:Unbulleted list

Examples

Example 1: Cells contain literal texts

What you type <syntaxhighlight lang=moin>Lua error: expandTemplate: template "citation needed" does not exist.</syntaxhighlight>
What it looks like Lua error: expandTemplate: template "citation needed" does not exist.

Example 2: Cells contain icons

What you type <syntaxhighlight lang=moin>Lua error: expandTemplate: template "citation needed" does not exist.</syntaxhighlight>
What it looks like Lua error: expandTemplate: template "citation needed" does not exist.

Example 3: Double round-robin schedule

What you type <syntaxhighlight lang=moin>Lua error: expandTemplate: template "citation needed" does not exist.</syntaxhighlight>
What it looks like Lua error: expandTemplate: template "citation needed" does not exist.

See also

Tracking category


local pp = {}

local rdrobin, multirb

local tblkey = {
	['WL']   = 'W/L',
	['WLF']  = 'W/FW/L/FL',
	['BSK']  = 'W/OTW/L/OTL',
	['BSKF'] = 'W/OTW/FW/L/OTL/FL',
	['FBR']  = 'W/D/L',
	['FBRF'] = 'W/FW/D/L/FL',
}

function pp.defaults(args,yesno,color_map)
	rdrobin = tonumber(args['rdrobin'] or 1)
	multirb = rdrobin >= 2
	
	local legendtype = args['legend_style'] or 'WL'
	local opt_colors = {
		W   = { 'Win', color_map.blue1 },
		D   = { 'Draw', color_map.yellow2 },
		L   = { 'Loss', color_map.red1 },
		OTW = { 'OT win', color_map.blue3 },
		OTL = { 'OT loss', color_map.red3 },
		FW  = { 'Win by forfeit', '#5CDEFD' },
		FL  = { 'Loss by forfeit', '#D98080' }
	}
	
	local colors = mw.text.split(mw.ustring.gsub(tblkey[legendtype], '</', '<FORWARDSLASH'), '%s*/%s*')
	for k=1,#colors do
		local legend = colors[k]
		args['color_' .. legend] = opt_colors[legend][2]
		args['text_' .. legend] = opt_colors[legend][1]
	end
	
	args['header'] = 'Team ╲ Game'
	args['legendpos'] = 'b'
	args['legendorder'] = args['legendorder'] or 'W/OTW/FW/D/L/OTL/FL'
	
	return args
end

function pp.addtl_args(k)
	return k == 'style' or k == 'legend_style' or k == 'rdrobin' or k == 'ticon'
end

function pp.get_argvalues_for_maxround(args,x,del)
	del = del or ''
	return args['pos' .. del .. x] or args['res' .. del .. x] or ''
end

function pp.get_rounds_or_maxrounds(rounds,maxrounds,args,team_list)
	if multirb then	return (#team_list - 1) * rdrobin else return #team_list - 1 end
end

function pp.header(root,args,labels,maxrounds,navbar,team_list,firstround)
	local row = root:tag('tr')
	row:tag('th')
		:css('white-space', 'nowrap'):cssText('style')
		:wikitext((not multirb and (args['header'] or labels['teamround']) or '&nbsp;') .. navbar)
	
	-- if not a single round-robin
	if (multirb) then
		for r=1,rdrobin do
			row:tag('th')
				:addClass('sportsrbrtable-rnd')
				:attr('scope', 'col')
				:attr('colspan', #team_list - 1)
				:wikitext('Round&nbsp;' .. r)
		end
		row = root:tag('tr')
		row:tag('th')
			:css('white-space', 'nowrap'):cssText('style')
			:wikitext(args['header'] or labels['teamround'])
	end
	
	for r=1,maxrounds do
		row:tag('th')
			:addClass('sportsrbrtable-rnd')
			:attr('scope', 'col')
			:css('width', (args['ticon'] == nil) and (args['rdwidth'] or '35px') or nil)
			:wikitext(args['rnd' .. (r + (firstround - 1))] or (r + (firstround - 1)))
	end
	return row
end

function pp.rowtext(frame,args,legend_symbols,posrt,opprt)
	if args['ticon'] then return frame:expandTemplate{ title = args['ticon'], args = { opprt } } else return opprt end
	return legend_symbols[posrt] or posrt
end

function pp.rowbg(posrc,opprt)
	return (opprt ~= '') and posrc or ''
end

function pp.legendtext(legend_symbols,v)
	return '&nbsp;'
end

return pp