وحدة:Reply to: الفرق بين النسختين
المظهر
[نسخة منشورة] | [نسخة منشورة] |
تم حذف المحتوى تمت إضافة المحتوى
لا ملخص تعديل |
تجربة :) |
||
سطر 38: | سطر 38: | ||
outStr = string.format( |
outStr = string.format( |
||
'<span class="template-ping">%s[[User:%s|%s]]', |
'<span class="template-ping">%s[[User:%s|%s]]', |
||
args['prefix'] or '◀', |
args['prefix'] or '<span style=padding-left:2px;font-size:12px;color:darkgrey>◀</span>', |
||
args[i], |
args[i], |
||
(args['س1'] or args['س']) or args[i] |
(args['س1'] or args['س']) or args[i] |
نسخة 13:25، 28 ديسمبر 2017
هذه الوحدة مستخدمة في عدد كبير من الصفحات (+18916) . لتفادي خلق بلبلة على نطاق واسع من الصفحات وزيادة الأعباء على الخوادم، يجب تجربة أي تعديل في هذه الصفحات الفرعية /ملعب أو /تجربة أو في ملعبك. بعدها يمكنك اضافة التعديلات دفعة واحدة، ورجاءً، لا تنسَ مناقشة أمر التعديلات أوّلًا قبل القيام بها. |
صُنّفت هذه الوحدة على أنها في المرحلة النهائية. في هذه المرحلة تكون الوحدة وصلت لنقطة يمكن أن تستخدم في أي صفحة أو أي نطاق. كما أنها تؤدي الهدف الذي بنيت من أجله ولا توجد أي أخطاء بها. يمكن أن يشار إلى هذه الوحدة في صفحات المساعدة أو أي صفحات إرشادية على ويكيبيديا، كما يمكن أن توضع كأمثلة للجدد ليتعلموا منها. |
صُنّفت هذه الوحدة على أنها محمية. تصل الوحدة لهذه المرحلة عندما تستخدم في صفحات كثيرة جدًا. فيجب أن تحمى بسبب أن عمليات التخريب أو الأخطاء تطال الكثير من الصفحات. كما هناك تعديلات غير مجدية تتم على هذه الوحدات تكون عبارة عن حركات صبيانية تسبب تعب للخادم. |
تُستخدم هذه الوحدة بواسطة قالب {{رد على}} لتشغيل إشعار إلى مستخدم أو عدة مستخدمين مسجلين عند الرد عليهم في ناقش معين.
الاستخدام من نص ويكي
لا يمكن استخدام هذه الوحدة مباشرة من نص ويكي. الرجاء استخدام القالب {{رد على}} بدلاً من ذلك.
الاستخدام داخل القوالب
{{#invoke:Reply to|replyto|<noinclude>example=مثال اسم</noinclude>|max=أقصى عدد من الأسماء}}
- تحدد المعلمة
|example=
الاسم الذي سيظهر عند عرض صفحة القالب. يجب أن تكون هذه المعلمة محاطة بـ<noinclude></noinclude>
حتى لا يتم تضمينها مع القالب الأصلي، وسيعرض القالب الأصلي رسالة خطأ إذا لم يتم تحديد أسماء. - تحدد المعلمة
|max=
الحد الأقصى لعدد الأسماء التي سيقبلها القالب. إذا لم يتم تحديده، يتم تعيينه افتراضيًا على العدد 50 (وهو أقصى عدد يدعمه نظام Echo للإشعارات حاليًا اعتبارًا من August 2015[تحديث]). إذا تم تجاوز هذا العدد من الأسماء، فسيرجع القالب الأصلي رسالة خطأ.
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">Error in [[Template:Reply to]]: Input contains forbidden characters.</strong>' 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 string.format(
'<strong class="error">Error in [[Template:Reply to]]: More than %s names specified.</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">Error in [[Template:Reply to]]: Username not given.</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[[User:%s|%s]]',
args['prefix'] or '<span style=padding-left:2px;font-size:12px;color:darkgrey>◀</span>',
args[i],
(args['س1'] or args['س']) or args[i]
)
isfirst = false
else
if ( (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 [[User:%s|%s]]',
outStr,
args[i],
args['س'..tostring(i)] or args[i]
)
end
end
end
outStr = outStr..(args['ت'] or ':')..'</span>'
return outStr
end
end
return p