Module:Sports table/CricketRT
Usage
{{#invoke:Sports table|main|style=CricketRT}}
- This Sports Module table is suitable for Ranji Trophy tournament, which is an annual first-class cricket tournament being played in India.
-- Style for cricket 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 '180'
local sort_text = yesno(Args['sortable_table'] or 'no') and ' sortable' or ''
--local show_played = not yesno(Args['hide_played'] or 'no')
table.insert(t,'{|class="wikitable'..sort_text..'" style="text-align:center;"\n') -- Open table
-- Table title
if Args['title'] then
table.insert(t,'|+ ' .. Args['title'] .. '\n')
end
--Header specific options
local team_head_text = Args['team_header'] or 'Team'
local tie_head_text = Args['tie_header'] or '<abbr title="Tied">T</abbr>'
local draw_head_text = Args['draw_header'] or '<abbr title="Drawn">D</abbr>'
local nr_head_text = Args['nr_header'] or '<abbr title="No result">NR</abbr>'
local bonus_head_text = Args['bonus_header'] or '<abbr title="Bonus Points">BP</abbr>'
local quot_head_text = Args['quot_header'] or '<abbr title="Runs Per Wicket Ratio">[[Runs Per Wicket Ratio|Quot]]</abbr>'
--
local loss_first = yesno(Args['loss_before_tie'] or 'yes')
local show_nr = yesno(Args['show_nr'] or 'yes')
local show_bonus = yesno(Args['show_bonus'] or 'yes')
local show_quot = yesno(Args['show_quot'] or 'yes')
-- What to rank the teams by
--local ranking_style = Args['ranking_style'] or 'pts'
-- Initialize
local tt = {}
tt.count = 0 -- Up by one after every call
tt.tab_text = t -- Actual text
-- Actual headers
if pos_label ~= nil then
tt = p_sub.colhead(tt,28,pos_label) -- Position col
end
tt = p_sub.colhead(tt, team_width, team_head_text..VTE_text) -- Team col
tt = p_sub.colhead(tt,32,'<abbr title="Played">Pld</abbr>') -- Matches played col
if full_table then
tt = p_sub.colhead(tt,32,'<abbr title="Won">W</abbr>') -- Win col
if loss_first then
tt = p_sub.colhead(tt,32,'<abbr title="Lost">L</abbr>') -- Loss col
tt = p_sub.colhead(tt,32,tie_head_text) -- Tie col
tt = p_sub.colhead(tt,32,draw_head_text) -- Draw col
else
tt = p_sub.colhead(tt,32,tie_head_text) -- Tie col
tt = p_sub.colhead(tt,32,draw_head_text) -- Draw col
tt = p_sub.colhead(tt,32, '<abbr title="Lost">L</abbr>') -- Loss col
end
if show_nr then
tt = p_sub.colhead(tt,32,nr_head_text) --No result col
end
if show_bonus then
tt = p_sub.colhead(tt,32,bonus_head_text)
--Bonus Points col
end
end
tt = p_sub.colhead(tt, 32, '<abbr title="Points">Pts</abbr>') -- Points col
if full_table then
if show_quot then
tt = p_sub.colhead(tt,28,quot_head_text) -- Quot col
end
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 win_points = tonumber(Args['winpoints']) or 16
local tie_points = tonumber(Args['tiepoints']) or 8
local draw_points = tonumber(Args['drawpoints']) or 5
local nr_points = tonumber(Args['nrpoints']) or 5
local bonus_points = tonumber(Args['bonuspoints']) or 5
local loss_points = tonumber(Args['losspoints']) or 0
-- table options, to match those in the header
local loss_first = yesno(Args['loss_before_tie'] or 'yes')
local show_tie = yesno(Args['show_tie'] or 'yes')
local show_nr = yesno(Args['show_nr'] or 'yes')
local show_bonus = yesno(Args['show_bonus'] or 'yes')
local show_quot = yesno(Args['show_quot'] or 'yes')
-- Get some input
local wins = tonumber(Args['win_'..team_code_ii]) or 0
local ties = tonumber(Args['tie_'..team_code_ii]) or 0
local draws = tonumber(Args['draw_'..team_code_ii]) or 0
local losses = tonumber(Args['loss_'..team_code_ii]) or 0
local noresults = tonumber(Args['nr_'..team_code_ii]) or 0
local bonuspoints = tonumber(Args['bonus_'..team_code_ii]) or 0
local quot = tonumber(Args['quot_'..team_code_ii]) or 0
local hth_local = Args['hth_'..team_code_ii] or nil --?
-- Then calculate some values
local matches = wins + losses + draws + ties + noresults
local points = win_points*wins + loss_points*losses + tie_points*ties + draw_points*draws + nr_points*noresults + bonuspoints
-- 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 'pts'
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
-- Set Quotient.
if quot ~= nil then
quot = mm._precision_format(quot, 3)
elseif (quot==0) then
quot = '—'
else
quot = mm._precision_format(quot, 3)
end
-- Row building
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..matches..'\n') -- Played
if full_table then
-- Use actual values if wins, ties, and losses are not numeric
if (wins == 0 and ties == 0 and losses == 0 and draws ==0 and noresults == 0) then
local function numorval(s)
return s and((s == '' and 0) or tonumber(s) or s) or 0
end
wins = numorval(Args['win_'..team_code_ii])
ties = numorval(Args['tie_'..team_code_ii])
losses = numorval(Args['loss_'..team_code_ii])
draws = numorval(Args['draw_'..team_code_ii])
noresults = numorval(Args['nr_'..team_code_ii])
end
table.insert(t,'| style="'..win_fw..bg_col..'" |'..wins..win_string..'\n') -- Won
if loss_first then
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..losses..'\n') -- Lost
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..ties..'\n') -- Ties
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..draws..'\n') -- draws
else
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..ties..'\n') -- Ties
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..draws..'\n') -- draws
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..losses..'\n') -- Lost
end
if show_nr then
table.insert(t,'| style="'..ii_fw..bg_col..'" |'.. noresults..'\n') -- Noresults
end
if show_bonus then
table.insert(t,'| style="'..ii_fw..bg_col..'" |'.. bonuspoints..'\n')
-- Bonus Points
end
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')
if full_table then
if show_quot then
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..quot..'\n') --Runs Per Wicket Ratio
end
end
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', G='Guest', H='Host', O='Play-off winner', P='Promoted', Q='Qualified for the phase indicated',
R='Relegated', T='Qualified, but not yet for the particular phase indicated' }
local status_letters = (Args['status_order'] or '') .. 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-- Status position(before or after read and default)
local stat_pos_val = string.lower(Args['status_pos'] or '')
local status_position = 'after'-- Default location
if stat_pos_val=='before' then
status_position = 'before'
elseif stat_pos_val=='after' then
status_position = 'after'
end
for l in mw.text.gsplit(status_letters, '') do
status_called[l] = false
status_code[l] = status_code[l] or '?'
status_letters = mw.ustring.gsub(status_letters, '(' .. l..'.-)' .. l, '%1')
if Args['status_text_'..l] then
status_code[l] = Args['status_text_'..l]
end
end
return {code=status_code, called=status_called, letters=status_letters, position=status_position}
end
return pp
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.