Module:Football squad
Appearance
This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected. |
Implements Template:Football squad. Can be invoked directly using
{{#invoke:Football squad|navbox}}
This Lua module is used on approximately 46,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
This module depends on the following other modules: |
Usage
{{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 squad2 player}} - takes parameters "no" (number) and "name" (player name).
- {{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.
Microformat
- Subtemplates
- Use {{Start date and age}} for the date on which an organisation was "established", "founded", "opened" or otherwise started, unless that date is before 1583 CE.
- Use {{URL}} for an organisation's URL.
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.
nor collapse nested elements which use them.
See also
- {{National squad}}
-- 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 .. ";\"> – 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