Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Football squad

Permanently protected module
From Wikipedia, the free encyclopedia

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