The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Documentation for this module may be created at Module:Football squad/doc

-- 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