Permanently protected module
From Wikipedia, the free encyclopedia


local p = {}



local function makeError(msg)

	msg ='Error in [[Template:Reply to]]: ' .. msg

	return mw.text.tag('strong', {['class'='error'}, msg)

end



function p.replyto(frame)

	local origArgs = frame:getParent().args

	local args = {}

	local maxArg = 1

	local usernames = 0

	for k, v in pairs(origArgs) do

		if type(k) == 'number' then

			if mw.ustring.match(v,'%S') then

				if k > maxArg then maxArg = k end

				usernames = usernames + 1

				local title = mw.title.new(v)

				if not title then return makeError('Input contains forbidden characters.') end

				argsk = title.rootText

			end

		elseif v == '' and k:sub(0,5) == 'label' then

			argsk = '​'

		else

			argsk = v

		end

	end



	if usernames > (tonumber(frame.args.max) or 50) then

		return makeError(string.format(

			'More than %s names specified.',

			tostring(frame.args.max or 50)

		))

	else

		if usernames < 1 then

			if frame.args.example then args1 = frame.args.example else return makeError('Username not given.') end

		end

		args'label1' = args'label1' or args'label'

		local isfirst = true

		local outStr = args'prefix' or '@'

		for i = 1, maxArg do

			if argsi then

				if isfirst then

					isfirst = false

				else

					if ( (usernames > 2) or ((usernames == 2) and (args'c' == '')) ) then outStr = outStr..', ' end

					if i == maxArg then outStr = outStr..' '..(args'c' or 'and') .. ' ' end

				end

				outStr = string.format(

					'%s[[User:%s|%s]]',

					outStr,

					argsi],

					args'label'..tostring(i)] or argsi

				)

			end

		end

		outStr = outStr..(args'p' or ':')

		return mw.text.tag('span', {['class'='template-ping'}, outStr)

	end

end



return p
Permanently protected module
From Wikipedia, the free encyclopedia


local p = {}



local function makeError(msg)

	msg ='Error in [[Template:Reply to]]: ' .. msg

	return mw.text.tag('strong', {['class'='error'}, msg)

end



function p.replyto(frame)

	local origArgs = frame:getParent().args

	local args = {}

	local maxArg = 1

	local usernames = 0

	for k, v in pairs(origArgs) do

		if type(k) == 'number' then

			if mw.ustring.match(v,'%S') then

				if k > maxArg then maxArg = k end

				usernames = usernames + 1

				local title = mw.title.new(v)

				if not title then return makeError('Input contains forbidden characters.') end

				argsk = title.rootText

			end

		elseif v == '' and k:sub(0,5) == 'label' then

			argsk = '&#x200B;'

		else

			argsk = v

		end

	end



	if usernames > (tonumber(frame.args.max) or 50) then

		return makeError(string.format(

			'More than %s names specified.',

			tostring(frame.args.max or 50)

		))

	else

		if usernames < 1 then

			if frame.args.example then args1 = frame.args.example else return makeError('Username not given.') end

		end

		args'label1' = args'label1' or args'label'

		local isfirst = true

		local outStr = args'prefix' or '@'

		for i = 1, maxArg do

			if argsi then

				if isfirst then

					isfirst = false

				else

					if ( (usernames > 2) or ((usernames == 2) and (args'c' == '')) ) then outStr = outStr..', ' end

					if i == maxArg then outStr = outStr..' '..(args'c' or 'and') .. ' ' end

				end

				outStr = string.format(

					'%s[[User:%s|%s]]',

					outStr,

					argsi],

					args'label'..tostring(i)] or argsi

				)

			end

		end

		outStr = outStr..(args'p' or ':')

		return mw.text.tag('span', {['class'='template-ping'}, outStr)

	end

end



return p

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook