Module:Hidden ping
Jump to navigation
Jump to search
This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected. |
Usage from wikitext[edit source]
This module cannot be used directly from wikitext. Please use the {{Hidden ping}} template instead.
Usage within templates[edit source]
{{#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.
External links[edit source]
- Module:Hidden ping at Wikipedia, the free Terran-based encyclopedia that anyone can edit.
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]..'|​]]' end
end
return outStr
end
end
return p