Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Sports table/Darts
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
-- Style for Dart 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 '190' local sort_text = '' local sort_table_val = Args['sortable_table'] or 'no' if yesno(sort_table_val) then sort_text = 'sortable' end table.insert(t,'{|class="wikitable '..sort_text..'" style="text-align:center;"\n') -- Open table -- Custom header options local draw_head_text = Args['draw_header'] or '<abbr title="Drawn">D</abbr>' local group_head_text = Args['group_header'] or '<abbr title="Group">Grp</abbr>' local team_head_text = Args['team_header'] or 'Team' local loss_first = Args['loss_before_draw'] or false -- What to rank the teams by local ranking_style = Args['ranking_style'] or 'pts' local show_points, show_perc = false ranking_style = string.lower(ranking_style) if ranking_style=='w' or ranking_style=='win' or ranking_style=='wins' then -- Based on wins elseif ranking_style=='perc' or ranking_style=='percentage' or ranking_style=='%' then -- Based on percentage show_perc = true else -- Based on points show_points = true end -- Use points instead of legs for/against local for_against_style = Args['for_against_style'] or 'legs' local fa_letter, fa_word_sing, fa_word_plur local hide_for_against = false -- First convert to lower case if it is a string for_against_style = string.lower(for_against_style) if for_against_style=='l' or for_against_style=='leg' or for_against_style=='legs' then fa_letter = 'L' fa_word_sing = 'Leg' fa_word_plur = 'Legs' elseif for_against_style=='p' or for_against_style=='point' or for_against_style=='points' then fa_letter = 'P' fa_word_sing = 'Point' fa_word_plur = 'Points' elseif for_against_style=='none' then hide_for_against = true else fa_letter = 'L' fa_word_sing = 'Leg' fa_word_plur = 'Legs' end -- Whether to use leg ratio (leg average) instead local use_ratio_val = Args['use_leg_ratio'] or 'no' local do_ratio = false -- True if exist, false otherwise if yesno(use_ratio_val) then do_ratio = true end -- Whether to use leg percentage instead local use_percentage_val = Args['use_leg_percentage'] or 'no' local do_percentage = false -- True if exist, false otherwise if yesno(use_percentage_val) then do_percentage = true end -- 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_head_text..VTE_text) -- Team col tt = p_sub.colhead(tt,28,'<abbr title="Played">Pld</abbr>') -- Matches played col if full_table then tt = p_sub.colhead(tt,28,'<abbr title="Won">W</abbr>') -- Win col if loss_first then tt = p_sub.colhead(tt,28,'<abbr title="Lost">L</abbr>') -- Loss col tt = p_sub.colhead(tt,28,draw_head_text) -- Draw col else tt = p_sub.colhead(tt,28,draw_head_text) -- Draw col tt = p_sub.colhead(tt,28,'<abbr title="Lost">L</abbr>') -- Loss col end if show_points then tt = p_sub.colhead(tt,28,'<abbr title="Points">Pts</abbr>') -- Points col elseif show_perc then tt = p_sub.colhead(tt,36,'<abbr title="Win percentage">PCT</abbr>') -- Win percentage col end if not hide_for_against then tt = p_sub.colhead(tt,28,'<abbr title="'..fa_word_plur..' for">'..fa_letter..'F</abbr>') -- For col tt = p_sub.colhead(tt,28,'<abbr title="'..fa_word_plur..' against">'..fa_letter..'A</abbr>') -- Against col if do_ratio then tt = p_sub.colhead(tt,28,'<abbr title="'..fa_word_sing..' ratio">'..fa_letter..'R</abbr>') -- Ratio col elseif do_percentage then tt = p_sub.colhead(tt,28,'<abbr title="'..fa_word_sing..' percentage">%</abbr>') -- Percentage col else tt = p_sub.colhead(tt,28,'<abbr title="'..fa_word_sing..' difference">'..fa_letter..'D</abbr>') -- Difference col end end tt = p_sub.colhead(tt,28,'<abbr title="Legs Won Against Throw">LWAT</abbr>') -- LWAT col tt = p_sub.colhead(tt,28,'100+') -- 100+ col tt = p_sub.colhead(tt,28,'140+') -- 140+ col tt = p_sub.colhead(tt,28,'180s') -- 180s col tt = p_sub.colhead(tt,28,'<abbr title="Average">A</abbr>') -- A col tt = p_sub.colhead(tt,28,'<abbr title="High Checkout">HC</abbr>') -- HC col tt = p_sub.colhead(tt,28,'<abbr title="Checkout Percentage">C%</abbr>') -- C% 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 win_points = tonumber(Args['winpoints']) or 2 local draw_points = tonumber(Args['drawpoints']) or 1 local loss_points = tonumber(Args['losspoints']) or 0 -- Order of draws and losses -- local loss_first = Args['loss_before_draw'] or false -- Get some input local wins = tonumber(Args['win_'..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 gfor = tonumber(Args['lf_'..team_code_ii]) or tonumber(Args['LF_'..team_code_ii]) or 0 local gaig = tonumber(Args['la_'..team_code_ii]) or tonumber(Args['LA_'..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 local lwat = tonumber(Args['LWAT_'..team_code_ii]) or 0 local p100 = tonumber(Args['100p_'..team_code_ii]) or 0 local p140 = tonumber(Args['140p_'..team_code_ii]) or 0 local s180 = tonumber(Args['180s_'..team_code_ii]) or 0 local AA = tonumber(Args['A_'..team_code_ii]) or 0 local HC = tonumber(Args['HC_'..team_code_ii]) or 0 local Cp = Args['Cpct_'..team_code_ii] or '0.00' -- Then calculate some values local matches = wins + draws + losses local points = win_points*wins + draw_points*draws + loss_points*losses + s_pts --Some sports use draw as well local win_perc = mm._precision_format((2*wins + draws) / (2*matches), 3) if matches == 0 then -- Escape for zero matches win_perc = '—' elseif losses > 0 then -- Drop the leading zero (from the string) win_perc = string.sub(win_perc,2,string.len(win_perc)) end -- Show for/against local for_against_style = Args['for_against_style'] or 'goals' local hide_for_against = false for_against_style = string.lower(for_against_style) if for_against_style=='none' then hide_for_against = true end -- Comparison of for against local gcomp -- Whether to use leg ratio (leg average) or leg percentage instead local use_ratio_val = Args['use_leg_ratio'] or 'no' local use_percentage_val = Args['use_leg_percentage'] or 'no' local skip_sign if yesno(use_ratio_val) then -- Now it is the leg ratio/leg average if gaig == 0 then gcomp = '—' else gcomp = mm._precision_format(gfor / gaig, 3) end elseif yesno(use_percentage_val) then -- Now it is the percentage if gaig == 0 then gcomp = '—' else gcomp = mm._precision_format(100 * gfor / gaig , 1) end else -- It's leg difference gcomp = gfor - gaig -- Formatting with signs if gcomp>0 then gcomp='+'..gcomp elseif gcomp < 0 then gcomp='−'..-gcomp end 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 'pts' local rank_points, rank_perc = false local win_fw, win_string ranking_style = string.lower(ranking_style) if ranking_style=='w' or ranking_style=='win' or ranking_style=='wins' then -- Based on wins win_fw = 'font-weight: bold;' win_string = hth_string elseif ranking_style=='perc' or ranking_style=='percentage' or ranking_style=='%' then -- Based on percentage rank_perc = true win_fw=ii_fw win_string = '' else -- Based on points rank_points = true win_fw=ii_fw win_string = '' end -- Row building table.insert(t,'| style="'..ii_fw..bg_col..'" |'..matches..'\n') -- Played if full_table then 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..'" |'..draws..'\n') -- Drawn else table.insert(t,'| style="'..ii_fw..bg_col..'" |'..draws..'\n') -- Drawn table.insert(t,'| style="'..ii_fw..bg_col..'" |'..losses..'\n') -- Lost end if rank_points then -- Add − for negative point totals if points<0 then table.insert(t,'| style="font-weight: bold;'..bg_col..'" | −'..-points..hth_string..'\n') else table.insert(t,'| style="font-weight: bold;'..bg_col..'" | '..points..hth_string..'\n') end elseif rank_perc then table.insert(t,'| style="font-weight: bold;'..bg_col..'" | '..win_perc..hth_string..'\n') end if not hide_for_against then table.insert(t,'| style="'..ii_fw..bg_col..'" |'..gfor..'\n') -- GF table.insert(t,'| style="'..ii_fw..bg_col..'" |'..gaig..'\n') -- GA table.insert(t,'| style="'..ii_fw..bg_col..'" |'..gcomp..'\n') -- Goal comparison end table.insert(t,'| style="'..ii_fw..bg_col..'" |'..lwat..'\n') -- LWAT table.insert(t,'| style="'..ii_fw..bg_col..'" |'..p100..'\n') -- 100+ table.insert(t,'| style="'..ii_fw..bg_col..'" |'..p140..'\n') -- 140+ table.insert(t,'| style="'..ii_fw..bg_col..'" |'..s180..'\n') -- 180s table.insert(t,'| style="'..ii_fw..bg_col..'" |'..AA..'\n') -- A table.insert(t,'| style="'..ii_fw..bg_col..'" |'..HC..'\n') -- HC table.insert(t,'| style="'..ii_fw..bg_col..'" |'..Cp..'%\n') -- C% 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='Advance to a further round', C='Champion', D='Disqualified', E='Eliminated', G='Guest', 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, G=false, H=false, O=false, P=false, Q=false, R=false, T=false, X=false, Y=false, Z=false} local status_letters = 'ACDEGHOPQRTXYZ' -- 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
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Error
(
edit
)
Template:Module other
(
edit
)
Template:Module rating
(
edit
)
Template:Ombox
(
edit
)
Template:Sandbox other
(
edit
)
Module:Arguments
(
edit
)
Module:Error
(
edit
)
Module:Message box
(
edit
)
Module:Message box/configuration
(
edit
)
Module:Message box/ombox.css
(
edit
)
Module:Sports table/Darts/doc
(
edit
)
Module:String
(
edit
)
Module:Yesno
(
edit
)