모듈:Hidden ping: 두 판 사이의 차이

이삭위키
둘러보기로 이동 검색으로 이동
잔글 (Changed protection level for "Module:Hidden ping": Highly visible module: match template ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite)))
(차이 없음)

2019년 2월 25일 (월) 12:53 판

이 모듈에 대한 설명문서는 모듈:Hidden ping/설명문서에서 만들 수 있습니다

local p = {}

local function makeError(msg, frame)
	-- Show error only in preview
	if (frame:preprocess( "{{REVISIONID}}" ) ~= "") then return '' end
	msg ='<strong>Error in [[Template:Hidden ping]]:</strong> ' .. msg
	return mw.text.tag('div', {['class']='error'}, msg)
end

function p.hiddenping(frame)
	local origArgs = frame:getParent().args
	local args = {}
	local maxArg = 0
	local usernames = 0
	for k, v in pairs(origArgs) do
		if type(k) == 'number' and mw.ustring.match(v,'%S') then
			if k > maxArg then maxArg = k end
			local title = mw.title.new(v)
			if title then
				args[k] = title.rootText
				usernames = usernames + 1
			else
				return makeError('Input contains forbidden characters.', frame)
			end
		end
	end

	if usernames < 1 then
		return makeError('Username not given.', frame)
	elseif usernames > (tonumber(frame.args.max) or 50) then
		return makeError('More than '..tostring(frame.args.max or 50)..' names specified.', frame)
	else
		local outStr = ''
		for i = 1, maxArg do
			if args[i] then outStr = outStr..'[[:User:'..args[i]..'|&#x200B;]]' end
		end
		return outStr
	end
end

return p