Module:Sports table/Badminton team
Appearance
![]() | Module rating is invalid or not specified. |
![]() | This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
Usage
{{#invoke:Sports table/Badminton team|function_name}}
-- Style for football tables
local pp = {}
function pp.header(t,Args,p_sub,pos_label,group_col,VTE_text,full_table,results_header_txt)
-- Load relevant modules
local yesno = require('Module:Yesno')
-- Create table header
-- Pre stuff
local team_width = Args['teamwidth'] or '170'
local sort_text = ''
local sort_table_val = Args['sortable_table'] or 'no'
if yesno(sort_table_val) then sort_text = 'sortable' end
local show_played = true
local hide_played_val = Args['hide_played'] or 'no'
if yesno(hide_played_val) then show_played = false end
-- Custom header
local group_head_text = Args['group_header'] or '<abbr title="Group">Grp</abbr>'
table.insert(t,'{|class="wikitable '..sort_text..'" style="text-align:center;"\n') -- Open table
-- Initialize
local tt = {}
tt.count = 0 -- Up by one after every call
tt.tab_text = t -- Actual text
-- Actual headers
tt = p_sub.colhead(tt,28,pos_label) -- Position col
-- Add group header
if full_table and group_col then
tt = p_sub.colhead(tt,28,group_head_text) -- Group col
end
tt = p_sub.colhead(tt,team_width,'Team'..VTE_text) -- Team col
if show_played then
tt = p_sub.colhead(tt,28,'<abbr title="Played">Pld</abbr>') -- Matches played col
end
if full_table then
tt = p_sub.colhead(tt,28,'<abbr title="Won">W</abbr>') -- Win col
tt = p_sub.colhead(tt,28,'<abbr title="Lost">L</abbr>') -- Loss col
end
tt = p_sub.colhead(tt,28,'<abbr title="Points">Pts</abbr>') -- Points col
if full_table then
tt = p_sub.colhead(tt,28,'<abbr title="Matches won">MW</abbr>') -- Matches won col
tt = p_sub.colhead(tt,28,'<abbr title="Matches lost">ML</abbr>') -- Matches lost col
tt = p_sub.colhead(tt,32,'<abbr title="Games won">GW</abbr>') -- Games won col
tt = p_sub.colhead(tt,32,'<abbr title="Games lost">GL</abbr>') -- Games lost col
tt = p_sub.colhead(tt,32,'<abbr title="Points won">PW</abbr>') -- Points won col
tt = p_sub.colhead(tt,32,'<abbr title="Point lost">PL</abbr>') -- Points lost col
end
if full_table then
tt.count = tt.count+1
table.insert(tt.tab_text,results_header_txt)
end
return tt
end
function pp.row(frame,t,Args,p_sub,notes_exist,hth_id_list,full_table,rand_val,team_list,team_code_ii,ii_start,ii_end,ii_fw,bg_col,N_teams,ii,ii_show)
-- Build the inner parts of individual rows
-- Sub-module usage
local mm = require('Module:Math')
local yesno = require('Module:Yesno')
-- Get custom/default options for in table
local bwin_points = tonumber(Args['bwinpoints']) or 3
local swin_points = tonumber(Args['swinpoints']) or 2
local sloss_points = tonumber(Args['slosspoints']) or 1
local bloss_points = tonumber(Args['blosspoints']) or 0
-- Get some input
local bigwins = tonumber(Args['bwin_'..team_code_ii]) or 0
local smallwins = tonumber(Args['swin_'..team_code_ii]) or 0
local biglosses = tonumber(Args['bloss_'..team_code_ii]) or 0
local smallosses = tonumber(Args['sloss_'..team_code_ii]) or 0
local setswon = tonumber(Args['sw_'..team_code_ii]) or 0
local setslost = tonumber(Args['sl_'..team_code_ii]) or 0
local setpointswon = tonumber(Args['spw_'..team_code_ii]) or 0
local setpointslost = tonumber(Args['spl_'..team_code_ii]) or 0
local s_pts = tonumber(Args['adjust_points_'..team_code_ii]) or tonumber(Args['startpoints_'..team_code_ii]) or 0
local hth_local = Args['hth_'..team_code_ii] or nil
-- Then calculate some values
local matches = bigwins + smallwins + biglosses + smallosses
local points = bwin_points*bigwins + swin_points*smallwins + sloss_points*smallosses + bloss_points*biglosses + s_pts
local wins = bigwins + smallwins
local losses = biglosses + smallosses
-- Some local vars
local hth_string
local tt_return = p_sub.hth(frame,Args,full_table,hth_id_list,hth_local,notes_exist,team_list,team_code_ii,ii_start,ii_end,rand_val)
hth_string = tt_return.str
hth_id_list = tt_return.list
notes_exist = tt_return.notes_exist
-- What to rank the teams by
local ranking_style = Args['ranking_style'] or 'wins'
local win_fw, win_string, pts_fw, pts_string
ranking_style = string.lower(ranking_style)
if ranking_style=='p' or ranking_style=='pts' or ranking_style=='points' then
-- Based on points
win_fw=ii_fw
win_string = ''
pts_fw = 'font-weight: bold;'
pts_string = hth_string
else
-- Based on wins
win_fw = 'font-weight: bold;'
win_string = hth_string
pts_fw=ii_fw
pts_string = ''
end
-- Show games played
local show_played = true
local hide_played_val = Args['hide_played'] or 'no'
if yesno(hide_played_val) then show_played = false end
-- Set ratio
local sratio
if setslost == 0 then
sratio = '—'
else
sratio = mm._precision_format(setswon / setslost, 3)
end
-- Setpoint ratio
local spratio
if setpointslost == 0 then
spratio = '—'
else
spratio = mm._precision_format(setpointswon / setpointslost, 3)
end
-- Row building
if show_played then
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..matches..'\n') -- Played
end
if full_table then
table.insert(t,'| style="'..win_fw..bg_col..'" |'..wins..win_string..'\n') -- Won
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..losses..'\n') -- Lost
end
if points<0 then
table.insert(t,'| style="'..pts_fw..bg_col..'" | −'..-points..pts_string..'\n')
else
table.insert(t,'| style="'..pts_fw..bg_col..'" | '..points..pts_string..'\n')
end
if full_table then
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..matcheswon..'\n') -- SW
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..matcheslost..'\n') -- SL
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..sratio..'\n') -- Set ratio
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..setpointswon..'\n') -- SPW
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..setpointslost..'\n') -- SPL
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..spratio..'\n') -- Setpoint ratio
end
return {t=t, notes_exist=notes_exist, hth_id_list=hth_id_list}
end
function pp.status(Args)
-- Declare status options
-- ------------------------------------------------------------
-- NOTE: If you add to status_code, also add to status_called and status_letters!!
-- Or functionality will be compromised
-- ------------------------------------------------------------
local status_code, status_called = {}
status_code = { A='Advances to a further round', C='Champion', D='Disqualified',
E='Eliminated', H='Host', O='Play-off winner', P='Promoted', Q='Qualified to the phase indicated',
R='Relegated', T='Qualified, but not yet to the particular phase indicated',
X='?', Y='?', Z='?'}
status_called = { A=false, C=false, D=false, E=false, H=false, O=false, P=false,
Q=false, R=false, T=false, X=false, Y=false, Z=false}
local status_letters = 'ACDEHOPQRTXYZ'
-- Status position (before or after read and default)
local stat_pos_val = Args['status_pos'] or ''
local status_position = 'after' -- Default location
stat_pos_val = string.lower(stat_pos_val)
if stat_pos_val=='before' then
status_position = 'before'
elseif stat_pos_val=='after' then
status_position = 'after'
end
-- Read in custom status options
if Args['status_text_X'] then status_code.X = Args['status_text_X'] end
if Args['status_text_Y'] then status_code.Y = Args['status_text_Y'] end
if Args['status_text_Z'] then status_code.Z = Args['status_text_Z'] end
return {code=status_code, called=status_called, letters=status_letters, position=status_position}
end
return pp