Modul:Sports results: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan
update
Baris 2:
-- See documentation for details
 
require('ModuleModul:No globals')
 
local p = {}
Baris 9:
function p.main(frame)
-- Get the args, stripping out blank values
local getArgs = require('ModuleModul:Arguments').getArgs
local Args = getArgs(frame, {parentFirst = true})
 
Baris 29:
-- Number of legs
local legs = tonumber(Args['legs']) or 1
local multirowlegs = (Args['multirowlegs'] or 'no') ~= 'no'
 
-- Edit links if requested
local baselink = frame:getParent():getTitle()
Baris 36 ⟶ 38:
or ''
local edit_links = template_name == '' and ''
or require('Modul:Navbar')._navbar({
or frame:expandTemplate{ title = 'navbar',
template_name,
args = { mini=1, style='float:right', template_name} }
mini=1,
style='float:right'
})
 
-- Get the custom start point for the table (most will start by default at 1)
local top_pos = tonumber(Args['highest_pos']) or 1
Baris 46 ⟶ 51:
 
-- Load some other modules
local p_sub = require('ModuleModul:Sports table/sub')
 
-- Alternative syntax for team list
if Args['team_order'] and Args['team_order'] ~= '' then
Baris 56 ⟶ 61:
end
end
end
 
if Args['team_header_note'] then
notes_exist=true
orlocal note_string = frame:expandTemplate{ title = 'navbarefn',
args = { group='lower-alpha', Args['team_header_note']} }
team_header = team_header .. note_string
end
 
Baris 87 ⟶ 99:
t_return = p_sub.colhead(t_return,'auto', edit_links .. ' ' .. team_header)
-- Other columns passed to subfunction
t_return = p.header(t_return,Args,p_sub,N_teams,team_list,legs,multirowlegs)
t = t_return.tab_text
 
Baris 98 ⟶ 110:
 
-- Now create individual rows
ii_start = tonumber(Args['highest_row']) and (tonumber(Args['highest_row']) > top_pos) and tonumber(Args['highest_row']) or top_pos
for ii=top_pos,N_teams do
ii_end = tonumber(Args['lowest_row']) and (tonumber(Args['lowest_row']) < N_teams) and tonumber(Args['lowest_row']) or N_teams
for ii=top_posii_start,N_teamsii_end do
-- Get team info
team_code_ii = team_list[ii]
Baris 130 ⟶ 144:
note_id = '"table_note_'..team_note..rand_val..'"'
note_id_list[team_note] = note_id
-- Call refn template
note_string = frame:expandTemplate{ title = 'efn',
args = { group='lower-alpha', name=note_id, Args['note_'..team_note]} }
Baris 140 ⟶ 153:
-- Team names
table.insert(t,'|- \n') -- New row
table.insert(t,'! scope="row"'.. style(multirowlegs and ' rowspan="' .. legs or '')
.. 'style="'.. ii_style ..'"| '..team_name..'\n') -- Position number
 
-- Now include note to match results if needed
Baris 159 ⟶ 172:
-- It's the entry
-- Add random end for unique ID if more tables are present on article (which might otherwise share an ID)
note_id = '"table_note_'..l.."_"..team_code_ii..'_'..team_code_jj..rand_val..'"'
note_id_list[team_code_ii..'_'..team_code_jj] = note_id
note_string = frame:expandTemplate{ title = 'efn',
Baris 166 ⟶ 179:
-- Check for existence elsewhere
local note_local_num = team_list[match_note] or ii_end + 1
if note_id_list[match_note] or ((note_local_num >= ii_start) and (note_local_num <= ii_end)) then
-- ItReferencing existsan existing note
note_id = '"table_note_'..note_id_list[match_note..rand_val..'"'] -- IdentifierBorrow the existing identifier
note_string = frame:extensionTag{ name = 'ref',
args = { group = 'lower-alpha', name = note_id} }
elseif (note_local_num >= ii_start) and (note_local_num <= ii_end) then
else
-- Referencing a player note from a match note. In this case, we remove the leg part
-- Now define the identifier for this
-- Add random end for unique ID
note_id = '"table_note_'..match_note..rand_val..'"'
note_string = frame:extensionTag{ name = 'ref',
args = { group = 'lower-alpha', name = note_id} }
else
-- Referencing a different match note before its defined with its content
note_id = '"table_note_'..l.."_"..match_note..rand_val..'"'
note_id_list[match_note] = note_id
-- Call refn template
note_string = frame:expandTemplate{ title = 'efn',
args = { group='lower-alpha', name=note_id, Args['note_'..match_note]} }
Baris 188 ⟶ 204:
end
-- Then individual results
t = p.row(t,Args,N_teams,team_list,ii,ii_show,legs,multirowlegs)
end
 
Baris 200 ⟶ 216:
or 'unknown'
local source = Args['source']
or frame:expandTemplate{ title = 'citationbutuh neededrujukan',
args = { reason='NoTidak sourceada parameter definedsumber yang dimasukkan', date=os.date('%B %Y') } }
 
-- Create footer text
Baris 219 ⟶ 235:
if (Args['matches_style'] or '') == 'FBR' then
table.insert(t_footer, Args['team_header']
and '<br />Warna: Biru = tim tuandi rumahkolom kiri menang; Kuning = seri; Merah = tim tamudi baris atas menang.'
or '<br />Warna: Biru = tim tuan rumah menang; Kuning = seri; Merah = tim tamu menang.')
elseif (Args['matches_style'] or '') == 'BSR' then
table.insert(t_footer, Args['team_header']
and '<br />Warna: Biru = tim tuandi rumahkolom kiri menang; KuningMerah = seri;tim Merahdi = timbaris tamuatas menang.'
or '<br />Warna: Biru = tim tuan rumah menang; Kuning = seri; Merah = tim tamu menang.')
end
if Args['a_note'] then
table.insert(t_footer, '<br />Untuk pertandingan yang akan datangmendatang, huruf "a" menandakan tersedianyaadanya artikel mengenai pertandinganpersaingan antara dua tim tersebutpeserta.')
end
if Args['ot_note'] then
table.insert(t_footer, '<br />MatchesPertandingan withdengan backgroundwarna inlatar abelakang lighterlebih colourterang wereartinya decidedditentukan aftermelalui overtimeperpanjangan waktu.')
end
 
local templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = 'Modul:Sports results/styles.css' }
}
 
-- Add notes (if applicable)
if notes_exist then
table.insert(t_footer,'<br>NotesCatatan:')
t_footer = templatestyles .. '<div class="reflistsports-results-notes">'..table.concat(t_footer)..'</div>'
-- As reflist size text
t_footer = '<div class="reflist">'..table.concat(t_footer)..'</div>'
t_footer = t_footer..frame:expandTemplate{ title = 'notelist', args = { group='lower-alpha'} }
else
t_footer = templatestyles .. '<div class="reflistsports-results-notes">'..table.concat(t_footer)..'</div>'
-- As reflist size text
t_footer = '<div class="reflist">'..table.concat(t_footer)..'</div>'
end
 
-- Add footer to main text table
table.insert(t,t_footer)
 
-- Rewrite anchor links
for k=1,#t do
Baris 253 ⟶ 271:
end
end
 
return '<div style="overflow:hidden">'
.. '<div class="noresize overflowbugx" style="overflow:auto">\n'
Baris 271 ⟶ 289:
elseif ss == 'flag' then
n = mw.ustring.gsub(n, '(<span class="flagicon">%s*%[%[[Ff][Ii][Ll][Ee]:[^%[%]]*link=)[^%|%[%]]*(%]%][^<>]*</span>)%s*%[%[([^%[%]%|]*)%|[^%[%]]*%]%]', '%1%3%2')
n = mw.ustring.gsub(n, '.*(<span class="flagicon">%s*%[%[[Ff][Ii][Ll][Ee]:[^%[%]]*%]%][^<>]*</span>).*', '%1')
n = mw.ustring.gsub(n, '&nbsp;(</span>)', '%1')
end
end
 
-- replace link text in name with team abbr if possible
if n and t and n:match('(%[%[[^%[%]]*%]%])') then
n = mw.ustring.gsub(n, '(%[%[[^%|%]]*%|)[^%|%]]*(%]%])', '%1' .. t .. '%2')
n = mw.ustring.gsub(n, '(%[%[[^%|%]]*)(%]%])', '%1|' .. t .. '%2')
n = mw.ustring.gsub(n, '(%[%[[^%|%]]*%|)([A-Z][A-Z][A-Z])(%]%])&nbsp;<span[^<>]*>%([A-Z][A-Z][A-Z]%)</span>', '%1%2%3')
return n
end
Baris 298 ⟶ 317:
else
wc, lc, tc = '#BBF3FF', '#FBB', '#FFB' -- blue1, red1, yellow1
end
 
-- check for override
if s:match('^%s*<span%s%s*style%s*=["\'%s]*background[%-colr]*%s*:([^\'";<>]*).-$') then
local c = mw.ustring.gsub(s,'^%s*<span%s%s*style%s*=["\'%s]*background[%-colr]*%s*:([^\'";<>]*).-$', '%1')
return c
end
 
Baris 306 ⟶ 331:
if s:match('^%s*%[[^%[%]%s]*%s([^%[%]]*)%]') then
s = s:match('^%s*%[[^%[%]%s]*%s([^%[%]]*)%]')
end
if s:match('<span[^<>]*>(.-)</span>') then
s = s:match('<span[^<>]*>(.-)</span>')
end
 
-- get the scores
s1 = tonumber(mw.ustring.gsub( s or '',
'^%s*([%d%.][%d%.]*)%s*–%s*([%d%.][%d%.]*).*', '%1' ) or '') or ''
s2 = tonumber(mw.ustring.gsub( s or '',
'^%s*([%d%.][%d%.]*)%s*–%s*([%d%.][%d%.]*).*', '%2' ) or '') or ''
 
-- return colouring if possible
Baris 323 ⟶ 351:
 
local function format_score(s)
s = mw.ustring.gsub(s or '', '^%s*([%d%.]+)%s*[–−—%-]%s*([%d%.]+)', '%1–%2')
s = mw.ustring.gsub(s, '^%s*([%d%.]+)%s*&[MmNn][Dd][Aa][Ss][Hh];%s*([%d%.]+)', '%1–%2')
s = mw.ustring.gsub(s, '^%s*(%[%[[^%[%]]*%|[%d%.]+)%s*%-%s*([%d%.]+)', '%1–%2')
s = mw.ustring.gsub(s, '^%s*(%[[^%[%]%s]*%s+[%d%.]+)%s*%-%s*([%d%.]+)', '%1–%2')
s = mw.ustring.gsub(s, '^%s*(%[%[[^%[%]]*%|[%d%.]+)%s*&[MmNn][Dd][Aa][Ss][Hh];%s*([%d%.]+)', '%1–%2')
s = mw.ustring.gsub(s, '^%s*(%[[^%[%]%s]*%s+[%d%.]+)%s*&[MmNn][Dd][Aa][Ss][Hh];%s*([%d%.]+)', '%1–%2')
return s
end
 
function p.header(tt,Args,p_sub,N_teams,team_list,legs,multirowlegs)
local ii, team_code_ii, short_name
legs = legs or 1
Baris 343 ⟶ 371:
 
for l=1,legs do
if multirowlegs and l > 1 then
break
end
for ii=top_pos,N_teams do
team_code_ii = team_list[ii]
Baris 354 ⟶ 385:
end
 
function p.row(tt,Args,N_teams,team_list,ii,ii_show,legs,multirowlegs)
-- Note ii is the row number being shown
local jj, fw, bg, result, result_extra, team_code_ii, team_code_jj
Baris 367 ⟶ 398:
local top_pos = tonumber(Args['highest_pos']) or 1
for l=1,legs do
if multirowlegs and l > 1 then
table.insert(tt,'|- \n') -- New row
end
for jj=top_pos,N_teams do
team_code_jj = team_list[jj]
Baris 407 ⟶ 441:
if result_extra == 'OT' then
bg = 'background:' .. get_score_background(result,'level3') .. ';'
elseif result_extra == 'OTL' then
bg = 'background:' .. get_score_background('0–1','level3') .. ';'
elseif result_extra == 'OTW' then
bg = 'background:' .. get_score_background('1–0','level3') .. ';'
elseif result_extra == 'L' then
bg = 'background:' .. get_score_background('0–1','') .. ';'
elseif result_extra == 'W' then
bg = 'background:' .. get_score_background('1–0','') .. ';'
else
bg = 'background:' .. get_score_background(result,'') .. ';'
Baris 415 ⟶ 457:
end
end
 
return tt
end