มอดูล:National squad

-- 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' = 'ชาย',
	'mens' = 'ชาย',
	'men\'s' = 'ชาย',
	'หญิง' = 'หญิง',
	'female' = 'หญิง',
	'women' = 'หญิง',
	'womens' = 'หญิง',
	'women\'s' = 'หญิง',
	 = 
}
function p.main(frame)
	local getArgs = require('Module:Arguments').getArgs
	local args = getArgs(frame, {parentFirst = true})
	local country = args.country or 
	local coach_label = args.coach_type or 'ผู้ฝึกสอน'
	local comp = args.comp or 
	local sport = args.sport or 'ฟุตบอล'
	local gender = prefixesargs.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 ~= 'ทีมรวมเฉพาะกิจ' 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 = 
	local cspan = 	
	local title = string.format('%s%s%s – %s%s%s', 
		args'team link' or (sport .. gender .. 'ทีมชาติ' .. country), 
		ospan, args.title or 'รายชื่อนักกีฬาทีมชาติ' .. country, 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 knownargsk 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 = 0 and n  #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 .. 
		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 prefixesargs.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({
		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