پودمان:Reply to
این پودمان لوآ در نزدیک به ۱۰۰ صفحه بهکار رفته است و تغییر دادن آن میتواند تأثیرات گستردهای داشتهباشد. لطفاً تغییرات را در زیرصفحههای /تمرین یا /آزمایشی پودمان، یا در پودمان تمرینی خودتان بیازمایید. توصیه میشود که ابتدا در خصوص تغییرات مورد نظر در صفحهٔ بحث گفتگو کرده و سپس آنها را پیادهسازی کنید. |
این پودمان آمادهٔ استفادهٔ عمومی ارزیابی شدهاست. این پودمان به مرحلهای رسیدهاست که حفره و اشکال در آن وجود ندارد و امکان استفاده از آن هرکجا که لازم است وجود دارد. بهتر است از ویکیپدیا:تمرین و نمونههای آزمایشی الگو جای آزمون و خطا استفاده شود. |
این پودمان حفاظتشده ارزیابی شدهاست. این پودمان یکی از الگوهای حساس است و در صفحات بسیار زیادی استفاده میشود. محافظت این پودمان در برابر ویرایش، بهدلیل بار قابل توجهی است که خرابکاریها، خطاها یا ویرایشهای جزئی میتوانند به دوش سرورها بگذارند. |
این پودمان توسط {{پاسخ به}} استفاده میشود تا شخص یا اشخاصی که ثبتنام کردند را آگاه کنید. بیشترین کاربرد این الگو در بحثها جهت پاسخ به یکدیگر است.
کاربرد ویکیمتن
ویرایشاین پودمان ممکن نیست از ویکیمتن مستقیماً استفاده شود. لطفاً از الگوی {{پاسخ به}} استفاده کنید.
کاربرد داخل الگو
ویرایش{{#invoke:Reply to|replyto|<noinclude>example=نمونه نام</noinclude>|max=حداکثر تعداد نامها}}
- پارامتر
|example=
زمانی کاربرد دارد که از صفحهٔ الگو بازدید میشود. این پارامتر را باید درون<noinclude>...</noinclude>
قرار دهید. - پارامتر
|max=
حداکثر تعداد نامهایی است که الگو میپذیرد. اگر تعریف نشود پیشفرض آن ۵۰ درنظر گرفته شدهاست (این رقم حداکثر تعدادی است که درحال حاضر Echo تا تاریخ اوت ۲۰۱۵[بروزرسانی] پشتیبانی میکند). اگر بیش از این تعداد نام تعریف شود، الگوی والد خطایی نمایش میدهد.
local p = {}
function p.replyto(frame)
local origArgs = frame:getParent().args
local args = {}
local maxArg = 1
local usernames = 0
for k, v in pairs(origArgs) do
if type(k) == 'number' then
if mw.ustring.match(v,'%S') then
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
elseif v == '' and k:sub(0,5) == 'label' then
args[k] = '​'
else
args[k] = v
end
end
if usernames > (tonumber(frame.args.max) or 50) then
return string.format(
'<strong class="error">خطا در [[الگو:پاسخ به]]: بیش از %s نام تعریف شدهاست.</strong>',
tostring(frame.args.max or 50)
)
else
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
outStr = outStr..(args['p'] or ': ')..'</span>'
return outStr
end
end
return p