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/Badminton team
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 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 '165' 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 goals for/against local for_against_style = Args['for_against_style'] or 'matches' 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=='m' or for_against_style=='match' or for_against_style=='matches' then fa_letter = 'M' fa_word_sing = 'Match' fa_word_plur = 'Matches' elseif for_against_style=='none' then hide_for_against = true else fa_letter = 'M' fa_word_sing = 'Match' fa_word_plur = 'Matches' end -- Whether to use goal ratio (goal average) instead local use_ratio_val = Args['use_goal_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 goal percentage instead local use_percentage_val = Args['use_goal_percentage'] or 'no' local do_percentage = false -- True if exist, false otherwise if yesno(use_percentage_val) then do_percentage = true end -- Use points instead of point for/against local game_for_against_style = Args['game_for_against_style'] or 'games' local gfa_letter, gfa_word_sing, gfa_word_plur local hide_game_for_against = false -- First convert to lower case if it is a string for_against_style = string.lower(for_against_style) if game_for_against_style=='g' or game_for_against_style=='game' or game_for_against_style=='games' then gfa_letter = 'G' gfa_word_sing = 'Game' gfa_word_plur = 'Games' elseif game_for_against_style=='none' then hide_game_for_against = true else gfa_letter = 'G' gfa_word_sing = 'Game' gfa_word_plur = 'Games' end -- Whether to use goal ratio (goal average) instead local use_ratio_val = Args['use_goal_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 goal percentage instead local use_percentage_val = Args['use_goal_percentage'] or 'no' local do_percentage = false -- True if exist, false otherwise if yesno(use_percentage_val) then do_percentage = true end -- Use points instead of point for/against local point_for_against_style = Args['point_for_against_style'] or 'points' local pfa_letter, pfa_word_sing, pfa_word_plur local hide_point_for_against = false -- First convert to lower case if it is a string for_against_style = string.lower(for_against_style) if point_for_against_style=='p' or point_for_against_style=='match' or point_for_against_style=='points' then pfa_letter = 'P' pfa_word_sing = 'Point' pfa_word_plur = 'Points' elseif point_for_against_style=='none' then hide_point_for_against = true else pfa_letter = 'P' pfa_word_sing = 'Point' pfa_word_plur = 'Points' end -- Whether to use goal ratio (goal average) instead local use_ratio_val = Args['use_goal_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 goal percentage instead local use_percentage_val = Args['use_goal_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,20,pos_label) -- Position col -- Add group header if full_table and group_col then tt = p_sub.colhead(tt,20,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,20,'<abbr title="Played">Pld</abbr>') -- Matches played col if full_table then tt = p_sub.colhead(tt,20,'<abbr title="Won">W</abbr>') -- Win col if loss_first then tt = p_sub.colhead(tt,20,'<abbr title="Lost">L</abbr>') -- Loss col else tt = p_sub.colhead(tt,20,'<abbr title="Lost">L</abbr>') -- Loss col end if not hide_for_against then tt = p_sub.colhead(tt,20,'<abbr title="'..fa_word_plur..' for">'..fa_letter..'F</abbr>') -- For col tt = p_sub.colhead(tt,20,'<abbr title="'..fa_word_plur..' against">'..fa_letter..'A</abbr>') -- Against col if do_ratio then tt = p_sub.colhead(tt,20,'<abbr title="'..fa_word_sing..' ratio">'..fa_letter..'R</abbr>') -- Ratio col elseif do_percentage then tt = p_sub.colhead(tt,20,'<abbr title="'..fa_word_sing..' percentage">%</abbr>') -- Percentage col else tt = p_sub.colhead(tt,20,'<abbr title="'..fa_word_sing..' difference">'..fa_letter..'D</abbr>') -- Difference col end if not hide_game_for_against then tt = p_sub.colhead(tt,20,'<abbr title="'..gfa_word_plur..' for">'..gfa_letter..'F</abbr>') -- For col tt = p_sub.colhead(tt,20,'<abbr title="'..gfa_word_plur..' against">'..gfa_letter..'A</abbr>') -- Against col if do_ratio then tt = p_sub.colhead(tt,20,'<abbr title="'..gfa_word_sing..' ratio">'..gfa_letter..'R</abbr>') -- Ratio col elseif do_percentage then tt = p_sub.colhead(tt,20,'<abbr title="'..gfa_word_sing..' percentage">%</abbr>') -- Percentage col else tt = p_sub.colhead(tt,20,'<abbr title="'..gfa_word_sing..' difference">'..gfa_letter..'D</abbr>') -- Difference col end if not hide_point_for_against then tt = p_sub.colhead(tt,20,'<abbr title="'..pfa_word_plur..' for">'..pfa_letter..'F</abbr>') -- For col tt = p_sub.colhead(tt,20,'<abbr title="'..pfa_word_plur..' against">'..pfa_letter..'A</abbr>') -- Against col if do_ratio then tt = p_sub.colhead(tt,20,'<abbr title="'..pfa_word_sing..' ratio">'..pfa_letter..'R</abbr>') -- Ratio col elseif do_percentage then tt = p_sub.colhead(tt,20,'<abbr title="'..pfa_word_sing..' percentage">%</abbr>') -- Percentage col else tt = p_sub.colhead(tt,20,'<abbr title="'..pfa_word_sing..' difference">'..pfa_letter..'D</abbr>') -- Difference col end end end end end if show_points then tt = p_sub.colhead(tt,20,'<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 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 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 losses = tonumber(Args['loss_'..team_code_ii]) or 0 local mfor = tonumber(Args['mf_'..team_code_ii]) or tonumber(Args['mf_'..team_code_ii]) or 0 local maig = tonumber(Args['ma_'..team_code_ii]) or tonumber(Args['ma_'..team_code_ii]) or 0 local gfor = tonumber(Args['gf_'..team_code_ii]) or tonumber(Args['gf_'..team_code_ii]) or 0 local gaig = tonumber(Args['ga_'..team_code_ii]) or tonumber(Args['ga_'..team_code_ii]) or 0 local pfor = tonumber(Args['pf_'..team_code_ii]) or tonumber(Args['pf_'..team_code_ii]) or 0 local paig = tonumber(Args['pa_'..team_code_ii]) or tonumber(Args['pa_'..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 = wins + losses local points = win_points*wins + loss_points*losses + s_pts local win_perc = '' if matches == 0 then -- Escape for zero matches win_perc = '—' else --Some sports use draw as well win_perc = mm._precision_format((2*wins) / (2*matches), 3) if losses > 0 then -- Drop the leading zero (from the string) win_perc = string.sub(win_perc,2,string.len(win_perc)) end 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 mcomp -- Whether to use goal ratio (goal average) or goal percentage instead local use_ratio_val = Args['use_goal_ratio'] or 'no' local use_percentage_val = Args['use_goal_percentage'] or 'no' local skip_sign if yesno(use_ratio_val) then -- Now it is the goal ratio/goal average if maig == 0 then mcomp = '—' else mcomp = mm._precision_format(gfor / gaig, 3) end elseif yesno(use_percentage_val) then -- Now it is the percentage if maig == 0 then mcomp = '—' else mcomp = mm._precision_format(100 * gfor / gaig , 1) end else -- It's match difference mcomp = mfor - maig -- Formatting with signs if mcomp>0 then mcomp='+'..mcomp elseif mcomp < 0 then mcomp='−'..-mcomp end end local gcomp -- Whether to use goal ratio (goal average) or goal percentage instead local use_ratio_val = Args['use_goal_ratio'] or 'no' local use_percentage_val = Args['use_goal_percentage'] or 'no' local skip_sign if yesno(use_ratio_val) then -- Now it is the goal ratio/goal 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 match difference gcomp = gfor - gaig -- Formatting with signs if gcomp>0 then gcomp='+'..gcomp elseif gcomp < 0 then gcomp='−'..-gcomp end end local pcomp -- Whether to use goal ratio (goal average) or goal percentage instead local use_ratio_val = Args['use_goal_ratio'] or 'no' local use_percentage_val = Args['use_goal_percentage'] or 'no' local skip_sign if yesno(use_ratio_val) then -- Now it is the goal ratio/goal average if paig == 0 then pcomp = '—' else pcomp = mm._precision_format(gfor / gaig, 3) end elseif yesno(use_percentage_val) then -- Now it is the percentage if paig == 0 then pcomp = '—' else pcomp = mm._precision_format(100 * gfor / gaig , 1) end else -- It's match difference pcomp = pfor - paig -- Formatting with signs if pcomp>0 then pcomp='+'..pcomp elseif pcomp < 0 then pcomp='−'..-pcomp 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 else table.insert(t,'| style="'..ii_fw..bg_col..'" |'..losses..'\n') -- Lost end if not hide_for_against then table.insert(t,'| style="'..ii_fw..bg_col..'" |'..mfor..'\n') -- MF table.insert(t,'| style="'..ii_fw..bg_col..'" |'..maig..'\n') -- MA table.insert(t,'| style="'..ii_fw..bg_col..'" |'..mcomp..'\n') -- Match comparison if Args['game_for_against_style'] ~= 'none' 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') -- Game comparison if Args['point_for_against_style'] ~= 'none' then -- game param hides games and points in header table.insert(t,'| style="'..ii_fw..bg_col..'" |'..pfor..'\n') -- PF table.insert(t,'| style="'..ii_fw..bg_col..'" |'..paig..'\n') -- PA table.insert(t,'| style="'..ii_fw..bg_col..'" |'..pcomp..'\n') -- Point comparison end end end 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 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/Badminton team/doc
(
edit
)
Module:String
(
edit
)
Module:Yesno
(
edit
)