Moodul:Sporditabel/WDL
- Selle mooduli dokumentatsioon on liidetud lehelt Moodul:Sporditabel/WDL/doc (redigeeri | ajalugu).
See Lua-põhise Moodul:Sporditabel stiil on mõeldud grupi- ja liigatabelite koostamiseks võit-viik-kaotus formaadis võistluste jaoks. Pange tähele, et seda moodulit kasutatakse laialdaselt, seega testige võimalikke muudatusi hoolikalt liivakastis ja veenduge enne suurte muudatuste rakendamist konsensuse olemasolu. Ülejäänud osa sellest dokumentatsioonist selgitab, kuidas seda moodulit WDL-stiiliga artiklis või mallis kasutada. Kontrollige konkreetsete üksuste sisukorda.
Kasutus
muudaPõhikasutus
muudaLihtsamal kujul tuleb tabeli koostamiseks kasutada vaid mõnda parameetrit
Artiklis
muudaMida sa kirjutad | {{#invoke:Sporditabel|main|style=WDL
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Milline see välja näeb |
Uuendatud seisuga unknown. Allikas: [viide?]
|
Peamine käsk on lause {{#invoke:Sporditabel|main|style=WDL}}, mis põhimõtteliselt kutsub moodulit välja ja võimaldab teil kõike seadistada. Seejärel loetlete meeskondade positsioonid |team1=
, |team2=
jne nii paljude meeskondade jaoks, mida tabelis vajate. Soovi korral saate kasutada meeskonna täisnimesid ilma tühikuteta, kuid koodide kasutamine (nagu näites) võib selle lihtsamaks muuta. Nüüd saate määrata iga meeskonna võidud, viigid, kaotused, väravad ja väravad, kasutades |win_TTT=
, |draw_TTT=
, |loss_TTT=
, |gf_TTT=
ja |ga_TTT=
vastavalt (koos TTT asendatakse meeskonna koodiga). Kui te neid numbreid ei määratle, eeldatakse, et see on automaatselt 0. Hea tava on siiski need kaasata ja veerud joondada sobivate tühikutega (nagu näites), et koodi oleks lihtne lugeda. Viimaseks sammuks on nüüd defineerida parameetrid |name_TTT=
, mis määravad tabelis kuvatava nime. Siin saab kasutada ka wiki märgistust ja malle. Vaadake #Dating, et näha, kuidas värskendamise kuupäeva muuta.
Mallis
muudaMida sa kirjutad | {{#invoke:Sporditabel|main|style=WDL
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Milline see välja näeb |
Uuendatud seisuga unknown. Allikas: [viide?]
|
Märgistus on tegelikult sama, lisate ainult kaks rida. Rida |showteam={{{showteam}}}
on vajalik showtiimi parameetri edastamiseks mallikutsest (vt #Meeskonna esiletõstmine ja osaline tabel); |only_pld_pts={{{only_pld_pts}}}
on vajalik kärbitud tabelite edastamiseks (vt #Välimus); |show_matches={{{show_matches}}}
on vajalik mängutulemuste nähtavuse edastamiseks, vt #Matches. Malllehe tegeliku nimega |template_name=
loob V, T ja E nupud, mis viivad mallilehele (nii et pääsete sellele hõlpsasti igast artiklist, milles see sisaldub).
Kohandamine
muudaNendes tabelites saab kohandada mitmeid asju
Punktid
muudaMida sa kirjutad | {{#invoke:Sporditabel|main|style=WDL
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Milline see välja näeb |
Uuendatud seisuga unknown. Allikas: [viide?]
|
Vaikimisi annab võit 3 punkti, viik 1 punkti ja kaotus 0 punkti, siis saab need väärtused üle kirjutada vajalikuks |winpoints=
, |drawpoints=
ja |kaotuspunktid=
. Meeskonnad võivad hooaega alustada ka boonus- või karistuspunktidega, selle saab lisada, kasutades selle konkreetse meeskonna jaoks |adjust_points_TTT=
.
Päise valikud (punktid eest/vastu ja muude kohandatud päiste eest)
muudaMida sa kirjutad | {{#invoke:Sporditabel|main|style=WDL
| ||||||||||
Milline see välja näeb |
Uuendatud seisuga unknown. Allikas: [viide?]
|
Spordialadel, kus on pigem poolt- ja vastupunkte kui väravaid, lülitab seade |for_against_style=points
veerud poolt, vastu ja erinevuse asemel punktide kasutamisele. Veeru D (joonistus) sõnastust saab kohandada kasutades |draw_header=
ja meeskonna veeru sõnastust saab kohandada |team_header=
abil.
Veeru Grp (grupp) sõnastust saab kohandada kasutades |group_header=
samamoodi nagu joonise päises.
Kaotuste ja viikide järjekord
muudaMida sa kirjutad | {{#invoke:Sporditabel|main|style=WDL|loss_before_draw=true
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Milline see välja näeb |
Uuendatud seisuga unknown. Allikas: [viide?]
|
Vaikimisi on kahjud loetletud enne viike. Esmalt kaotuste loetlemiseks kasutage |loss_before_draw=true
.
Väravate suhe/värava keskmine
muudaMida sa kirjutad | {{#invoke:Sporditabel|main|style=WDL
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Milline see välja näeb |
Uuendatud seisuga unknown. Allikas: [viide?]
|
Kasutades |use_goal_ratio=yes
, kasutage eesmärkide vahe asemel eesmärgi suhet (värava keskmist).
Väravaprotsent
muudaMida sa kirjutad | {{#invoke:Sporditabel|main|style=WDL
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Milline see välja näeb |
Uuendatud seisuga unknown. Allikas: [viide?]
|
Kasutades |use_goal_percentage=yes
, kasutage eesmärgi erinevuse asemel eesmärgi protsenti.
Moodul:Sporditabel/doc/doc
Kasutusnäidis
muudaMooduli parameetreid saab paigutada erinevatesse järjekorda olenevalt redaktorist ja artiklist, kuid allpool on näide kasutamise kohta, mida saab moodulitabeli loomisel kopeerida.
Mida sa kirjutad | {{#invoke:Sporditabel|main|style=WDL
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Milline see välja näeb |
Uuendatud seisuga tulevik. Allikas: teadmata
Klassifikatsiooni reeglid: 1) punktid; 2) Väravate vahe; 3) löödud väravate arv; (A) Edenes järgmisesse vooru; (C) Meister; (Q) Qualified to the phase indicated; (R) Langes välja; (T) Qualified, but not yet to the particular phase indicated. |
-- 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 '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="Viigid">Vi</abbr>'
local group_head_text = Args['group_header'] or '<abbr title="Grupp">Grp</abbr>'
local team_head_text = Args['team_header'] or 'Võistkond'
local loss_first = Args['loss_before_draw'] or false
-- What to rank the teams by
local ranking_style = Args['ranking_style'] or 'Pkt'
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 'väravaid'
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=='v' or for_against_style=='väravate' or for_against_style=='väravaid' then
fa_letter = ''
fa_word_sing = 'Väravate'
fa_word_plur = 'Väravaid'
elseif for_against_style=='p' or for_against_style=='punkt' or for_against_style=='punktid' then
fa_letter = 'P'
fa_word_sing = 'Punkt'
fa_word_plur = 'Punktid'
elseif for_against_style=='none' then
hide_for_against = true
else
fa_letter = ''
fa_word_sing = 'Väravate'
fa_word_plur = 'Väravaid'
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,28,pos_label) -- Positsioon 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="Mänge">M</abbr>') -- Matches played col
if full_table then
tt = p_sub.colhead(tt,28,'<abbr title="Võidud">Võ</abbr>') -- Win col
if loss_first then
tt = p_sub.colhead(tt,28,'<abbr title="Kaotused">Ka</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="Kaotused">Ka</abbr>') -- Loss col
end
if not hide_for_against then
tt = p_sub.colhead(tt,28,'<abbr title="'..fa_word_plur..' löödud">'..fa_letter..'+</abbr>') -- For col
tt = p_sub.colhead(tt,28,'<abbr title="'..fa_word_plur..' lastud">'..fa_letter..'-</abbr>') -- Against col
if do_ratio then
tt = p_sub.colhead(tt,28,'<abbr title="'..fa_word_sing..' suhe">'..fa_letter..'R</abbr>') -- Ratio col
elseif do_percentage then
tt = p_sub.colhead(tt,28,'<abbr title="'..fa_word_sing..' protsent">%</abbr>') -- Percentage col
else
tt = p_sub.colhead(tt,28,'<abbr title="'..fa_word_sing..' vahe">'..fa_letter..'+/-</abbr>') -- Difference col
end
end
end
if show_points then
tt = p_sub.colhead(tt,28,'<abbr title="Punktid">Pkt</abbr>') -- Points col
elseif show_perc then
tt = p_sub.colhead(tt,36,'<abbr title="Võidu protsent">PRT</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 3
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['gf_'..team_code_ii]) or tonumber(Args['pf_'..team_code_ii]) or 0
local gaig = tonumber(Args['ga_'..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 + draws + losses
local points = win_points*wins + draw_points*draws + loss_points*losses + s_pts
-- 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 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 goal 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') -- Mängitud
if full_table then
table.insert(t,'| style="'..win_fw..bg_col..'" |'..wins..win_string..'\n') -- Võidud
if loss_first then
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..losses..'\n') -- Kaotused
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..draws..'\n') -- Viigid
else
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..draws..'\n') -- Viigid
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..losses..'\n') -- Kaotused
end
if not hide_for_against then
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..gfor..'\n') -- +
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..gaig..'\n') -- -
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..gcomp..'\n') -- +/-
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='Edenes järgmisesse vooru', C='Meister', D='Diskvalifitseeritud',
E='Elimineeritud', G='Külaline', H='Võõrustaja', O='Väljalangemismängude võitja', P='Edutatud', Q='Qualified to the phase indicated',
R='Langes välja', 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