Modul:Sports table/Volleyball
Die Dokumentation für dieses Modul kann unter Modul:Sports table/Volleyball/Doku erstellt werden
-- 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 = yesno(Args['sortable_table'] or 'no') and 'sortable' or ''
local show_played = yesno(Args['hide_played'] or 'no') and false or true
local show_sets = yesno(Args['show_sets'] or 'yes')
local show_setpoints = yesno(Args['show_setpoints'] or 'yes')
local setpoints_first = yesno(Args['setpoints_before_sets'] or 'no')
-- 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
if setpoints_first then
if show_setpoints then
tt = p_sub.colhead(tt,32,'<abbr title="Setpoints won">SPW</abbr>') -- Setpoints won col
tt = p_sub.colhead(tt,32,'<abbr title="Setpoints lost">SPL</abbr>') -- Setpoints lost col
tt = p_sub.colhead(tt,36,'<abbr title="Setpoint ratio">SPR</abbr>') -- Setpoint ratio col
end
if show_sets then
tt = p_sub.colhead(tt,28,'<abbr title="Sets won">SW</abbr>') -- Sets won col
tt = p_sub.colhead(tt,28,'<abbr title="Sets lost">SL</abbr>') -- Sets lost col
tt = p_sub.colhead(tt,36,'<abbr title="Set ratio">SR</abbr>') -- Set ratio col
end
else
if show_sets then
tt = p_sub.colhead(tt,28,'<abbr title="Sets won">SW</abbr>') -- Sets won col
tt = p_sub.colhead(tt,28,'<abbr title="Sets lost">SL</abbr>') -- Sets lost col
tt = p_sub.colhead(tt,36,'<abbr title="Set ratio">SR</abbr>') -- Set ratio col
end
if show_setpoints then
tt = p_sub.colhead(tt,32,'<abbr title="Setpoints won">SPW</abbr>') -- Setpoints won col
tt = p_sub.colhead(tt,32,'<abbr title="Setpoints lost">SPL</abbr>') -- Setpoints lost col
tt = p_sub.colhead(tt,36,'<abbr title="Setpoint ratio">SPR</abbr>') -- Setpoint ratio col
end
end
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:Sports table/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
-- Optional automatic calculation of wins, losses, sets won, and sets lost
local auto_sets = false
for k=3,5 do
local wink = tonumber(Args['win'..k..'s_'..team_code_ii]) or 0
local lossk = tonumber(Args['loss'..k..'s_'..team_code_ii]) or 0
if (wink > 0) or (lossk > 0) then
auto_sets = true
end
wins = wins + wink
setswon = setswon + 3*wink
setslost = setslost + (k-3)*wink
points = points + ((k == 5) and swin_points or bwin_points)*wink
losses = losses + lossk
setslost = setslost + 3*lossk
setswon = setswon + (k-3)*lossk
points = points + ((k == 5) and sloss_points or bloss_points)*lossk
matches = matches + wink + lossk
end
-- 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, sets, and setpoints
local show_played = yesno(Args['hide_played'] or 'no') and false or true
local show_sets = yesno(Args['show_sets'] or 'yes')
local show_setpoints = yesno(Args['show_setpoints'] or 'yes')
local setpoints_first = yesno(Args['setpoints_before_sets'] or 'no')
-- Set ratio
local sratio
if setslost == 0 then
sratio = setswon > 0 and 'MAX' or '—'
else
sratio = mm._precision_format(setswon / setslost, 3)
end
-- Setpoint ratio
local spratio
if setpointslost == 0 then
spratio = setpointswon > 0 and 'MAX' or '—'
else
spratio = mm._precision_format(setpointswon / setpointslost, 3)
end
-- Now that we are done calculating, show actual input values
if tonumber(Args['bwin_'..team_code_ii] or 0) == nil or tonumber(Args['swin_'..team_code_ii] or 0) == nil then
wins = '—'
end
if tonumber(Args['bloss_'..team_code_ii] or 0) == nil or tonumber(Args['sloss_'..team_code_ii] or 0) == nil then
losses = '—'
end
local function numorval(s)
return s and ((s == '' and 0) or tonumber(s) or s) or 0
end
if auto_sets == false then
setswon = numorval(Args['sw_'..team_code_ii])
setslost = numorval(Args['sl_'..team_code_ii])
end
setpointswon = numorval(Args['spw_'..team_code_ii])
setpointslost = numorval(Args['spl_'..team_code_ii])
-- 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
if setpoints_first then
if show_setpoints then
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
if show_sets then
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..setswon..'\n') -- SW
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..setslost..'\n') -- SL
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..sratio..'\n') -- Set ratio
end
else
if show_sets then
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..setswon..'\n') -- SW
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..setslost..'\n') -- SL
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..sratio..'\n') -- Set ratio
end
if show_setpoints then
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
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', 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'}
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
-- Read in custom status options
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.