پودمان:Reply to
این الگو در تقریباً ۱۰۰٬۰۰۰ صفحه استفاده شدهاست. برای جلوگیری از خرابکاری سراسری و فشار مضاعف بر سرورهای ویکیپدیا بهتر است ابتدا در صفحه /آزمایشی یا /تمرین یا زیر صفحه کاربری تغییرات را اعمال کنید. تغییرات را میتوان با یک ویرایش به این الگو افزود. لطفا هر تغییر را از قبل در صفحه بحث مطرح کنید. |
این پودمان آمادهٔ استفادهٔ عمومی ارزیابی شدهاست. این پودمان به مرحلهای رسیدهاست که حفره و اشکال در آن وجود ندارد و امکان استفاده از آن هرکجا که لازم است وجود دارد. بهتر است از ویکیگفتاورد:تمرین و نمونههای آزمایشی الگو جای آزمون و خطا استفاده شود. |
این پودمان حفاظتشده ارزیابی شدهاست. این پودمان یک ویکیگفتاورد:الگوهای حساس است و در صفحات بسیار زیادی استفاده میشود. بهدلیل خرابکاری یا خطا و همچنین ویرایش ناچیز که بار قابل توجهی روی سرورها میگذارد، این پودمان در برابر ویرایش محافظت میشود. |
این پودمان توسط {{پاسخ به}} استفاده میشود تا شخص یا اشخاصی که ثبتنام کردند را آگاه کنید. بیشترین کاربرد این الگو در بحثها جهت پاسخ به یکدیگر است.
کاربرد ویکیمتن
ویرایشاین پودمان ممکن نیست از ویکیمتن مستقیماً استفاده شود. لطفاً از الگوی {{پاسخ به}} استفاده کنید.
کاربرد داخل الگو
ویرایش{{#invoke:Reply to|replyto|<noinclude>example=نمونه نام</noinclude>|max=حداکثر تعداد نامها}}
- پارامتر
|example=
زمانی کاربرد دارد که از صفحهٔ الگو بازدید میشود. این پارامتر را باید درون الگو:برچسب قرار دهید. - پارامتر
|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