Module:Football 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('* %s %s ', 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 "" args.state = args.state or "autocollapse" args.teamname = args.teamname or "" 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 =  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.title .. "  – current squad "

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