Module:Hidden ping
Jump to navigation
Jump to search
Lua
CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules
Usage from wikitext[edit]
This module cannot be used directly from wikitext. Please use the {{Hidden ping}} template instead.
Usage within templates[edit]
{{#invoke:Hidden ping|hiddenping|max=maximum number of names}}
- The
|max=
parameter sets the maximum number of names that the template will accept. If not specified, it defaults to 50 (which is the maximum number that Echo currently supports as of August 2015[update]). If this number of names is exceeded, the parent template will return an error message when previewed.
Code
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.rootText
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]..'|​]]' end
end
return outStr
end
end
return p