Module:Football squad

Implements Template:Football squad. Can be invoked directly using {{#invoke:Football squad|navbox}}


{{Football squad}} is designed to be used within squad list templates (typically placed at the bottom of a player page) in order to make editing and standardisation easier. If you want to use this template first set up a new template for your squad, typically called something like Template:(team name) squad.

Templates useful for formatting the list are:

  • {{football squad manager}} - takes the parameter "name" (manager name) and the optional parameter "title" (defaults to Manager, other commonly assigned values are Coach and Head Coach).
Options
teamdisplay: Use this parameter when you want the name displayed on the top line of the box to be different than the full title of the article about the team; for example, where the article title is qualified to disambiguate between two similarly-named teams. See {{Olimpija Ljubljana squad}} for an example of usage.
{{football squad
| name = {{subst:PAGENAME}}
| teamname = Norwich City F.C.
| bgcolor = yellow
| textcolor = green
| bordercolor = green
| list = 
{{football squad2 player|no=1|name=[[Tim Krul|Krul]]}}
{{football squad2 player|no=2|name=[[Max Aarons|Aarons]]}}
{{football squad2 player|no=3|name=[[Sam Byram|Byram]]}}
{{football squad2 player|no=4|name=[[Ben Godfrey|Godfrey]]}}
{{football squad2 player|no=5|name=[[Grant Hanley|Hanley]]}} ([[Captain (association football)|c]])
{{football squad2 player|no=6|name=[[Christoph Zimmermann|Zimmermann]]}}
{{football squad2 player|no=7|name=[[Lukas Rupp|Rupp]]}}
{{football squad2 player|no=8|name=[[Mario Vrančić|Vrančić]]}}
{{football squad manager|name=[[Daniel Farke|Farke]]|title=Head coach}}
}}

produces:

Players and managers can also be specified using the |no##=, |manager##=, and |manager_type##= parameters, which reduces the post-expand include size of the template:

{{football squad
| name = {{subst:PAGENAME}}
| teamname = Town City F.C.
| bgcolor = #DEF
| textcolor = #D33
| bordercolor = #D33
| p1 = [[Aubrey Lee|Lee]]
| p2 = [[Kennedy Lindsey|Lindsey]]
| p3 = [[Channing Rowan|Rowan]]
| p5 = [[Reign Emery|Emery]]
| p6 = [[Cree Raine|Raine]] ([[Captain (association football)|c]])
| p8 = [[Tatum Ellington|Ellington]]
| p9 = [[Bertie Stacy|Stacy]]
| p12 = [[Cherokee Schuyler|Schuyler]]
| manager = [[Loren MacKenzie|MacKenzie]]
| manager_type = Head coach
| manager2 = [[Dee Blair|Blair]]
| manager_type2 = Assistant coach
}}

produces:

Microformat

mali niŋ

The HTML mark-up produced by this template includes an hCard microformat that makes an organization's details readily parsable by computer programs. This aids tasks such as the cataloguing of articles and maintenance of databases. For more information about the use of microformats on Wikipedia, please visit the Microformat WikiProject.

Subtemplates

Please do not remove instances of these subtemplates.

Classes used

The HTML classes of this microformat include:

  • adr
  • agent
  • category
  • country-name
  • extended-address
  • fn
  • geo
  • label
  • latitude
  • locality
  • longitude
  • nickname
  • note
  • org
  • region
  • street-address
  • url
  • vcard
Please do not rename or remove these classes
nor collapse nested elements which use them.

See also

mali niŋ

-- This implements Template:Football squad
local p = {}

local getArgs = require('Module:Arguments').getArgs
local Navbox = require('Module:Navbox')

local function buildList(args, listType)
	local list={}
	for k, v in pairs(args) do
		if (type(k) == 'string') and (mw.ustring.match((v or ''),'%S') ~= nil) then
			local prefix, n = k:sub(1,string.len(listType)), k:sub(string.len(listType)+1)
			if prefix == listType and (tonumber(n) or n == '') then
				if listType == 'manager' then
					n = (args['manager_type' .. n] or "Manager") .. ':'
				end
				if k == listType then k = listType .. '1' end
				local row = string.format('* <span class="nowrap agent vcard fbsquad_%s">%s <span class="fn">%s</span></span>', k, n, v)
				table.insert(list, row)
			end
		end
	end
	table.sort(list, function (x, y) return tonumber(string.match(x, 'fbsquad_' .. listType .. '(%d*)"')) < tonumber(string.match(y, 'fbsquad_' .. listType .. '(%d*)"')) end )
	return table.concat(list, "\n") .. "\n"
end

function p.navbox(frame)
	local args = getArgs(frame)

	args.name = args.name or "{{{name}}}"
	args.state = args.state or "autocollapse"
	args.teamname = args.teamname or "{{{teamname}}}"
	args.bgcolor = args.bgcolor or "#ccf"
	args.textcolor = args.textcolor or "#000"
	args.bordercolor = args.bordercolor or ""

	args.list1 = buildList(args, 'p') .. (args.list1 or args.list or '') .. buildList(args, 'manager')
	if args.list1 == '' then args.list1 = '{{{list}}}' end

	args.titlestyle = args.titlestyle or ("background:" .. args.bgcolor ..
		"; color:" .. args.textcolor ..
		"; box-shadow: inset 1px 1px 0 " .. args.bordercolor .. ", inset -1px -1px 0 " .. args.bordercolor ..
		"; width:87%;")
	args.title = args.title or args.teamdisplay or args.teamname
	args.title = "[[" .. args.teamname .. "|<span style=\"color:" .. args.textcolor .. ";\">" .. args.title .. "</span>]] <span style=\"color:" .. args.textcolor .. ";\"> &ndash; current squad</span>"

	return Navbox._navbox({
		name       = args.name,
		state      = args.state,
		bodystyle  = nil,
		bodyclass  = "vcard",
		titleclass = "fn org",
		listclass  = "hlist",
		titlestyle = args.titlestyle,
		title      = args.title,
		list1      = args.list1
	})
end

return p