<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://salisford.net/index.php?action=history&amp;feed=atom&amp;title=Module%3APHL_sports_team</id>
	<title>Module:PHL sports team - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://salisford.net/index.php?action=history&amp;feed=atom&amp;title=Module%3APHL_sports_team"/>
	<link rel="alternate" type="text/html" href="https://salisford.net/index.php?title=Module:PHL_sports_team&amp;action=history"/>
	<updated>2026-05-09T07:31:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://salisford.net/index.php?title=Module:PHL_sports_team&amp;diff=705&amp;oldid=prev</id>
		<title>Cascadia: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://salisford.net/index.php?title=Module:PHL_sports_team&amp;diff=705&amp;oldid=prev"/>
		<updated>2023-04-05T14:39:20Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:39, 5 April 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Cascadia</name></author>
	</entry>
	<entry>
		<id>https://salisford.net/index.php?title=Module:PHL_sports_team&amp;diff=698&amp;oldid=prev</id>
		<title>wp&gt;WOSlinker: use require('strict') instead of require('Module:No globals')</title>
		<link rel="alternate" type="text/html" href="https://salisford.net/index.php?title=Module:PHL_sports_team&amp;diff=698&amp;oldid=prev"/>
		<updated>2022-10-21T21:17:54Z</updated>

		<summary type="html">&lt;p&gt;use require(&amp;#039;strict&amp;#039;) instead of require(&amp;#039;Module:No globals&amp;#039;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require('strict')&lt;br /&gt;
&lt;br /&gt;
local p = { isalias = false }&lt;br /&gt;
local yesno = require('Module:Yesno')&lt;br /&gt;
local constants = {	CODE_LEN = 3, SPACE = '&amp;amp;nbsp;', SHORT = 'short', INST = 'inst' }&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunc(funcName, league)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = (frame.args[1] ~= nil) and frame.args or frame:getParent().args&lt;br /&gt;
		args['league'] = args['league'] or league or 'collegiate'&lt;br /&gt;
		return p[funcName](args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function stripwhitespace(text) return text:match(&amp;quot;^%s*(.-)%s*$&amp;quot;) end&lt;br /&gt;
&lt;br /&gt;
local function load_data(args)&lt;br /&gt;
	local data_module = 'Module:PHL sports team/' .. args['league']&lt;br /&gt;
	return mw.loadData(data_module)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_key_by_code(code, data)&lt;br /&gt;
	if (data[code] ~= nil and type(data[code]) == 'string') then&lt;br /&gt;
		p.isalias = true&lt;br /&gt;
		return data[code]&lt;br /&gt;
	elseif (string.len(code) == constants.CODE_LEN) then&lt;br /&gt;
		for k,v in pairs(data) do&lt;br /&gt;
			if v[1]==code then return k end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return code&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_icon(team, size, alt_team)&lt;br /&gt;
	local icon = '[[File:%s colors.svg|%s|border|%s school colors|link=]]'&lt;br /&gt;
	return string.format(icon, team, size or '11px', alt_team or team)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_athlete_link(link, athl_name)&lt;br /&gt;
	if mw.title.new(link or athl_name, '').exists == true then return string.format('[[%s|%s]]', link or athl_name, athl_name) else return athl_name end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function show_empty_param(param)&lt;br /&gt;
	return mw.html.create('span'):css('color', 'red'):cssText('style'):wikitext(string.format('Value for parameter \'%s\' not provided.', param))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_link_by_evt(args, div, divLt, text, team)&lt;br /&gt;
	local evt = { bk = 'basketball', vb = 'volleyball', ft = 'football' }&lt;br /&gt;
	local mRdr = require('Module:Redirect')&lt;br /&gt;
	evt = evt[args[2]] or evt[args[3]] or evt[args['evt']]&lt;br /&gt;
	if evt == nil then&lt;br /&gt;
		if type(div) == 'number' and div &amp;lt; 3 then&lt;br /&gt;
			 return mRdr.getTarget(team)&lt;br /&gt;
		else return mRdr.getTarget(text) end&lt;br /&gt;
	end&lt;br /&gt;
	if (type(div) == 'string') then div = 3 end&lt;br /&gt;
	local evt_link = string.format('%s %s %s', text, divLt[div-2], evt)&lt;br /&gt;
	if (args['yr'] ~= nil) then return args['yr'] .. ' ' .. evt_link .. ' team' end&lt;br /&gt;
	return mRdr.getTarget(evt_link) or evt_link&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_name_by_year(team, year)&lt;br /&gt;
	if not year then return team[1] end&lt;br /&gt;
	for k, v in pairs(team) do&lt;br /&gt;
		if mw.ustring.find(k, &amp;quot;%d%d%d%dthru%d%d%d%d$&amp;quot;) then&lt;br /&gt;
			local start_year, end_year = mw.ustring.match(k, &amp;quot;(%d%d%d%d)thru(%d%d%d%d)$&amp;quot;)&lt;br /&gt;
			if (tonumber(start_year) &amp;lt;= tonumber(year)) and (tonumber(year) &amp;lt;= tonumber(end_year)) then&lt;br /&gt;
				return v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return team[1]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function add_link(args, team, name, div, divLt, text)&lt;br /&gt;
	local evt_link = get_link_by_evt(args, div, divLt, team[div] or team[3], team[3])&lt;br /&gt;
	if (type(div) == 'number' and div &amp;gt;= 3 and div &amp;lt;= 6) then&lt;br /&gt;
		if ((args['inst'] or name) ~= nil or args[3] == constants.SHORT)&lt;br /&gt;
				then return string.format('[[%s|%s]]', evt_link or team[div], not p.isalias and team[args['inst']] or text)&lt;br /&gt;
			elseif (evt_link ~= nil) then return string.format('[[%s|%s]]', evt_link, text)&lt;br /&gt;
			else return string.format('[[%s]]', text) end&lt;br /&gt;
	end&lt;br /&gt;
	return string.format('[[%s|%s]]', evt_link or team[3], text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function add_link_generic(args, team, text)&lt;br /&gt;
	local mRdr = require('Module:Redirect')&lt;br /&gt;
	local tln = team.link or get_name_by_year(team, args['season'] or args['team'])&lt;br /&gt;
	local dab  = team.dab and (tln .. ' (' .. team.dab .. ')') or nil&lt;br /&gt;
	local fln = dab or tln&lt;br /&gt;
	&lt;br /&gt;
	if args['name']     then fln = team[args['name']] or dab or tln end&lt;br /&gt;
	if args['season']   then fln = args['season'] .. ' ' .. tln .. ' season'&lt;br /&gt;
	elseif args['team'] then fln = args['team'] .. ' ' .. tln .. ' team'&lt;br /&gt;
	else fln = mRdr.getTarget(fln) end&lt;br /&gt;
	return string.format('[[%s|%s]]', fln or dab or tln, text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local data = load_data(args)&lt;br /&gt;
	local in_team = stripwhitespace(args[1] or '')&lt;br /&gt;
	if (in_team:match('^{{{.*}}}$') ~= nil) then return show_empty_param(in_team) elseif (in_team == '' or nil) then return '—' end&lt;br /&gt;
	&lt;br /&gt;
	local in_div = stripwhitespace(args[2] or '')&lt;br /&gt;
	local in_name = args['name']&lt;br /&gt;
	local key = get_key_by_code(in_team, data)&lt;br /&gt;
	local team = data[key]&lt;br /&gt;
	if (team == nil) then return error(string.format('Invalid team: %s', in_team)) end&lt;br /&gt;
	&lt;br /&gt;
	local out&lt;br /&gt;
	local divLt = { &amp;quot;men's&amp;quot;, &amp;quot;women's&amp;quot;, &amp;quot;boys'&amp;quot;, &amp;quot;girls'&amp;quot; }&lt;br /&gt;
	&lt;br /&gt;
	if (in_div ~= constants.SHORT) then&lt;br /&gt;
		local div = { inst = 2, men = 3, women = 4, junior = 5, boys = 5, girls = 6 }&lt;br /&gt;
		in_div = div[in_div] or tonumber(in_div:match('[2-6]') or '3')&lt;br /&gt;
		if (args[3] == constants.INST or args['inst'] ~= nil or in_div == 2) then out = p.isalias and team[in_team] or team[div['inst']]&lt;br /&gt;
			elseif (args[3] == constants.SHORT) then out = team[7] or key or in_team&lt;br /&gt;
			else out = in_name or team[in_div] end&lt;br /&gt;
		if (out == nil) then return error('No ' .. divLt[in_div-2] .. ' team') end&lt;br /&gt;
	else&lt;br /&gt;
		out = team[7] or key or in_team&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	out = out:gsub(&amp;quot;-&amp;quot;, &amp;quot;&amp;amp;ndash;&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	if yesno(args['add_link'] or 'y') then&lt;br /&gt;
		out = add_link(args, team, in_name, in_div, divLt, out)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if yesno(args['icon'] or 'y') then&lt;br /&gt;
		local icon = get_icon(key or in_team, args['iconsize'])&lt;br /&gt;
		out = yesno(args['rt'] or 'n') and out .. constants.SPACE .. icon or icon .. constants.SPACE .. out&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._rt(args)&lt;br /&gt;
	args['rt'] = 'y'&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._name(args)&lt;br /&gt;
	args['icon'] = 'n'&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._color(args)&lt;br /&gt;
	local data = load_data(args)&lt;br /&gt;
	local in_team = stripwhitespace(args[1] or '')&lt;br /&gt;
	local no_img = string.format('[[File:No image.svg|%s|link=]]', args['size'] or '11px')&lt;br /&gt;
	local note = ''&lt;br /&gt;
	if in_team and in_team:match('[%*]$') then&lt;br /&gt;
		note = mw.ustring.gsub(in_team, '^(.-)([%*]*)$', '%2')&lt;br /&gt;
		in_team = mw.ustring.gsub(in_team, '^(.-)([%*]*)$', '%1')&lt;br /&gt;
	end&lt;br /&gt;
	if (in_team:match('^{{{.*}}}$') ~= nil) then&lt;br /&gt;
		return show_empty_param(in_team) .. note&lt;br /&gt;
	elseif (in_team == '' or nil) then return no_img .. note end&lt;br /&gt;
		&lt;br /&gt;
	local key = get_key_by_code(in_team, data)&lt;br /&gt;
	if ((data[in_team] or data[key]) == nil) then&lt;br /&gt;
		return no_img .. note&lt;br /&gt;
	end&lt;br /&gt;
	return get_icon(key or in_team, args['size'], args[2]) .. note&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._generic(args)&lt;br /&gt;
	local data = load_data(args)&lt;br /&gt;
	local code, name, out = stripwhitespace(args[1] or ''), args['name']&lt;br /&gt;
	local team = data[code]&lt;br /&gt;
	&lt;br /&gt;
	if (code:match('^{{{.*}}}$') ~= nil) then return show_empty_param(code) elseif (code == '' or nil) then return '—' end&lt;br /&gt;
&lt;br /&gt;
	if type(team) == 'string' then&lt;br /&gt;
		local alias = mw.text.split(team, '%s*|%s*')&lt;br /&gt;
		team = data[alias[1]]&lt;br /&gt;
		name = name or alias[2]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not team then return error(string.format('Invalid team: %s', code)) end&lt;br /&gt;
	if args[2] == constants.SHORT then out = team[2] or code&lt;br /&gt;
		elseif name then out = team[name] or name&lt;br /&gt;
		else out = get_name_by_year(team, args['season'] or args['team'] or args['yr'])&lt;br /&gt;
	end&lt;br /&gt;
	return add_link_generic(args, team, out)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._athlete(args)&lt;br /&gt;
	local athl_1 = args['athl']&lt;br /&gt;
	local athl_2 = args['athl2']&lt;br /&gt;
	&lt;br /&gt;
	if athl_1 == nil then return error('Invalid athlete: no value') end&lt;br /&gt;
	local link = get_athlete_link(args['link'], athl_1)&lt;br /&gt;
	&lt;br /&gt;
	if (athl_2 ~= nil) then link = link .. ' and ' .. get_athlete_link(args['link2'], athl_2) end&lt;br /&gt;
	&lt;br /&gt;
	local showicon = yesno(args['icon'])&lt;br /&gt;
	local sport = args['sp']&lt;br /&gt;
	&lt;br /&gt;
	if (showicon) then args[3] = constants.SHORT end&lt;br /&gt;
	args['add_link'] = 'n'&lt;br /&gt;
	local lbl = p._name(args)&lt;br /&gt;
	if (sport ~= nil) then&lt;br /&gt;
		lbl = string.format('%s&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%%;&amp;quot;&amp;gt;(%s,&amp;amp;nbsp;%s)&amp;lt;/span&amp;gt;', link, lbl, string.lower(sport))&lt;br /&gt;
	else lbl = string.format('%s&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size:90%%;&amp;quot;&amp;gt;(%s)&amp;lt;/span&amp;gt;', link, lbl)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (showicon) then&lt;br /&gt;
		args[2] = args[1]&lt;br /&gt;
		return p._color(args) .. constants.SPACE .. lbl&lt;br /&gt;
	else return lbl&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._athlete_bc(args)&lt;br /&gt;
	if (args['athl'] == nil) then&lt;br /&gt;
	    -- reassign arguments for backward compatibility --&lt;br /&gt;
	    args['athl'] = args[2]&lt;br /&gt;
		args[2] = args[3] or ''&lt;br /&gt;
		args[3] = args[4] or ''&lt;br /&gt;
	end&lt;br /&gt;
	return p._athlete(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.main = makeInvokeFunc('_main')&lt;br /&gt;
p.rt = makeInvokeFunc('_rt')&lt;br /&gt;
p.name = makeInvokeFunc('_name')&lt;br /&gt;
p.color = makeInvokeFunc('_color')&lt;br /&gt;
p.pba = makeInvokeFunc('_generic', 'PBA')&lt;br /&gt;
p.athlete = makeInvokeFunc('_athlete_bc')&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wp&gt;WOSlinker</name></author>
	</entry>
</feed>