Модуль:Football squad
Материал из Saltyverse Wiki
Для документации этого модуля может быть создана страница Модуль: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