Module:Sports table

This is an old revision of this page, as edited by CRwikiCA (talk | contribs) at 18:21, 15 September 2014 (Bracket fix). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

-- Module to build tables for standings in football
-- Undocumented sandbox version now

local p = {}
 
-- Main function
function p.main(frame)
	-- Declare locals
	local Args = frame.args
	local N_teams = 0
	local t = {}
	local team_list = {}
	
	-- 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
		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
	
	-- Write column headers
	local team_width = Args['teamwidth'] or '190'
	table.insert(t,'{|class="wikitable" style="text-align:center;"')            						-- Open table
	table.insert(t,'! scope="col" width=28|<abbr title="<nowiki>Position</nowiki>">Pos</abbr>')			-- Position col
	table.insert(t,'! scope="col" width='..team_width..'|Team')											-- Team col
	table.insert(t,'! scope="col" width=28|<abbr title="<nowiki>Played</nowiki>">Pld</abbr>')			-- Games played col
	table.insert(t,'! scope="col" width=28|<abbr title="<nowiki>Won</nowiki>">W</abbr>')				-- Win col
	table.insert(t,'! scope="col" width=28|<abbr title="<nowiki>Drawn</nowiki>">D</abbr>')				-- Draw col
	table.insert(t,'! scope="col" width=28|<abbr title="<nowiki>Lost</nowiki>">L</abbr>')				-- Loss col
	table.insert(t,'! scope="col" width=28|<abbr title="<nowiki>Goals for</nowiki>">GF</abbr>')			-- Goal for col
	table.insert(t,'! scope="col" width=28|<abbr title="<nowiki>Goals against</nowiki>">GA</abbr>')		-- Goal against col
	table.insert(t,'! scope="col" width=28|<abbr title="<nowiki>Goal difference</nowiki>">GD</abbr>')	-- Goal difference col
	table.insert(t,'! scope="col" width=28|<abbr title="<nowiki>Points</nowiki>">Pts</abbr>')			-- Points col
	
	
	
	
	-- Close table
	table.insert(t, '|}<br>')
	
	-- Small text, footnotes
	table.insert(t, '<small>RESERVED TEXT</small>\n')
	
	
	-- START TEST CODE
	table.insert(t, team_list[N_teams]..'='..Args[team_list[N_teams]])
	local test1 = Args['test1'] or 'TEST_VAR'
	table.insert(t, '<br>'..test1..'<br>')
	table.insert(t, Args['team1']..'\n')
	table.insert(t, 'Test line just before return statement')
	-- END TEST CODE
	return table.concat(t)
end
 
return p