Mô đun:Flag

local margs = require('Module:Arguments')

local function _main(frame, name, mode)
	local categories = {
		['Flag icon'] = '[[Category:Flag icons missing country data templates]]',
		['Flag decoration'] = '[[Category:Flag decoration missing country data templates]]',
	}

    local yesno = require('Module:Yesno')

	--Get input arguments
	local args = margs.getArgs(frame, {
		frameOnly = ((frame.args.frameonly or '') ~= ''), valueFunc =
			function(key,value)
				if value then
					value = mw.text.trim(value)
					--Change empty string to nil for all args except 'image' and 'border'
					if key=="image" or key=="border" or value~="" then
						return value
					end
				end
				return nil
			end
	} )
	
	local preftext, sufftext = "", ""
	
	if name == 'Flag+link' then
		args.pref = args[1]
	elseif name == 'Flag athlete' then
		args.preftext = args[1]
		args[2] = args.code or args[2] or ""
		args.variant = args.variant or args[3]
	elseif name == 'Flag medalist' then
		preftext = (args[1] or "") .. "<br/>"
		args[2] = args.code or args[2] or ""
		args.variant = args.variant or args[3]
	elseif name == 'Flag link' then
		args.suff = args[2]
		args[2] = args[1] or ""
		args.variant = args.variant or args[3]
	else
		sports = {fb = 'fb', ['fb-rt'] = 'fb', fbicon = 'fb', ru = 'ru'}
		if sports[name] then
			args.avar = sports[name]
			if name == 'fb' and yesno(args.align) == true then
				args.align='c'
			end
		elseif name == "Flag team" and (args.code or args[1]) then
			sufftext = '&nbsp;<span style="font-size:90%;">('..(args.code or args[1])..')</span>'
		end
		args.variant = args.variant or args[2]
		args[2] = args[1] or ""
	end

	args[1] = mode .. (args.opts or '')
	args.missingcategory = categories[name]
	args.noredlink = args.noredlink or 'notext'

	if args.placeholder and yesno(args.placeholder) ~= true then
		args[1] = args[1] .. 'o'
	end

	if mw.title.getCurrentTitle().namespace == 0 then
		local unknown = '[[Category:Pages using ' .. mw.ustring.lower(name) .. 
			' template with unknown parameters|_VALUE_' .. frame:getParent():getTitle() .. ']]'
	else
		local unknown = ''
	end
	
	check = ''
	
	if name == 'Flag icon' then
		local opts = {
            unknown=unknown,
            preview='Page using [[Template:' .. name .. ']] with unknown parameter "_VALUE_"',
            ignoreblank='y',
            '1','2','variant','image','size','sz','border','align','al','width',
            'w','alt','ilink','noredlink','missingcategory','name','clink','link',
            'pref','suff','plink','the','section','altvar','avar','age','nalign',
            'nal','text','nodata','opts','placeholder','getParent','frameonly'
		}
		check = require('Module:Check for unknown parameters')._check(opts,args)
	end

	return preftext .. require('Module:Flagg').luaMain(frame,args) .. sufftext .. check
end

local p = {
	['']       = function (frame) return _main(frame, 'Flag',            'unc'   ) end,
	decoration = function (frame) return _main(frame, 'Flag decoration', 'uxx'   ) end,
	icon       = function (frame) return _main(frame, 'Flag icon',       'cxxl'  ) end,
	link       = function (frame) return _main(frame, 'Flag link',       'unpe'  ) end,
	['+link']  = function (frame) return _main(frame, 'Flag+link',       'unpefo') end,
	country    = function (frame) return _main(frame, 'Flag country',    'unce'  ) end,
	team       = function (frame) return _main(frame, 'Flag team',       'unce'  ) end,
	athlete    = function (frame) return _main(frame, 'Flag athlete',    'unape' ) end,
	medalist   = function (frame) return _main(frame, 'Flag medalist',   'unce'  ) end,
	fb         = function (frame) return _main(frame, 'fb',              'unpe'  ) end,
	['fb-rt']  = function (frame) return _main(frame, 'fb-rt',           'unpre' ) end,
	fbicon     = function (frame) return _main(frame, 'fbicon',          'pxxl'  ) end,
	ru         = function (frame) return _main(frame, 'ru',              'unpe'  ) end,
	IOC        = function (frame) return require('Module:Country_alias').flagIOC(frame:newChild{ title = 'Template:Flag IOC' }) end,
	IOC2       = function (frame) return require('Module:Country_alias').flagXYZ(frame:newChild{ title = 'Template:Flag IOC 2', args = {name = margs.getArgs(frame).name or '', type = 'name'} }) end,
	IOCathlete = function (frame) return require('Module:Country_alias').flagXYZ(frame:newChild{ title = 'Template:Flag IOC athlete', args = {type = 'athlete-O'} }) end,
}

p['deco'] = p.decoration
p['IOC 2'] = p.IOC2
p['IOC athlete'] = p.IOCathlete

return p
Chúng tôi bán
Bài viết liên quan
Hiệu ứng Brita và câu chuyện tự học
Hiệu ứng Brita và câu chuyện tự học
Bạn đã bao giờ nghe tới cái tên "hiệu ứng Brita" chưa? Hôm nay tôi mới có dịp tiếp xúc với thuật ngữ này
Cùng nhìn lại kế hoạch mà Kenjaku đã mưu tính suốt cả nghìn năm
Cùng nhìn lại kế hoạch mà Kenjaku đã mưu tính suốt cả nghìn năm
Cho đến hiện tại Kenjaku đang từng bước hoàn thiện dần dần kế hoạch của mình. Cùng nhìn lại kế hoạch mà hắn đã lên mưu kế thực hiện trong suốt cả thiên niên kỉ qua nhé.
[Chap 1] Cậu của ngày hôm nay cũng là tất cả đáng yêu
[Chap 1] Cậu của ngày hôm nay cũng là tất cả đáng yêu
Truyện ngắn “Cậu của ngày hôm nay cũng là tất cả đáng yêu” (Phần 1)
Ý Nghĩa Hình Xăm Bươm Bướm Trong Nevertheless
Ý Nghĩa Hình Xăm Bươm Bướm Trong Nevertheless
Bất kì một hình ảnh nào xuất hiện trong phim đều có dụng ý của biên kịch