Module:National squad
| This Lua module is used on approximately 59,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
| This module depends on the following other modules: |
This module implements Template:National squad and Template:National squad no numbers to avoid articles being added to Category:Pages where post-expand include size is exceeded when the template is used many times.
-- This module implements [[Template:National squad]] and
-- [[Template:National squad no numbers]] to avoid articles being added to
-- [[:Category:Pages where template include size is exceeded]]
-- when the template is used many times.
local p = {}
local prefixes = {
['male'] = ' men\'s',
['men'] = ' men\'s',
['mens'] = ' men\'s',
['men\'s'] = ' men\'s',
['female'] = ' women\'s',
['women'] = ' women\'s',
['womens'] = ' women\'s',
['women\'s'] = ' women\'s',
[''] = ''
}
function p.main(frame)
local getArgs = require('Module:Arguments').getArgs
local args = getArgs(frame, {parentFirst = true})
local country = args.country or '{{{country}}}'
local coach_label = args.coach_type or 'Coach'
local comp = args.comp or '{{{comp}}}'
local sport = args.sport or 'football'
local gender = prefixes[args.gender or ''] or ''
local titlestyle = 'background-color:' .. (args.bg or 'transparent') .. ';'
.. 'color:' .. (args.fg or 'inherit') .. ';'
.. 'border:1px solid ' .. (args.bordercolor or '#aaa')
local image = args.country ~= 'Unified Team' and require('Module:Flagg').luaMain(frame, {
'cxxl',
args.country or 'none',
args.flagvar,
size = '50px'
}) or frame:expandTemplate{
title = 'flagicon image',
args = {'Olympic flag.svg', size = '50px'}
}
local ospan = '<span style="color:' .. (args.fg or 'inherit') .. '">'
local cspan = '</span>'
local title = string.format('[[%s|%s%s%s]] – [[%s|%s%s%s]]',
args['team link'] or (country .. gender .. ' national ' .. sport .. ' team'),
ospan, args.title or country .. ' squad', cspan,
args['comp link'] or comp, ospan, comp, cspan)
local haspos = false
-- Tracking and preview warnings
local knownargs = {['bg']=1, ['fg']=1, ['bordercolor']=1, ['coach']=1, ['coach_type']=1,
['comp']=1, ['comp link']=1, ['country']=1, ['flagvar']=1, ['gender']=1,
['list']=1, ['name']=1, ['nonumbers'] = 1, ['note']=1, ['sport']=1, ['team link']=1, ['title']=1}
local badargs = {}
local numlist = {}
for k, v in pairs(args) do
if knownargs[k] then
elseif type(k) == 'string' then
local n = tonumber(k:match('^p(%d+)$') or k:match('pos(%d+)') or '-1')
if k:match('^p%d+$') and n >= 0 and n <= 99 then
table.insert(numlist, k:match('^p(%d+)$'))
elseif args.nonumbers and (k:match('^pos%d+$') and n >= 0 and n <= 99) then
if v and v ~= '' then haspos = true end
elseif v and v ~= '' then
table.insert(badargs, k)
end
elseif v and v ~= '' then
table.insert(badargs, k)
end
end
table.sort(
numlist,
function (a, b)
return tonumber(a) < tonumber(b) or (tonumber(a) == tonumber(b) and #a > #b)
end
)
local pv = require('Module:If preview')
local preview, tracking = '', ''
if #badargs > 0 then
for k, v in pairs(badargs) do
if v == '' then v = ' ' end
v = mw.ustring.gsub(v, '[^%w\\-_ ]', '?')
preview = preview .. pv._warning({
'Page using national squad with unknown parameter "' .. v .. '".'
})
tracking = tracking .. '[[Category:Pages using national squad with unknown parameters|' .. v .. ']]'
end
end
if (args['title'] == nil and args['team link'] == nil and args.country == nil) or args.comp == nil then
tracking = tracking .. '[[Category:Pages using national squad with unknown parameters|!]]'
end
if not args['comp link'] then
tracking = tracking .. '[[Category:Pages using national squad without comp link]]'
end
if not args['sport'] then
if not args['team link'] then
tracking = tracking .. '[[Category:Pages using national squad without sport or team link]]'
end
end
if sport ~= 'football' and sport ~= 'futsal' and sport ~= 'basketball' then
if not args['team link'] then
local sortkey = mw.ustring.gsub(sport, '[^A-Za-z]', ' ')
tracking = tracking .. '[[Category:Pages using national squad without team link and with an atypical sport|' .. sortkey .. ' ]]'
end
end
if prefixes[args.gender or ''] == nil then
tracking = tracking .. '[[Category:Pages using national squad with unsupported gender]]'
end
if args.name == nil then
tracking = tracking .. '[[Category:Pages using national squad without name]]'
end
-- if tracking ~= '' and mw.title.getCurrentTitle().namespace > 0 then tracking = '' end
local list1 = args.list or ''
if list1 == '' then
for i,k in ipairs(numlist) do
if args['p' .. k] then
local n = args.nonumbers and (args['pos' .. k] or '') or tostring(k)
if n ~= '' or haspos == true then
list1 = list1 .. string.format(
'*%s <span class="vcard agent"><span class="fn">%s</span></span>\n',
n, args['p' .. k])
else
list1 = list1 .. string.format(
'*<span class="vcard agent"><span class="fn">%s</span></span>\n', args['p' .. k])
end
end
end
if args.coach then
list1 = list1 .. string.format(
'*<span class="vcard agent">%s: <span class="fn">%s</span></span>',
coach_label, args.coach)
end
end
local list3 = args.note and ('' .. args.note .. '') or nil
return require('Module:Navbox')._navbox({
name = args.name,
titlestyle = titlestyle,
listclass = 'hlist', bodyclass = 'vcard', titleclass = 'fn org',
image = image, title = title, list1 = list1, list3 = list3
}) .. tracking .. preview
end
return p
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.