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

From blackwiki
Jump to navigation Jump to search
blackwiki>Ahecht
(test)
blackwiki>Ahecht
(test)
Line 1: Line 1:
 
local p = {}
 
local p = {}
  
function p.main(frame)
+
function p.hiddenping(frame)
args = frame.args
+
local origArgs = frame:getParent().args
local one = 'false'
+
local args = {}
local two = 'false'
+
local maxArg = 0
local three = 'false'
+
local usernames = 0
local four = 'false'
+
for k, v in pairs(origArgs) do
if args.one == '' then one = 'true' end
+
if type(k) == 'number' and mw.ustring.match(v,'%S') then
if args.two == '' then two = 'true' end
+
if k > maxArg then maxArg = k end
if args.three == '' then three = 'true' end
+
usernames = usernames + 1
if args.four == '' then four = 'true' end
+
local title = mw.title.new(v)
output = one .. two .. three .. four
+
if title then
return output
+
args[k] = title.baseText
 +
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>'
 +
end
 +
end
 +
end
 +
 
 +
if usernames < 1 then
 +
if frame.args.example then
 +
args[1] = frame.args.example
 +
elseif (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>'
 +
else
 +
return ''
 +
end
 +
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>'
 +
else
 +
local outStr = ''
 +
for i = 1, maxArg do
 +
if args[i] then outStr = outStr..'[[:User:'..args[i]..'|&#x200B]]' end
 +
end
 +
return outStr
 +
end
 
end
 
end
  
 
return p
 
return p

Revision as of 15:08, 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
			usernames = usernames + 1
			local title = mw.title.new(v)
			if title then
				args[k] = title.baseText
			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>'
			end
		end
	end

	if usernames < 1 then
		if frame.args.example then
			args[1] = frame.args.example
		elseif (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>'
		else
			return ''
		end
	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>'
	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