Difference between revisions of "Module:Sandbox/Ahecht/sandbox2"

From blackwiki
Jump to navigation Jump to search
blackwiki>Ahecht
(Undid revision 791334955 by Ahecht (talk))
blackwiki>Ahecht
(Undid revision 791335036 by Ahecht (talk))
Line 14: Line 14:
 
usernames = usernames + 1
 
usernames = usernames + 1
 
elseif (frame:preprocess( "{{REVISIONID}}" ) == "") then -- Show error only in preview
 
elseif (frame:preprocess( "{{REVISIONID}}" ) == "") then -- Show error only in preview
return '<div class="hatnote" style="color:red"><strong>Error in [[Template:Hidden ping]]:</strong> Input contains forbidden characters.</div>'
+
return '<div class="error"><strong>Error in [[Template:Hidden ping]]:</strong> Input contains forbidden characters.</div>'
 
end
 
end
 
end
 
end
Line 21: Line 21:
 
if usernames < 1 then
 
if usernames < 1 then
 
if (frame:preprocess( "{{REVISIONID}}" ) == "") then -- Show error only in preview
 
if (frame:preprocess( "{{REVISIONID}}" ) == "") then -- Show error only in preview
return '<div class="hatnote" style="color:red"><strong>Error in [[Template:Hidden ping]]:</strong> Username not given.</div>'
+
return '<div class="error"><strong>Error in [[Template:Hidden ping]]:</strong> Username not given.</div>'
 
else
 
else
 
return ''
 
return ''
 
end
 
end
 
elseif usernames > (tonumber(frame.args.max) or 50) and (frame:preprocess( "{{REVISIONID}}" ) == "") then -- Show error only in preview
 
elseif usernames > (tonumber(frame.args.max) or 50) and (frame:preprocess( "{{REVISIONID}}" ) == "") then -- Show error only in preview
return '<div class="hatnote" style="color:red"><strong>Error in [[Template:Hidden ping]]:</strong> More than '..tostring(frame.args.max or 50)..' names specified.</div>'
+
return '<div class="error"><strong>Error in [[Template:Hidden ping]]:</strong> More than '..tostring(frame.args.max or 50)..' names specified.</div>'
 
else
 
else
 
local outStr = ''
 
local outStr = ''

Revision as of 15:40, 19 July 2017

Documentation for this module may be created at Module:Sandbox/Ahecht/sandbox2/doc

local p = {}

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.baseText
				usernames = usernames + 1
			elseif (frame:preprocess( "{{REVISIONID}}" ) == "") then -- Show error only in preview
				return '<div class="error"><strong>Error in [[Template:Hidden ping]]:</strong> Input contains forbidden characters.</div>'
			end
		end
	end

	if usernames < 1 then
		if (frame:preprocess( "{{REVISIONID}}" ) == "") then -- Show error only in preview
			return '<div class="error"><strong>Error in [[Template:Hidden ping]]:</strong> Username not given.</div>'
		else
			return ''
		end
	elseif usernames > (tonumber(frame.args.max) or 50) and (frame:preprocess( "{{REVISIONID}}" ) == "") then -- Show error only in preview
		return '<div class="error"><strong>Error in [[Template:Hidden ping]]:</strong> More than '..tostring(frame.args.max or 50)..' names specified.</div>'
	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