请输入您要查询的百科知识:

 

词条 Module:Sandbox/Pray93/Sports results
释义 -- Module to build results cross-tables for standings in Sports-- See documentation for details

require('Module:No globals')

local p = {}

-- Main function

function p.main(frame)

-- Declare locals

local Args = frame.args

local N_teams = 0

local t = {}

local t_footer = {}

local t_return = {}

local team_list = {}

local ii, ii_fw, bg_col, team_name, team_code_ii

-- Load some other modules

local p_sub = require('Module:Sports table/sub')

-- Read in number of consecutive teams (ignore entries after skipping a spot)

while Args['team'..N_teams+1] ~= nil do

N_teams = N_teams+1

-- Sneakily add it twice to the team_list parameter, once for the actual

-- ranking, the second for position lookup in sub-tables

-- This is possible because Lua allows both numbers and strings as indices.

team_list[N_teams] = Args['team'..N_teams] -- i^th entry is team X

team_list[Args['team'..N_teams]] = N_teams -- team X entry is position i

end

-- Get team to show

local ii_show = team_list[Args['showteam']] -- nil if non-existant

-- Create header

-- Open table

table.insert(t,'{|class="wikitable" style="text-align:center;"\')

-- First column

t_return.count = 0 -- Dummy parameter, using subfunction call seems best at this point because both module are intertwined

t_return.tab_text = t -- Actual text

t_return = p_sub.colhead(t_return,'auto','Home \\\\ Away')

-- Other columns passed to subfunction

t_return = p.header(t_return,Args,p_sub,N_teams,team_list)

t = t_return.tab_text

-- Now create individual rows

for ii=1,N_teams do

-- Get team info

team_code_ii = team_list[ii]

team_name = Args['name_'..team_code_ii] or team_code_ii

-- Team names

table.insert(t,'|- \') -- New row

table.insert(t,'! scope="row" style="text-align: right;"| '..team_name..'\') -- Position number

-- Then individual results

t = p.row(t,Args,N_teams,team_list,ii,ii_show)

end

-- Close table

table.insert(t, '|}\')

-- Get info for footer

local update = Args['update'] or 'unknown'

local start_date = Args['start_date'] or 'unknown'

local source = Args['source'] or frame:expandTemplate{ title = 'citation needed', args = { reason='No source parameter defined', date=os.date('%B %Y') } }

-- Create footer text

-- Date updating

if string.lower(update)=='complete' then

-- Do nothing

elseif update== then

-- Empty parameter

table.insert(t_footer,'Updated to match(es) played on unknown. ')

elseif string.lower(update)=='future' then

-- Future start date

table.insert(t_footer,'First match(es) will be played on '..start_date..'. ')

else

table.insert(t_footer,'Updated to match(es) played on '..update..'. ')

end

table.insert(t_footer,'Source: '..source)

-- As reflist size text

t_footer = '

'..table.concat(t_footer)..'
'

-- Add footer to main text table

table.insert(t,t_footer)

return table.concat(t)

end

-- Other functions

function p.header(tt,Args,p_sub,N_teams,team_list)

local ii, team_code_ii, short_name

-- Set match column width

local col_width = Args['match_col_width'] or '28'

-- Get some default values in case it doesn't start at 1

local top_pos = tonumber(Args['highest_pos']) or 1

for ii=top_pos,N_teams do

team_code_ii = team_list[ii]

short_name = Args['short_'..team_code_ii] or team_code_ii

tt = p_sub.colhead(tt,col_width,short_name)

end

return tt

end

function p.row(tt,Args,N_teams,team_list,ii,ii_show)

-- Note ii is the row number being shown

local jj, fw, bg, result, team_code_ii, team_code_jj

local cell_bold = false

team_code_ii = team_list[ii]

-- Get some default values in case it doesn't start at 1

local top_pos = tonumber(Args['highest_pos']) or 1

for jj=top_pos,N_teams do

if ii == jj then

-- Solid cell

if ii==ii_show then cell_bold = true else cell_bold = false end

fw = cell_bold and 'font-weight: bold;' or 'font-weight: normal;'

bg = 'background-color:#BBBBBB;'

table.insert(tt,'| style="'..fw..bg..'" |  \')

else

-- Content cell

-- Set bolding and background

if ii==ii_show or jj == ii_show then cell_bold = true else cell_bold = false end

fw = cell_bold and 'font-weight: bold;' or 'font-weight: normal;'

bg = 'background-color:transparent;'

-- Now for the actual result

team_code_jj = team_list[jj]

result = Args['match_'..team_code_ii..'_'..team_code_jj] or

table.insert(tt,'| style="white-space:nowrap;'..fw..bg..'" |'..result..'\')

end

end

return tt

end

return p

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/16 16:58:43