پودمان:Reply to: تفاوت میان نسخهها
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش |
||
خط ۱: | خط ۱: | ||
local p = {} | local p = {} | ||
function p.replyto(frame) | function p.replyto(frame) | ||
local origArgs = frame:getParent().args | local origArgs = frame:getParent().args | ||
local args = {} | local args = {} | ||
local maxArg = 0 | local maxArg = 1 | ||
local usernames = 0 | |||
for k, v in pairs(origArgs) do | for k, v in pairs(origArgs) do | ||
if type(k) == 'number' then | if type(k) == 'number' then | ||
if | if mw.ustring.match(v,'%S') then | ||
if k > maxArg then maxArg = k end | if k > maxArg then maxArg = k end | ||
usernames = usernames + 1 | |||
local title = mw.title.new(v) | |||
if not title then return '<strong class="error">خطا در [[الگو:پاسخ به]]: ورودی دارای نویسههای ممنوعه است.</strong>' end | |||
args[k] = title.rootText | |||
end | end | ||
elseif v == '' and k:sub(0,5) == 'label' then | |||
args[k] = '​' | |||
else | else | ||
args[k] = v | args[k] = v | ||
خط ۱۷: | خط ۲۲: | ||
end | end | ||
if | if usernames > (tonumber(frame.args.max) or 50) then | ||
return string.format( | |||
'<strong class="error">خطا در [[الگو:پاسخ به]]: بیش از %s نام تعریف شدهاست.</strong>', | |||
tostring(frame.args.max or 50) | |||
) | |||
return | |||
else | else | ||
local outStr = '<span class="template-ping">' | if usernames < 1 then | ||
if frame.args.example then args[1] = frame.args.example else return '<strong class="error">خطا در [[الگو:پاسخ به]]: نام کاربری داده نشدهاست.</strong>' end | |||
end | |||
local isfirst = true | |||
local outStr = '' | |||
for i = 1, maxArg do | |||
if args[i] then | |||
if isfirst then | |||
outStr = string.format( | |||
'<span class="template-ping">%s[[کاربر:%s|%s]]', | |||
args['prefix'] or '@', | |||
args[i], | |||
(args['label1'] or args['label']) or args[i] | |||
) | |||
isfirst = false | |||
else | |||
if ( i < usernames and (usernames > 2) or ((usernames == 2) and (args['c'] == '')) ) then outStr = outStr..'،‏' end | |||
if i == maxArg then outStr = outStr..' '..(args['c'] or 'و') end | |||
outStr = string.format( | |||
'%s [[کاربر:%s|%s]]', | |||
outStr, | |||
args[i], | |||
args['label'..tostring(i)] or args[i] | |||
) | |||
end | |||
end | |||
end | end | ||
outStr = outStr..(args['p'] or | outStr = outStr..(args['p'] or ': ')..'</span>' | ||
return outStr | return outStr | ||
end | end |