Difference between revisions of "Module:Sports table/sub/sandbox"
< Module:Sports table | sub
Jump to navigation
Jump to search
blackwiki>Frietjes |
m (8 revisions imported) |
||
(3 intermediate revisions by one other user not shown) | |||
Line 29: | Line 29: | ||
local multiref = 1 | local multiref = 1 | ||
local hth_local_table = mw.text.split(hth_local, '%s*,%s*') | local hth_local_table = mw.text.split(hth_local, '%s*,%s*') | ||
− | if (#hth_local_table > | + | if (#hth_local_table > 1) then |
for k, hth_loc in ipairs(hth_local_table) do | for k, hth_loc in ipairs(hth_local_table) do | ||
− | |||
multiref = multiref * (Args['hth_' .. hth_loc] and 1 or 0) | multiref = multiref * (Args['hth_' .. hth_loc] and 1 or 0) | ||
end | end | ||
Line 50: | Line 49: | ||
hth_id_list[team_code_ii] = hth_id | hth_id_list[team_code_ii] = hth_id | ||
-- Call refn template | -- Call refn template | ||
− | hth_string = hth_string .. frame:expandTemplate{ title = 'efn', args = { group=' | + | hth_string = hth_string .. frame:expandTemplate{ title = 'efn', args = { group='lower-alpha', name=hth_id, hth_loc} } |
else | else | ||
-- Option 2 | -- Option 2 | ||
− | hth_local_num = team_list[hth_loc] | + | hth_local_num = team_list[hth_loc] or -1 |
if hth_id_list[hth_loc] or ((hth_local_num >= ii_start) and (hth_local_num <= ii_end)) then | if hth_id_list[hth_loc] or ((hth_local_num >= ii_start) and (hth_local_num <= ii_end)) then | ||
-- Option 2a | -- Option 2a | ||
Line 63: | Line 62: | ||
hth_id_list[hth_loc] = hth_id | hth_id_list[hth_loc] = hth_id | ||
-- Call refn template | -- Call refn template | ||
− | hth_string = hth_string .. frame:expandTemplate{ title = 'efn', args = { group=' | + | hth_string = hth_string .. frame:expandTemplate{ title = 'efn', args = { group='lower-alpha', name=hth_id, Args['hth_'..hth_loc]} } |
end | end | ||
end | end | ||
Line 70: | Line 69: | ||
return {str=hth_string, list=hth_id_list, notes_exist=notes_exist} | return {str=hth_string, list=hth_id_list, notes_exist=notes_exist} | ||
+ | end | ||
+ | |||
+ | function ppp.status(Args, status_code) | ||
+ | -- 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_called = {} | ||
+ | local status_letters = (Args['status_order'] or '') .. 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' | ||
+ | if type(status_code) ~= 'table' then status_code = {} end | ||
+ | if #status_code < 1 then | ||
+ | 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'} | ||
+ | end | ||
+ | |||
+ | -- Status position (before or after read and default) | ||
+ | local stat_pos_val = string.lower(Args['status_pos'] or '') | ||
+ | local status_position = 'after' -- Default location | ||
+ | if stat_pos_val=='before' then | ||
+ | status_position = 'before' | ||
+ | elseif stat_pos_val=='after' then | ||
+ | status_position = 'after' | ||
+ | end | ||
+ | -- Read in custom status options | ||
+ | for l in mw.text.gsplit(status_letters, '') do | ||
+ | status_called[l] = false | ||
+ | status_code[l] = status_code[l] or '?' | ||
+ | status_letters = mw.ustring.gsub(status_letters, '(' .. l ..'.-)' .. l, '%1') | ||
+ | |||
+ | if Args['status_text_' .. l] then | ||
+ | status_code[l] = Args['status_text_' .. l] | ||
+ | end | ||
+ | end | ||
+ | |||
+ | return {code=status_code, called=status_called, letters=status_letters, position=status_position} | ||
end | end | ||
return ppp | return ppp |
Latest revision as of 11:08, 29 September 2020
Documentation for this module may be created at Module:Sports table/sub/sandbox/doc
-- Subfunctions for this module that are called from the style modules
local ppp = {}
function ppp.colhead(ttt,width,text)
-- For individual column headers
local head_string
if width=='auto' then
head_string = '! scope="col" |'..text..'\n'
else
head_string = '! scope="col" width='..width..'|'..text..'\n'
end
ttt.count = ttt.count+1
table.insert(ttt.tab_text,head_string)
return ttt
end
function ppp.hth(frame,Args,full_table,hth_id_list,hth_local,notes_exist,team_list,team_code_ii,ii_start,ii_end,rand_val)
-- For head-to-head notes
local hth_string, hth_local_num, hth_id, k, hth_loc = '', nil, nil, nil, nil
-- Check whether there is a head-to-head note or not, if so get text ready for it the same way as for the notes
if hth_local and full_table then
-- Set global check for notes to true
notes_exist = true
-- Split the hth_local into a table if all the entries are valid
local multiref = 1
local hth_local_table = mw.text.split(hth_local, '%s*,%s*')
if (#hth_local_table > 1) then
for k, hth_loc in ipairs(hth_local_table) do
multiref = multiref * (Args['hth_' .. hth_loc] and 1 or 0)
end
else
multiref = 0
end
-- Split failed, so make a single entry table with hth_local inside
if multiref < 1 then
hth_local_table = { hth_local }
end
for k,hth_loc in ipairs(hth_local_table) do
if not Args['hth_'..hth_loc] then
-- Option 1
-- Now define the identifier for this
hth_id = '"table_hth_'..team_code_ii..rand_val..'"' -- Add random end for unique ID if more tables are present on article (which might otherwise share an ID)
hth_id_list[team_code_ii] = hth_id
-- Call refn template
hth_string = hth_string .. frame:expandTemplate{ title = 'efn', args = { group='lower-alpha', name=hth_id, hth_loc} }
else
-- Option 2
hth_local_num = team_list[hth_loc] or -1
if hth_id_list[hth_loc] or ((hth_local_num >= ii_start) and (hth_local_num <= ii_end)) then
-- Option 2a
hth_id = '"table_hth_'..hth_loc..rand_val..'"'
hth_string = hth_string .. frame:extensionTag{ name = 'ref', args = { group = 'lower-alpha', name = hth_id} }
else
-- Option 2b
hth_id = '"table_hth_'..hth_loc..rand_val..'"' -- Add random end for unique ID
hth_id_list[hth_loc] = hth_id
-- Call refn template
hth_string = hth_string .. frame:expandTemplate{ title = 'efn', args = { group='lower-alpha', name=hth_id, Args['hth_'..hth_loc]} }
end
end
end
end
return {str=hth_string, list=hth_id_list, notes_exist=notes_exist}
end
function ppp.status(Args, status_code)
-- 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_called = {}
local status_letters = (Args['status_order'] or '') .. 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
if type(status_code) ~= 'table' then status_code = {} end
if #status_code < 1 then
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'}
end
-- Status position (before or after read and default)
local stat_pos_val = string.lower(Args['status_pos'] or '')
local status_position = 'after' -- Default location
if stat_pos_val=='before' then
status_position = 'before'
elseif stat_pos_val=='after' then
status_position = 'after'
end
-- Read in custom status options
for l in mw.text.gsplit(status_letters, '') do
status_called[l] = false
status_code[l] = status_code[l] or '?'
status_letters = mw.ustring.gsub(status_letters, '(' .. l ..'.-)' .. l, '%1')
if Args['status_text_' .. l] then
status_code[l] = Args['status_text_' .. l]
end
end
return {code=status_code, called=status_called, letters=status_letters, position=status_position}
end
return ppp