<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FPray93%2FSports_results</id>
	<title>Module:Sandbox/Pray93/Sports results - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FPray93%2FSports_results"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Pray93/Sports_results&amp;action=history"/>
	<updated>2026-07-26T20:10:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/Pray93/Sports_results&amp;diff=146001&amp;oldid=prev</id>
		<title>imported&gt;Legoktm: Replace Module:No globals with require( &quot;strict&quot; )</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Pray93/Sports_results&amp;diff=146001&amp;oldid=prev"/>
		<updated>2022-10-23T21:08:42Z</updated>

		<summary type="html">&lt;p&gt;Replace &lt;a href=&quot;/research/Module:No_globals&quot; title=&quot;Module:No globals&quot;&gt;Module:No globals&lt;/a&gt; with require( &amp;quot;strict&amp;quot; )&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Module to build results cross-tables for standings in Sports&lt;br /&gt;
-- See documentation for details&lt;br /&gt;
 &lt;br /&gt;
require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
 &lt;br /&gt;
-- Main function&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	-- Declare locals&lt;br /&gt;
	local Args = frame.args&lt;br /&gt;
	local N_teams = 0&lt;br /&gt;
	local t = {}&lt;br /&gt;
	local t_footer = {}&lt;br /&gt;
	local t_return = {}&lt;br /&gt;
	local team_list = {}&lt;br /&gt;
	local ii, ii_fw, bg_col, team_name, team_code_ii&lt;br /&gt;
	&lt;br /&gt;
	-- Load some other modules&lt;br /&gt;
	local p_sub = require(&amp;#039;Module:Sports table/sub&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	-- Read in number of consecutive teams (ignore entries after skipping a spot)&lt;br /&gt;
	while Args[&amp;#039;team&amp;#039;..N_teams+1] ~= nil do&lt;br /&gt;
		N_teams = N_teams+1&lt;br /&gt;
		-- Sneakily add it twice to the team_list parameter, once for the actual&lt;br /&gt;
		-- ranking, the second for position lookup in sub-tables&lt;br /&gt;
		-- This is possible because Lua allows both numbers and strings as indices.&lt;br /&gt;
		team_list[N_teams] = Args[&amp;#039;team&amp;#039;..N_teams] -- i^th entry is team X&lt;br /&gt;
		team_list[Args[&amp;#039;team&amp;#039;..N_teams]] = N_teams -- team X entry is position i&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Get team to show&lt;br /&gt;
	local ii_show = team_list[Args[&amp;#039;showteam&amp;#039;]] -- nil if non-existant&lt;br /&gt;
	&lt;br /&gt;
	-- Create header&lt;br /&gt;
	-- Open table&lt;br /&gt;
	table.insert(t,&amp;#039;{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;\n&amp;#039;) &lt;br /&gt;
	-- First column&lt;br /&gt;
	t_return.count = 0 			-- Dummy parameter, using subfunction call seems best at this point because both module are intertwined&lt;br /&gt;
	t_return.tab_text = t		-- Actual text&lt;br /&gt;
	t_return = p_sub.colhead(t_return,&amp;#039;auto&amp;#039;,&amp;#039;Home \\ Away&amp;#039;)	&lt;br /&gt;
	-- Other columns passed to subfunction&lt;br /&gt;
	t_return = p.header(t_return,Args,p_sub,N_teams,team_list)&lt;br /&gt;
	t = t_return.tab_text&lt;br /&gt;
	&lt;br /&gt;
	-- Now create individual rows&lt;br /&gt;
	for ii=1,N_teams do&lt;br /&gt;
		-- Get team info&lt;br /&gt;
		team_code_ii = team_list[ii]&lt;br /&gt;
		team_name = Args[&amp;#039;name_&amp;#039;..team_code_ii]		 	or team_code_ii&lt;br /&gt;
		&lt;br /&gt;
		-- Team names&lt;br /&gt;
		table.insert(t,&amp;#039;|- \n&amp;#039;)																			-- New row&lt;br /&gt;
		table.insert(t,&amp;#039;! scope=&amp;quot;row&amp;quot; style=&amp;quot;text-align: right;&amp;quot;| &amp;#039;..team_name..&amp;#039;\n&amp;#039;)	-- Position number&lt;br /&gt;
		&lt;br /&gt;
		-- Then individual results&lt;br /&gt;
		t = p.row(t,Args,N_teams,team_list,ii,ii_show)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Close table&lt;br /&gt;
	table.insert(t, &amp;#039;|}\n&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	-- Get info for footer&lt;br /&gt;
	local update = Args[&amp;#039;update&amp;#039;]			or &amp;#039;unknown&amp;#039;&lt;br /&gt;
	local start_date = Args[&amp;#039;start_date&amp;#039;] 	or &amp;#039;unknown&amp;#039;&lt;br /&gt;
	local source = Args[&amp;#039;source&amp;#039;]			or frame:expandTemplate{ title = &amp;#039;citation needed&amp;#039;, args = { reason=&amp;#039;No source parameter defined&amp;#039;, date=os.date(&amp;#039;%B %Y&amp;#039;) } }&lt;br /&gt;
	&lt;br /&gt;
	-- Create footer text&lt;br /&gt;
	-- Date updating&lt;br /&gt;
	if string.lower(update)==&amp;#039;complete&amp;#039; then&lt;br /&gt;
		-- Do nothing&lt;br /&gt;
	elseif update==&amp;#039;&amp;#039; then&lt;br /&gt;
		-- Empty parameter&lt;br /&gt;
		table.insert(t_footer,&amp;#039;Updated to match(es) played on unknown. &amp;#039;)&lt;br /&gt;
	elseif string.lower(update)==&amp;#039;future&amp;#039; then&lt;br /&gt;
		-- Future start date&lt;br /&gt;
		table.insert(t_footer,&amp;#039;First match(es) will be played on &amp;#039;..start_date..&amp;#039;. &amp;#039;)&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(t_footer,&amp;#039;Updated to match(es) played on &amp;#039;..update..&amp;#039;. &amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(t_footer,&amp;#039;Source: &amp;#039;..source)&lt;br /&gt;
	-- As reflist size text&lt;br /&gt;
	t_footer = &amp;#039;&amp;lt;div class=&amp;quot;reflist&amp;quot;&amp;gt;&amp;#039;..table.concat(t_footer)..&amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	-- Add footer to main text table&lt;br /&gt;
	table.insert(t,t_footer)&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(t)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Other functions&lt;br /&gt;
function p.header(tt,Args,p_sub,N_teams,team_list)&lt;br /&gt;
	local ii, team_code_ii, short_name&lt;br /&gt;
	&lt;br /&gt;
	-- Set match column width&lt;br /&gt;
	local col_width = Args[&amp;#039;match_col_width&amp;#039;] or &amp;#039;28&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	-- Get some default values in case it doesn&amp;#039;t start at 1&lt;br /&gt;
	local top_pos = tonumber(Args[&amp;#039;highest_pos&amp;#039;]) or 1&lt;br /&gt;
	&lt;br /&gt;
	for ii=top_pos,N_teams do&lt;br /&gt;
		team_code_ii = team_list[ii]&lt;br /&gt;
		short_name = Args[&amp;#039;short_&amp;#039;..team_code_ii] 	or team_code_ii&lt;br /&gt;
		tt = p_sub.colhead(tt,col_width,short_name)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tt&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.row(tt,Args,N_teams,team_list,ii,ii_show)&lt;br /&gt;
	-- Note ii is the row number being shown&lt;br /&gt;
	local jj, fw, bg, result, team_code_ii, team_code_jj&lt;br /&gt;
	local cell_bold = false&lt;br /&gt;
	&lt;br /&gt;
	team_code_ii = team_list[ii]&lt;br /&gt;
	&lt;br /&gt;
	-- Get some default values in case it doesn&amp;#039;t start at 1&lt;br /&gt;
	local top_pos = tonumber(Args[&amp;#039;highest_pos&amp;#039;]) or 1&lt;br /&gt;
	&lt;br /&gt;
	for jj=top_pos,N_teams do&lt;br /&gt;
		if ii == jj then&lt;br /&gt;
			-- Solid cell&lt;br /&gt;
			if ii==ii_show then cell_bold = true else cell_bold = false end&lt;br /&gt;
			fw = cell_bold and &amp;#039;font-weight: bold;&amp;#039; or &amp;#039;font-weight: normal;&amp;#039;&lt;br /&gt;
			bg = &amp;#039;background-color:#BBBBBB;&amp;#039;&lt;br /&gt;
			table.insert(tt,&amp;#039;| style=&amp;quot;&amp;#039;..fw..bg..&amp;#039;&amp;quot; | &amp;amp;nbsp;\n&amp;#039;)&lt;br /&gt;
		else&lt;br /&gt;
			-- Content cell&lt;br /&gt;
			-- Set bolding and background&lt;br /&gt;
			if ii==ii_show or jj == ii_show then cell_bold = true else cell_bold = false end&lt;br /&gt;
			fw = cell_bold and &amp;#039;font-weight: bold;&amp;#039; or &amp;#039;font-weight: normal;&amp;#039;&lt;br /&gt;
			bg = &amp;#039;background-color:transparent;&amp;#039;&lt;br /&gt;
			&lt;br /&gt;
			-- Now for the actual result&lt;br /&gt;
			team_code_jj = team_list[jj]&lt;br /&gt;
			result = Args[&amp;#039;match_&amp;#039;..team_code_ii..&amp;#039;_&amp;#039;..team_code_jj] or &amp;#039;&amp;#039;&lt;br /&gt;
			table.insert(tt,&amp;#039;| style=&amp;quot;white-space:nowrap;&amp;#039;..fw..bg..&amp;#039;&amp;quot; |&amp;#039;..result..&amp;#039;\n&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tt&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Legoktm</name></author>
	</entry>
</feed>