Module:Football squad
Jump to navigation
Jump to search
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 .. ";\"> – 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