Module:National squad/sandbox explained

-- This module implements and -- to avoid articles being added to -- -- when the template is used many times.local p = local prefixes = function p.main(frame) local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame,) local country = args.country or '' local coach_label = args.coach_type or 'Coach' local comp = args.comp or '' 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,) or frame:expandTemplate

local ospan = '

' local cspan = '' local title = string.format('%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 = 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 tracking = tracking .. '' end end if (args['title']

nil and args['team link']

nil and args.country

nil) or args.comp

nil then tracking = tracking .. '' end if not args['comp link'] then tracking = tracking .. '' end if not args['sport'] then if not args['team link'] then tracking = tracking .. '' 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 .. '' end end if prefixes[args.gender or '']

nil then tracking = tracking .. '' end if args.name

nil then tracking = tracking .. '' 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 

%s\n', n, args['p' .. k]) else list1 = list1 .. string.format('*%s\n', args['p' .. k]) end end end if args.coach then list1 = list1 .. string.format('*%s: %s', coach_label, args.coach) end end local list3 = args.note and ( .. args.note .. ) or nil return require('Module:Navbox')._navbox .. tracking .. previewend

return p