Difference between revisions of "Module:Sandbox/Ahecht/sandbox2"
< Module:Sandbox | Ahecht
Jump to navigation
Jump to search
blackwiki>Ahecht (test) |
blackwiki>Ahecht (test) |
||
| Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
| − | function p. | + | function p.hiddenping(frame) |
| − | + | local origArgs = frame:getParent().args | |
| − | local | + | local args = {} |
| − | local | + | local maxArg = 0 |
| − | local | + | 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 | |
| − | if args. | + | 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]..'|​]]' 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]..'|​]]' end
end
return outStr
end
end
return p