وحدة:Reply to
هذه الوحدة مستخدمة في عدد كبير من الصفحات (+19151) . لتفادي خلق بلبلة على نطاق واسع من الصفحات وزيادة الأعباء على الخوادم، يجب تجربة أي تعديل في هذه الصفحات الفرعية /ملعب أو /تجربة أو في ملعبك. بعدها يمكنك اضافة التعديلات دفعة واحدة، ورجاءً، لا تنسَ مناقشة أمر التعديلات أوّلًا قبل القيام بها. |
صُنّفت هذه الوحدة على أنها في المرحلة النهائية. في هذه المرحلة تكون الوحدة وصلت لنقطة يمكن أن تستخدم في أي صفحة أو أي نطاق. كما أنها تؤدي الهدف الذي بنيت من أجله ولا توجد أي أخطاء بها. يمكن أن يشار إلى هذه الوحدة في صفحات المساعدة أو أي صفحات إرشادية على ويكيبيديا، كما يمكن أن توضع كأمثلة للجدد ليتعلموا منها. |
صُنّفت هذه الوحدة على أنها محمية. تصل الوحدة لهذه المرحلة عندما تستخدم في صفحات كثيرة جدًا. فيجب أن تحمى بسبب أن عمليات التخريب أو الأخطاء تطال الكثير من الصفحات. كما هناك تعديلات غير مجدية تتم على هذه الوحدات تكون عبارة عن حركات صبيانية تسبب تعب للخادم. |
تُستخدم هذه الوحدة بواسطة قالب {{رد على}} لتشغيل إشعار إلى مستخدم أو عدة مستخدمين مسجلين عند الرد عليهم في ناقش معين.
الاستخدام من نص ويكي
لا يمكن استخدام هذه الوحدة مباشرة من نص ويكي. الرجاء استخدام القالب {{رد على}} بدلاً من ذلك.
الاستخدام داخل القوالب
{{#invoke:Reply to|replyto|<noinclude>example=مثال اسم</noinclude>|max=أقصى عدد من الأسماء}}
- تحدد المعلمة
|example=
الاسم الذي سيظهر عند عرض صفحة القالب. يجب أن تكون هذه المعلمة محاطة بـ<noinclude></noinclude>
حتى لا يتم تضمينها مع القالب الأصلي، وسيعرض القالب الأصلي رسالة خطأ إذا لم يتم تحديد أسماء. - تحدد المعلمة
|max=
الحد الأقصى لعدد الأسماء التي سيقبلها القالب. إذا لم يتم تحديده، يتم تعيينه افتراضيًا على العدد 50 (وهو أقصى عدد يدعمه نظام Echo للإشعارات حاليًا اعتبارًا من August 2015[تحديث]). إذا تم تجاوز هذا العدد من الأسماء، فسيرجع القالب الأصلي رسالة خطأ.
local p = {}
local function makeError(msg)
msg ='خطأ [[قالب:رد على]]: ' .. msg
return mw.text.tag('strong', {['class']='error'}, msg)
end
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 makeError('يحتوي الإدخال على رموز محظورة') end
args[k] = title.rootText
end
elseif v == '' and k:sub(0,5) == 'لقب' then
args[k] = '​'
else
args[k] = v
end
end
if usernames > (tonumber(frame.args.max) or 50) then
return makeError(string.format(
'حُدد أكثر من %s اسماً.',
tostring(frame.args.max or 50)
))
else
if usernames < 1 then
if frame.args.example then args[1] = frame.args.example else return makeError('لم يُحدد اسم المستخدم.') end
end
args['label1'] = args['س'] or args['س1'] or args['لقب1'] or args['لقب'] or args['i'] or args['label1'] or args['label']
local outStr = args['prefix'] or args['بادئة'] or '@'
for i = 1, maxArg do
if args[i] then
if i>1 then outStr = outStr .. ' و' end
outStr = string.format(
'%s[[User:%s|%s]]',
outStr,
args[i],
args['label'..tostring(i)] or args['لقب'..tostring(i)] or args['س'..tostring(i)] or args[i]
)
end
end
outStr = outStr..(args['ت'] or args['p'] or ':')
return mw.text.tag('span', {['class']='template-ping'}, outStr)
end
end
return p