Modul:Sports table/WL
Modul ini telah dinilai sedia untuk kegunaan am. Ia telah mencapai bentuk yang matang dan dianggap bebas dari pepijat dan sedia untuk kegunaan di mana-mana laman yang sesuai. Ia juga sedia untuk disebut pada laman-laman bantuan dan sumber-sumber Wikipedia lain supaya pengguna-pengguna baru dapat belajar penggunaannya. Untuk mengurangkan beban pelayan dan output buruk, ia patut diperbaikkan melalui uji kaji kotak pasir berbanding menyunting berulang kali secara cuba-dan-ralat. |
Ini gaya berasaskan-Lua Modul:Sports table yang dimaksudkan untuk membina kumpulan dan liga jadual untuk pertandingan dengan kemenangan-kerugian format. Ambil perhatian bahawa modul ini digunakan secara meluas, supaya menguji perubahan potensi ketat dalam kotak pasir dan sila pastikan konsensus wujud sebelum melaksanakan perubahan besar. Selebihnya dokumentasi ini menerangkan bagaimana untuk menggunakan modul ini dengan gaya WL dalam satu artikel atau templat, semak jadual kandungan untuk item tertentu.
Penggunaan
suntingPenggunaan Asas
suntingPada bentuk ianya yang paling mudah hanya beberapa parameter perlu digunakan untuk membina jadual
Dalam artikel
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Apa yang ia kelihatan seperti |
Kemaskini perlawanan dimainkan pada tidak diketahui. Sumber: [perlu rujukan]
|
Arahan utama adalah {{#invoke:Sports table|main|style=WL}} kenyataan yang pada asasnya panggilan modul dan membolehkan anda untuk menetapkan segala-galanya. Kemudian anda senarai kedudukan pasukan sebagai |team1=
, |team2=
, dan lain-lain untuk bagaimanapun banyak pasukan yang anda perlukan dalam jadual. Anda boleh menggunakan nama-nama pasukan penuh di sana tanpa ruang jika anda mahu, tetapi menggunakan kod (seperti contoh) boleh membuat lebih mudah. Bagi setiap pasukan anda kini menentukan kemenangan, kerugian, matlamat dan gol melawan dengan menggunakan |win_TTT=
, |loss_TTT=
, |gf_TTT=
dan |ga_TTT=
masing-masing (dengan TTT digantikan dengan kod pasukan). Jika anda tidak menentukan nombor-nombor ini, ia secara automatik dianggap 0. Ia adalah amalan yang baik walaupun untuk memasukkan mereka juga dan untuk menyelaraskan ruangan menggunakan ruang yang sesuai (seperti contoh), supaya kod yang mudah untuk dibaca. Langkah terakhir sekarang ialah untuk menentukan |name_TTT=
parameter yang menentukan nama apa yang ditunjukkan dalam jadual, anda boleh menggunakan wiki markup dan template di sini juga. Lihat #Dating untuk melihat bagaimana untuk menukar tarikh kemas kini.
Dalam templat
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Apa yang ia kelihatan seperti |
Kemaskini perlawanan dimainkan pada tidak diketahui. Sumber: [perlu rujukan]
|
Penanda adalah berkesan yang sama, anda hanya menambah dua baris. garis |showteam={{{showteam}}}
, diperlukan untuk mengemukakan parameter showteam dari panggilan templat (lihat #Team highlighting and partial table); |only_pld_pts={{{only_pld_pts}}}
diperlukan untuk mengemukakan jadual terpotong, (lihat #Appearance); |show_matches={{{show_matches}}}
diperlukan untuk mengemukakan Perlawanan hasil penglihatan, lihat #Matches. |template_name=
dengan nama sebenar Templat-halaman, mencipta V, T dan butang E yang mengandungi pautan ke laman templat (jadi anda boleh dengan mudah mencapai dari apa-apa barang itu termasuk dalam).
Ubahsuaian
suntingBeberapa perkara yang boleh disesuaikan dalam jadual berkenaan
Mata, kemenangan atau peratusan
suntingSecara lalai pasukan di kedudukan oleh mata, yang boleh diselaraskan seperti berikut:
Apa yang anda taip | {{#invoke:Sports table|main|style=WL
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Apa yang ia kelihatan seperti |
Kemaskini perlawanan dimainkan pada tidak diketahui. Sumber: [perlu rujukan]
|
Sebagai lalai kemenangan yang bernilai 2 mata dan kalah 1 mata, nilai-nilai ini boleh ditulis ganti untuk apa yang anda perlukan oleh |winpoints=
dan |losspoints=
. Pasukan juga boleh memulakan musim ini dengan bonus atau penalti mata, ini boleh dimasukkan dengan menggunakan |adjust_points_TTT=
untuk pasukan tertentu.
Sebagai pasukan alternatif juga boleh disenaraikan oleh kemenangan (set |ranking_style=wins
atau |ranking_style=percentage
masing-masing)
Permainan di sebalik
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Apa yang ia kelihatan seperti |
Kemaskini perlawanan dimainkan pada tidak diketahui. Sumber: [perlu rujukan]
|
Permainan di sebalik (Games behind) boleh ditambah ke jadual serta dengan menetapkan |show_GB=yes
, per lalai ini akan berkenaan dengan pasukan pertama diletakkan. Untuk mempunyai GB berkenaan dengan suatu pasukan yang di kedudukan N, ditetapkan |GB_team=N
.
Pilihan tajuk (matlamat / mata / menentang dan tajuk tersuai lain)
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
| |||||||||
Apa yang ia kelihatan seperti |
Kemaskini perlawanan dimainkan pada tidak diketahui. Sumber: [perlu rujukan]
|
Untuk sukan dengan mata dan menentang bukannya matlamat, menetapkan |for_against_style=points
beralih untuk, menentang dan kolum berbeza untuk menggunakan mata sebaliknya. |for_against_style=none
mengeluarkan kolum ini sepenuhnya. Untuk sukan dengan bingkai dan menentang bukannya gol atau mata, menetapkan |for_against_style=frames
beralih untuk, menentang dan kolum berbeza untuk menggunakan mata sebaliknya. |for_against_style=none
mengeluarkan kolum ini sepenuhnya.
Nisbah gol / purata gol
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Apa yang ia kelihatan seperti |
Kemaskini perlawanan dimainkan pada tidak diketahui. Sumber: [perlu rujukan]
|
Menggunakan |use_goal_ratio=yes
menggunakan nisbah gol (purata gol) dan bukannya gol yang berbeza.
Pilihan nota kaki
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
|
Apa yang ia kelihatan seperti | Ralat Lua: bad argument #1 to 'formatNum' (NaN). |
Maklumat nota kaki boleh disesuaikan (walaupun nota dan status akan dimasukkan secara automatik jika mereka dipanggil; lihat XXX dan YYY). Tarikh kemas kini ditetapkan oleh |update=
, lihat di bawah untuk maklumat lanjut. Jika tiada punca diberi tag petikan diperlukan dipaparkan, |source=
boleh menyediakan pautan sebenar. Hasil pengelasan boleh ditunjukkan dengan |class_rules=
, sama ada secara langsung atau sebagai wikilink kepada seksyen peraturan pemutus. menggunakan |only_pld_pts=no_hide_class_rules
menyekat peraturan klasifikasi (ini hanya boleh digunakan dalam panggilan templat apabila beberapa kumpulan diringkaskan dalam satu halaman dan kaedah-kaedah yang disenaraikan di tempat lain pada laman tersebut).
Bertarikh
suntingPenerangan lalai adalah Perlawanan (es), ini boleh diubah dengan memanggil |matches_text=
bagi apa-apa tempoh lain.
- Musim aktif
Apa yang anda taip | {{#invoke:Sports table|main|style=WL
| |||||||||
Apa yang ia kelihatan seperti |
Kemaskini perlawanan dimainkan pada 1 Januari 1900. Sumber: [perlu rujukan]
|
Apabila musim aktif, nota kaki hendaklah menyatakan tarikh perlawanan yang terakhir dimainkan yang dimasukkan dalam jadual. Ini boleh dicapai dengan menetapkan |update=date
.
- Musim telah lengkap
Apa yang anda taip | {{#invoke:Sports table|main|style=WL
| |||||||||
Apa yang ia kelihatan seperti |
Kemaskini perlawanan dimainkan pada selesai. Sumber: [perlu rujukan]
|
Apabila semua perlawanan telah dimainkan, musim itu selesai dan garis kemas kini boleh dikeluarkan dengan menetapkan |update=complete
.
- Musim Masa Depan
Apa yang anda taip | {{#invoke:Sports table|main|style=WL
| |||||||||
Apa yang ia kelihatan seperti |
Kemaskini perlawanan dimainkan pada masa depan. Sumber: [perlu rujukan]
|
Sebelum apa-apa permainan yang dimainkan, tarikh perlawanan pertama perlu dinyatakan dengan menggunakan |update=future
dan menetapkan tarikh permulaan oleh |start_date=
.
Penampilan
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
|
Apa yang ia kelihatan seperti | Ralat Lua: bad argument #1 to 'formatNum' (NaN). |
Apa yang anda taip | {{#invoke:Sports table|main|style=WL
|
Apa yang ia kelihatan seperti | Ralat Lua: bad argument #1 to 'formatNum' (NaN). |
Apa yang anda taip | {{#invoke:Sports table|main|style=WL
|
Apa yang ia kelihatan seperti | Ralat Lua: bad argument #1 to 'formatNum' (NaN). |
Hanya kedudukan, pasukan, perlawanan dan mata kolum boleh dipaparkan dengan mendefinisikan |only_pld_pts=yes
(or y, t, betul atau 1 atau variasi huruf besar daripada mereka); |only_pld_pts=no_hide_class_rules
menyekat peraturan klasifikasi sahaja (ini hanya boleh digunakan dalam panggilan templat apabila beberapa kumpulan diringkaskan dalam satu halaman dan kaedah-kaedah yang disenaraikan di tempat lain pada laman tersebut). Garis A boleh ditambah di antara bahagian meja (jika dikehendaki) dengan menambah |splitN=
dengan N kedudukan bawah yang bar perlu dipaparkan. (Perhatikan bahawa bar ini tidak akan dipaparkan untuk kedudukan bahagian bawah dalam jadual). A lebar adat tiang pasukan boleh ditetapkan oleh |teamwidth=
, contohnya apabila beberapa kumpulan wujud dalam satu kejohanan dan anda mahu memaksa lebar yang sama pada semua kumpulan. Pengepala ruangan kedudukan boleh disesuaikan dengan |postitle=
dan label kedudukan oleh |pos_TTT=
bagi setiap pasukan. Apabila berbilang jadual yang membandingkan pasukan dari pelbagai kumpulan, kumpulan itu juga boleh disenaraikan dengan menetapkan |show_groups=yes
(or y, t, betul atau 1 atau variasi huruf besar daripada mereka) dan menggunakan |group_TTT=
untuk menunjukkan apa yang pasukan datang dari apa kumpulan.
Penonjolan pasukan dan jadual separa
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
|
Apa yang ia kelihatan seperti | Ralat Lua: bad argument #1 to 'formatNum' (NaN). |
Apabila menggunakan jadual pada pasukan (musim) halaman, anda mungkin mahu untuk menyerlahkan pasukan (dan mungkin hanya menunjukkan sebahagian daripada jadual), terutamanya selepas panggilan templat jadual liga yang panjang. Pasukan TTT diserlahkan oleh |showteam=TTT
. Sebahagian terhad jadual ditunjukkan oleh |show_limit=
, dengan bilangan yang menunjukkan nombor kedudukan untuk menunjukkan (jika ini adalah nombor genap, dan ia adalah di tengah-tengah meja tersebut, bilangan ini akan dibulatkan kepada angka ganjil di sebelah menunjukkan simetri di atas dan di bawah).
Keputusan dan status
suntingKeputusan menandakan
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
|
Apa yang ia kelihatan seperti | Ralat Lua: bad argument #1 to 'formatNum' (NaN). |
Keputusan kedudukan meja boleh ditunjukkan oleh bar berwarna dan teks menunjukkan hasilnya. Pengepala turus ini ditakrifkan oleh |res_col_header=
dengan nilai-nilai yang telah ditetapkan Q, QR, P, PQR, PR dan R (yang menunjukkan pelbagai kombinasi kenaikan pangkat, kelayakan dan penyingkiran), apa-apa catatan lain daripada kod-kod yang tepat akan mencetak seperti yang masuk dalam pengepala lajur. Dengan N kedudukan |resultN=
mengisytiharkan kod (atau kata-kata jika anda mahu bahawa bukan) untuk ruangan keputusan. Sekarang apabila RRR adalah ruangan keputusan, warna ditakrifkan oleh |col_RRR=
. Warna-warna green1, green2, green3, green4, blue1, blue2, blue3, blue4, yellow1, yellow2, yellow3, yellow4, red1, red2, red3, red4, black1, black2, black3 dan black4 adalah yang telah ditetapkan dan harus digunakan secara pilihan setiap konsensus pada WT:FOOTY (anda boleh menggunakan sama ada warna html, atau kod warna RGB sebaliknya jika anda perlu [ini adalah tidak digalakkan walaupun, kerana ia mungkin melanggar WP:COLOR]). Teks dalam ruangan keputusan itu kini memberi oleh |text_RRR=
, yang boleh (dan sepatutnya) pautan kepada artikel pertandingan berkenaan.
Konsensus juga menggunakan warna dengan cara yang berikut: Green harus digunakan untuk acara positif tingkat atas (kenaikan pangkat, kelayakan, mara ke pusingan seterusnya), biru untuk peristiwa-peristiwa positif kedua-peringkat (promosi play-off apabila langsung promosi wujud, bermain-kira apabila kelayakan langsung wujud, kejohanan benua menengah), merah untuk bahagian bawah peringkat peristiwa negatif (penyingkiran) dan kuning untuk acara-acara peringkat lain. Di samping itu, warna tahap rendah perlu digunakan apabila pasukan melayakkan diri untuk pusingan yang berbeza (dengan tahap yang lebih rendah yang bersamaan dengan catatan dalam pusingan yang lebih rendah [green1 pertama, kemudian green2, dan lain-lain].) Black perlu digunakan apabila pasukan tidak bermain satu musim penuh dan mereka keputusan dihapuskan atau tidak sah. Konsensus ini wujud untuk mempunyai penampilan meja seragam di seluruh Wikipedia. Di samping itu, beberapa wikiprojects mempunyai garis panduan yang lebih terperinci:
Status menandakan
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
|
Apa yang ia kelihatan seperti | Ralat Lua: bad argument #1 to 'formatNum' (NaN). |
Apa yang anda taip | {{#invoke:Sports table|main|style=WL
|
Apa yang ia kelihatan seperti | Ralat Lua: bad argument #1 to 'formatNum' (NaN). |
Status promosi / kelayakan / penyingkiran pasukan yang boleh ditunjukkan oleh |status_TTT=
dengan huruf yang dinyatakan di atas (walaupun hanya yang digunakan untuk gaya ini adalah seperti di bawah meja). Huruf-huruf yang akan muncul di sebelah pasukan dalam perintah itu diberikan. Mana-mana surat yang dipanggil di dalam jadual di akan secara automatik dijelaskan mengikut abjad dalam nota kaki.
Surat-surat ini boleh digunakan untuk semua senario seperti yang ditunjukkan oleh contoh peringkat kumpulan berikut dengan 4 pasukan yang bermain 3 perlawanan di mana kemajuan pertama secara langsung, pasukan kedua akan pergi bermain-off dan baki dua pasukan yang telah dihapuskan:
- Pasukan mula keluar tanpa huruf status
- Pasukan yang terkeluar status Mendapatkan (E)
- Pasukan yang masih boleh menyelesaikan lebih buruk daripada kedua (dan mungkin dihapuskan) akan kekal tanpa status
- Pasukan yang akan menghabiskan sekurang-kurangnya kedua akan Mendapatkan status (T)
- Pasukan yang akan menyelesaikan untuk memastikan kedua akan Mendapatkan status (Q)
- Pasukan yang akan menyelesaikan untuk memastikan pertama akan Mendapatkan status (A)
Jika senario ini tidak mencukupi, beberapa gaya mempunyai huruf liar L (ditandai dengan tanda tanya di Gambaran Keseluruhan). Mereka perlu disertakan dengan |status_text_L=
untuk menunjukkan status yang bukan piawai.
Kebanyakan gaya membolehkan huruf ini diletakkan selepas nama pasukan atau sebelum, ditetapkan |status_pos=after
atau |status_pos=before
masing-masing, nilai lalai boleh berbeza dan penggunaan ia ini berbeza antara sukan atau wilayah.
Nota
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
|
Apa yang ia kelihatan seperti | Ralat Lua: bad argument #1 to 'formatNum' (NaN). |
Apabila nota hadir, mereka secara automatik ditambah ke nota kaki. Nota-nota yang berikut boleh didapati untuk pasukan dengan |note_TTT=
untuk nota untuk satu pasukan, apabila nota ini adalah kod pasukan dengan nota yang ditetapkan, mereka akan berkongsi nota. Keputusan boleh mempunyai nota dengan |note_res_RRR=
dan tajuk hasil yang boleh mempunyai nota dengan |note_header_res=
. Keputusan mengikat (tiebreakers) satu-lawan-satu disenaraikan dalam ruang mata dan boleh dimasukkan dengan |hth_TTT=
, yang boleh dikongsi antara pasukan sebagai dengan semua nota guna.
Perlawanan
suntingApa yang anda taip | {{#invoke:Sports table|main|style=WL
|
Apa yang ia kelihatan seperti | Ralat Lua: bad argument #1 to 'formatNum' (NaN). |
Senarai Perlawanan boleh ditambah oleh dipaparkan dengan mendefinisikan |show_matches=yes
(or y, t, betul atau 1 atau variasi daripada mereka huruf besar). Pengepala lajur untuk keputusan perlawanan ditakrifkan oleh |short_TTT=
untuk pasukan TTT. Keputusan bagi TTT permainan vs SSS kini boleh menjadi masukan oleh |match_TTT_SSS=
. Perlawanan masa depan boleh disenaraikan dengan tarikh mereka (mungkin antara tanda kecil) atau mereka boleh dibiarkan kosong. (Perhatikan bahawa ini dipanggil Module:Sports results untuk membina jadual perlawanan.) Nota A boleh ditambah kepada hasil yang menggunakan |match_TTT_SSS_note=
, nota ini boleh dikongsi dengan nota pasukan TTT dengan menetapkan |match_TTT_SSS_note=TTT
apabila |note_TTT=
ditetapkan. Lebar Perlawanan ruangan boleh disesuaikan dengan menetapkan |match_col_width=
mengikut lebar yang diingini.
Ralat petik: Tag <ref>
wujud untuk kumpulan bernama "lower-alpha", tetapi tiada tag <references group="lower-alpha"/>
yang berpadanan disertakan
-- Style for football tables
local pp = {}
function pp.header(t,Args,p_sub,pos_label,group_col,VTE_text,full_table,results_header_txt)
-- Create table header
-- Pre stuff
local team_width = Args['teamwidth'] or '190'
local sort_text = ''
local sort_table_val = Args['sortable_table'] or 'no'
sort_table_val = string.lower(sort_table_val)
if sort_table_val=='y' or sort_table_val=='yes' or sort_table_val=='t' or sort_table_val=='true' or sort_table_val=='1' then
sort_text = 'sortable'
end
table.insert(t,'{|class="wikitable '..sort_text..'" style="text-align:center;"\n') -- Open table
-- Custom header options
-- 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 or frames instead of goals for/against
local for_against_style = Args['for_against_style'] or 'goals'
local fa_letter, fa_word_sing, fa_word_plur
local hide_for_against = false
for_against_style = string.lower(for_against_style)
if for_against_style=='g' or for_against_style=='goal' or for_against_style=='goals' then
fa_letter = 'G'
fa_word_sing = 'Goal'
fa_word_plur = 'Goals'
elseif for_against_style=='f' or for_against_style=='frame' or for_against_style=='frames' then
fa_letter = 'F'
fa_word_sing = 'Frame'
fa_word_plur = 'Frames'
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 = 'G'
fa_word_sing = 'Goal'
fa_word_plur = 'Goals'
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
-- First convert to lower case if it is a string
use_ratio_val = string.lower(use_ratio_val)
if use_ratio_val=='y' or use_ratio_val=='yes' or use_ratio_val=='t' or use_ratio_val=='true' or use_ratio_val=='1' then
do_ratio = true
end
-- Use games behind header
local show_GB = Args['show_GB'] or 'no'
local do_GB = false
show_GB = string.lower(show_GB)
if show_GB=='y' or show_GB=='yes' or show_GB=='t' or show_GB=='true' or show_GB=='1' then
do_GB = 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,36,pos_label) -- Position col
-- Add group header
if full_table and group_col then
tt = p_sub.colhead(tt,36,'<abbr title="Group">Grp</abbr>') -- Group col
end
tt = p_sub.colhead(tt,team_width,'Team'..VTE_text) -- Team col
tt = p_sub.colhead(tt,36,'<abbr title="Played">Pld</abbr>') -- Matches played col
if full_table then
tt = p_sub.colhead(tt,36,'<abbr title="Won">W</abbr>') -- Win col
tt = p_sub.colhead(tt,36,'<abbr title="Lost">L</abbr>') -- Loss col
if not hide_for_against then
tt = p_sub.colhead(tt,36,'<abbr title="'..fa_word_plur..' for">'..fa_letter..'F</abbr>') -- For col
tt = p_sub.colhead(tt,36,'<abbr title="'..fa_word_plur..' against">'..fa_letter..'A</abbr>') -- Against col
if not do_ratio then
tt = p_sub.colhead(tt,36,'<abbr title="'..fa_word_sing..' difference">'..fa_letter..'D</abbr>') -- Difference col
else
tt = p_sub.colhead(tt,36,'<abbr title="'..fa_word_sing..' ratio">'..fa_letter..'R</abbr>') -- Ratio col
end
end
end
if show_points then
tt = p_sub.colhead(tt,36,'<abbr title="Points">Pts</abbr>') -- Points col
elseif show_perc then
tt = p_sub.colhead(tt,36,'<abbr title="Win percentage">Pct</abbr>') -- Percentage col
end
if full_table then
if do_GB then -- Games behind header
tt = p_sub.colhead(tt,36,'<abbr title="Games behind">GB</abbr>')
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')
-- Get custom/default options for in table
local win_points = tonumber(Args['winpoints']) or 2
local loss_points = tonumber(Args['losspoints']) or 1
-- Get some input
local wins = tonumber(Args['win_'..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 + losses
local points = win_points*wins + loss_points*losses + s_pts
local win_perc = mm._precision_format(wins / matches, 3)
if matches == 0 then win_perc = '—' end -- Escape for zero matches
-- 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
-- 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 and against
local gcomp
-- Whether to use goal ratio (goal average) instead
local use_ratio_val = Args['use_goal_ratio'] or 'no'
local skip_sign
-- First convert to lower case if it is a string
use_ratio_val = string.lower(use_ratio_val)
if use_ratio_val=='y' or use_ratio_val=='yes' or use_ratio_val=='t' or use_ratio_val=='true' or use_ratio_val=='1' then
-- Now it is the goal ratio/goal average
if gaig == 0 then
gcomp = '—'
else
gcomp = mm._precision_format(gfor / gaig, 3)
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
-- Show games behind
local show_GB = Args['show_GB'] or 'no'
local do_GB = false
local GB_text = '—'
show_GB = string.lower(show_GB)
if show_GB=='y' or show_GB=='yes' or show_GB=='t' or show_GB=='true' or show_GB=='1' then
do_GB = true
local GB_team_no = tonumber(Args['GB_team']) or 1
if ii == GB_team_no then
-- Do nothing, it's vs this team
else
local wins_GB = tonumber(Args['win_'..team_list[GB_team_no]]) or 0
local losses_GB = tonumber(Args['loss_'..team_list[GB_team_no]]) or 0
local GB_num = (wins_GB-wins+losses-losses_GB)/2
-- Display options
if GB_num >0 then
-- Indicates trailing GB_team
GB_text = GB_num
elseif GB_num == 0 then
-- Equal, do nothing to get dash
else
-- Ahead of GB team, should be noted by plus (instead of minus that comes from formula)
GB_text = '+'..-GB_num
end
end
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
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..losses..'\n') -- Lost
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
end
if rank_points then
-- Add − for negative point totals
table.insert(t,'| style="font-weight: bold;'..bg_col..'" | ')
if points<0 then
table.insert(t,'−'..-points..hth_string)
else
table.insert(t,points..hth_string)
end
table.insert(t,'\n')
elseif rank_perc then
table.insert(t,'| style="font-weight: bold;'..bg_col..'" | '..win_perc..hth_string..'\n')
end
if do_GB then
table.insert(t,'| style="'..ii_fw..bg_col..'" |'..GB_text..'\n') -- GB
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',
X='?', Y='?', Z='?'}
status_called = { A=false, C=false, D=false, E=false, H=false, O=false, P=false,
Q=false, R=false, T=false, X=false, Y=false, Z=false}
local status_letters = 'ACDEHOPQRTXYZ'
-- 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