Mô đun:Check for clobbered parameters

local p = {}

local function trim(s)
	return s:match('^%s*(.-)%s*$')
end

local function isnotempty(s)
	return s and s:match('%S')
end

function p.check(frame)
	local args = frame.args
	local pargs = frame:getParent().args
	local checknested = isnotempty(args['nested'])
	local delimiter = isnotempty(args['delimiter']) and args['delimiter'] or ';'
	local cat = ''
	if args['cat'] and mw.ustring.match(args['cat'],'^[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]:') then
		cat = args['cat']
	end
	local res = ''

	local argpairs = {}
	for k, v in pairs(args) do
		if type(k) == 'number' then
			local plist = mw.text.split(v, delimiter)
			local pfound = {}
			local count = 0
			for ii, vv in ipairs(plist) do
				vv = trim(vv)
				if checknested and pargs[vv] or isnotempty(pargs[vv]) then
					count = count + 1
					table.insert(pfound, vv)
				end
			end
			if count > 1 then
				table.insert(argpairs, pfound)
			end
		end
	end
	
	local warnmsg = {}
	if #argpairs > 0 then
		for i, v in ipairs( argpairs ) do
			table.insert(warnmsg, 'Sử dụng nhiều hơn một trong các tham số sau: <code>' ..
				table.concat(v, '</code>, <code>') .. '</code>')
			if cat ~= '' then
				res = res .. '[[' .. cat .. '|' .. (v[1] == '' and ' ' or '') .. v[1] .. ']]'
			end	
		end
	end
	
	if #warnmsg > 0 then
		if frame:preprocess( "{{REVISIONID}}" ) == "" then
			local ptxt = 'Cảnh báo ' .. args['template'] and args['template'] or 'Cảnh báo'
			res = '<div class="hatnote" style="color:red"><strong>' .. ptxt .. ':</strong> ' .. table.concat(warnmsg, '<br />') .. '</div>' .. res
		end
	end
	
	return res
end

return p
Chúng tôi bán
Bài viết liên quan
Tổ chức SWORD trong One Piece - Garp có phải là một thành viên
Tổ chức SWORD trong One Piece - Garp có phải là một thành viên
Qua chương 1080 thì ta biết thêm được về SWORD, về cơ bản thì họ là đội biệt kích đặc biệt gồm những Hải Quân đã từ bỏ Quân Tịch nhưng vẫn hoạt động với vai trò là 1 Hải Quân
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é.
Nhân vật Kei Karuizawa - Classroom of the Elite
Nhân vật Kei Karuizawa - Classroom of the Elite
Đến cuối cùng, kể cả khi mình đã nhập học ở ngôi trường này. Vẫn không có gì thay đổi cả. Không, có lẽ là vì ngay từ ban đầu mình đã không có ý định thay đổi bất kì điều gì rồi. Mọi chuyện vẫn giống như ngày trước, bất kể mọi chuyện. Lý do thì cũng đơn giản thôi. ... Bởi vì, bản thân mình muốn thế.
Nhân vật Zesshi Zetsumei - Overlord
Nhân vật Zesshi Zetsumei - Overlord
Zesshi Zetsumei (絶 死 絶命) là người giữ chức vị đặc biệt trong tổ chức Hắc Thánh Kinh.