Extension:مرشح الإساءة
يسمح ملحق "AbuseFilter" للمستخدمين المتميزين بتعيين إجراءات معينة يتم اتخاذها عندما تتطابق إجراءات المستخدمين -مثل عمليات التحرير- مع معايير معينة.
على سبيل المثال، يمكن إنشاء "مُرشِّح" لمنع المستخدمين المجهولين من إضافة روابط خارجية، أو لحظر مستخدم يزيل أكثر من 2000 حرف.
التثبيت
- نزّل الملف/الملفات وضعها في دليل يحمل اسم
AbuseFilter
داخل مجلد extensions/
لديك. - حينما تثبته مستخدما غت شغّل Composer كي تثبت اعتمادات بي إتش بي، وذلك عن طريق إصدار
composer install --no-dev
في مجلد الامتداد. (طالع مهمة T173141 لتطلع على التعقيدات المحتملة.) - أضف الكود التالي في الجزء الأسفل من ملف
LocalSettings.php
:wfLoadExtension( 'AbuseFilter' );
- شغل نص التحديث البرمجي الذي سوف ينشئ تلقائيا جداول قاعدة البيانات الضرورية التي يحتاج إليها الامتداد.
- أعدّ الملحق حسب ما هو مطلوب.
- تم التنفيذ – اذهب إلى Special:Version على موقع الويكي لديك كي تتحقق من أن الامتداد قد ثبت بنجاح.
لذلك ، بعد التثبيت من Git ، قم بتغيير الدليل الذي يحتوي على الامتداد على سبيل المثال $ 1 وتشغيل $ 2 ، أو عند التحديث: $ 3.
بدلاً من ذلك ، يُفضل إضافة السطر $ 1 إلى ملف "$ 2" في الدليل الجذر لموقع wiki الخاص بك مثل على سبيل المثال
{
"extra": {
"merge-plugin": {
"include": [
"extensions/AbuseFilter/composer.json"
]
}
}
}
الإعداد
مجموعات المستخدمين
بمجرد تثبيت الملحق، سيتعين عليك إعداد صلاحيات المستخدم في "LocalSettings.php".
الصلاحية | الوصف | Notes | User groups that have this right by default |
---|---|---|---|
abusefilter-modify | إنشاء أو تعديل عوامل تصفية إساءة الاستخدام | Requires the abusefilter-view right | sysop |
abusefilter-view | عرض مرشحات الإساءة | * | |
abusefilter-log | عرض سجل الإساءة | * | |
abusefilter-log-detail | عرض مدخلات سجل الإساءة المفصلة | Requires the abusefilter-log right | sysop |
abusefilter-privatedetails | عرض البيانات السرية في سجل الإساءة | Prior to 1.34 this right was named abusefilter-private - Requires the abusefilter-log-detail right | — |
abusefilter-modify-restricted | عدل مرشحات الإساءة مع الأفعال المحظورة | Requires the abusefilter-modify right | sysop |
abusefilter-modify-global | إنشاء أو تعديل مرشحات الإساءة العالمية | Requires the abusefilter-modify right | — |
abusefilter-revert | استرجع كل التعديلات لمرشح إساءة محدد. | sysop | |
abusefilter-view-private | اعرض مرشحات الإساءة المعلّمة كخاصة | Requires the abusefilter-view right (not needed if the group already has the abusefilter-modify right) | sysop |
abusefilter-log-private | عرض إدخالات السجل لمرشحات الإساءة المعلمة كخاصة | Requires the abusefilter-log right (not needed if the group already has the abusefilter-modify or abusefilter-view-private rights) | sysop |
abusefilter-hide-log | إخفاء إدخالات سجل الإساءة | Requires the abusefilter-log right | suppress |
abusefilter-hidden-log | عرض مدخلات سجل الإساءة المخفية | Requires the abusefilter-log right | suppress |
abusefilter-privatedetails-log | عرض سجل دخول التفاصيل الخاصة لمرشح الإساءة | Prior to 1.34 this right was named abusefilter-private-log | — |
على سبيل المثال، سيسمح النموذج التالي للإداريين sysops بالقيام بكل ما يريدونه باستخدام "مُرَشِّح" AbuseFilter، ويسمح للجميع بعرض السجل ومشاهدة إعدادات المُرشِّح العامة:
$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
$wgGroupPermissions['*']['abusefilter-view'] = true;
$wgGroupPermissions['*']['abusefilter-log'] = true;
$wgGroupPermissions['sysop']['abusefilter-privatedetails'] = true;
$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = true;
$wgGroupPermissions['sysop']['abusefilter-revert'] = true;
معاملات
اسم المتغير | القيمة الافتراضية | الوصف |
---|---|---|
$wgAbuseFilterActions
|
[
'throttle' => true,
'warn' => true,
'disallow' => true,
'blockautopromote' => true,
'block' => true,
'rangeblock' => false,
'degroup' => false,
'tag' => true
]
|
الإجراءات التي يمكن لمرشح الإساءة القيام بها. عند إضافة إجراء جديد، تحقق مما إذا كان مقيدًا في $wgAbuseFilterActionRestrictions ، وإذا كان كذلك، فلا تنس إضافة صلاحية abusefilter-modify-restricted إلى مجموعات المستخدمين المناسبة.
|
$wgAbuseFilterConditionLimit
|
1000
|
أقصى عدد من "الشروط" التي يمكن استخدامها في كل مرة يعمل فيها المرشح مقابل كل تغيير. (تتطلب المرشحات الأكثر تعقيدًا المزيد من "الشروط"). |
$wgAbuseFilterValidGroups
|
[
'default'
]
|
قائمة "المجموعات" التي يمكن تقسيم المرشحات إليها. افتراضيا هناك مجموعة واحدة فقط. قد تضيف ملحقات أخرى مجموعات أخرى. |
$wgAbuseFilterEmergencyDisableThreshold
|
[
'default' => 0.05
]
|
قم بتعطيل عامل تصفية إذا كان يطابق أكثر من تعديلين ، مما يشكل أكثر من 5٪ من الإجراءات التي تم التحقق منها مقابل مجموعة عامل التصفية في الفترة "المرصودة" (يوم واحد على الأكثر) ، ما لم يتم تغيير الفلتر في آخر 86400 ثانية (يوم واحد). راجع الخنق في حالات الطوارئ. |
$wgAbuseFilterEmergencyDisableCount
|
[
'default' => 2
]
| |
$wgAbuseFilterEmergencyDisableAge
|
[
'default' => 86400
]
| |
$wgAbuseFilterParserClass
|
'AbuseFilterParser'
|
اسم فئة المحلل اللغوي AbuseFilter. |
$wgAbuseFilterActionRestrictions
|
[
"throttle" => false,
"warn" => false,
"disallow" => false,
"blockautopromote" => true,
"block" => true,
"rangeblock" => true,
"degroup" => true,
"tag" => false
]
|
يجب أن يكون لدى المستخدمين صلاحية المستخدم "abusefilter-edit-limited" وكذلك "abusefilter-edit" من أجل إنشاء أو تعديل عوامل التصفية التي تنفذ هذه الإجراءات. |
$wgAbuseFilterNotifications
|
false
|
يسمح بتكوين الامتداد لإرسال إشعارات النتائج إلى Special: RecentChanges أو UDP. الخيارات المتاحة: rc, udp, rcandudp
For sending changes to abuse filters to Special:RecentChanges, use
unset($wgLogRestrictions['abusefilter']); . |
$wgAbuseFilterNotificationsPrivate
|
false
|
تمكين الإخطارات لفلاتر خاصة. |
$wgAbuseFilterCentralDB
|
null
|
اسم قاعدة البيانات حيث سيتم تخزين عوامل تصفية إساءة الاستخدام العالمية (مدعومة فقط في أحدث إصدار مطور). يتطلب تثبيت CentralAuth وإلا فسوف تنكسر المرشحات العامة على wikifarm. |
$wgAbuseFilterIsCentral
|
false
|
اضبط هذا المتغير على "true" للويكي حيث يتم تخزين AbuseFilters العام فيه (مدعوم فقط في أحدث إصدار ، تطوير). يتطلب تثبيت CentralAuth وإلا فسوف تنكسر المرشحات العامة على wikifarm. |
$wgAbuseFilterLocallyDisabledGlobalActions
|
[
"throttle" => false,
"warn" => false,
"disallow" => false,
"blockautopromote" => false,
"block" => false,
"rangeblock" => false,
"degroup" => false,
"tag" => false
]
|
عدم السماح لمرشحات مركزية باتخاذ الإجراءات التي تم تعيينها على أنها صحيحة في هذا المتغير. |
$wgAbuseFilterBlockDuration
|
'indefinite'
|
مدة الحظر التي تم إجراؤها بواسطة AbuseFilter.
اعتبارًا من 1.31.0-wmf.25 ، يمكن تحديد فترات الحظر لكل مرشح واحد وسوف يتجاوز هذا المتغير. يتم استخدام هذا المتغير فقط عند تمكين الحظر من أجل التحديد المسبق لمدة افتراضية.
|
$wgAbuseFilterAnonBlockDuration
|
null
|
مدة الحظر التي تم إجراؤها بواسطة AbuseFilter على المستخدمين الذين لم يقوموا بتسجيل الدخول. سيتم استخدام قيمة $ wgAbuseFilterBlockDuration إذا لم يتم تعيين هذا.
اعتبارًا من 1.31.0-wmf.25 ، يمكن تحديد فترات حظر لكل مرشح واحد وسوف يتجاوز هذا المتغير. يتم استخدام هذا المتغير فقط عند تمكين الحظر من أجل التحديد المسبق لمدة افتراضية.
|
$wgAbuseFilterBlockAutopromoteDuration
|
5
|
المدة ، بالأيام ، التي يتم فيها حظر الحركة التلقائية للمستخدمين بواسطة المرشحات. |
$wgAbuseFilterCustomActionsHandlers
|
[]
|
وظائف رد الاتصال للإجراءات المخصصة. (متقادم في 1.36) استخدم الخطاف $ 1 بدلاً من ذلك. |
$wgAbuseFilterDefaultWarningMessage
|
[
'default' => 'abusefilter-warning'
]
|
رسائل التحذير الافتراضية ، لكل مجموعة تصفية |
$wgAbuseFilterDefaultDisallowMessage
|
[
'default' => 'abusefilter-disallowed'
]
|
عدم السماح تلقائيًا للرسائل ، لكل مجموعة تصفية |
$wgAbuseFilterLogIPMaxAge
|
3 * 30 * 24 * 3600
|
العمر المستخدم كقطع عند مسح بيانات سجل IP القديم. الافتراضي لمدة 3 أشهر. المستخدمة من قبل purgeOldLogIPData.php البرنامج النصي للصيانة. |
$wgAbuseFilterProfileActionsCap
|
10000
|
عدد الإجراءات التي تحدد وقت إعادة تعيين إحصائيات التوصيف. |
$wgAbuseFilterLogPrivateDetailsAccess
|
false
|
ما إذا كان الوصول إلى المعلومات الخاصة من إدخال سجل عامل التصفية يتم تسجيله أم لا. |
$wgAbuseFilterPrivateDetailsForceReason
|
false
|
ما إذا كان المستخدمون مجبرون على تقديم سبب للوصول إلى المعلومات الخاصة من إدخال سجل عامل التصفية. |
$wgAbuseFilterSlowFilterRuntimeLimit
|
500
|
وقت التشغيل بالمللي ثانية قبل اعتبار الفلتر بطيئًا. |
$wgAbuseFilterRangeBlockSize
|
[
'IPv4' => '16',
'IPv6' => '19',
]
|
حجم النطاق المحظور بواسطة إجراء "rangeblock". |
$wgAbuseFilterLogIP
|
true
|
ما إذا كان سيتم تضمين IP في abuse_filter_log |
الاختناق في حالات الطوارئ
يأتي AbuseFilter مزودًا بميزة تعمل تلقائيًا على تقييد (تعطيل) الفلاتر التي تم تعديلها مؤخرًا وتتوافق مع حد معين من الإجراءات الأخيرة.
يتم ذلك لمنع التعديلات الضارة على المرشحات لحظر كل مستخدم يقوم بإجراء على الويكي أو ما شابه.
يعتمد شرط تعطيل الفلتر على تلك المتغيرات:
$wgAbuseFilterEmergencyDisableThreshold
- النسبة المئوية للمطابقات على المبلغ الإجمالي للإجراءات في الفترة المرصودة.$wgAbuseFilterEmergencyDisableCount
- عدد المطابقات للمرشح في الفترة الملاحظة.$wgAbuseFilterEmergencyDisableAge
- عمر المرشح لأخذه بعين الاعتبار. إذا كان التعديل الأخير للفلتر أقدم من هذا العدد من الثواني ، فلن يتم تقييد الفلتر ، إلا إذا كان قد تم تقييده بالفعل.$wgAbuseFilterProfileActionsCap
- العدد الأقصى للإجراءات الأخيرة ليتم احتسابها مقابل الحد الأدنى. لاحظ أن كل إجراء يؤدي إلى زيادة العداد ، وبمجرد وصول هذا العداد إلى هذه القيمة المكونة ، تتم إعادة تعيين هذا العداد وعدد الإجراءات الأخيرة التي تتطابق مع جميع عوامل التصفية إلى 0.
يمكن تحديد المرشحات الخانقة في قائمة المرشحات (Special: AbuseFilter) بالحالة $ 1. يحدث الاختناق بصمت ، ولا توجد طريقة لمعرفة متى يتم اختناق الفلتر.
عندما يتم تقييد أحد الفلاتر ، فإنه لا يؤدي أي إجراء خطير (عادةً ما تقتصر الإجراءات على حقوق خاصة مثل حظر المستخدم ، أو إزالته من المجموعات ، التي يتحكم فيها $wgAbuseFilterActionRestrictions) ، ولا يُسمح إلا بالإجراءات "الآمنة" (تلك التي يمكنها تحذير أو منع الإجراء المستمر). لا يتم تمكين المرشحات الخانقة تلقائيًا. لتعطيل الخنق ، تحتاج إلى تعديل عامل التصفية. لاحظ أنك تحتاج بالفعل إلى تغيير شيء ما من الفلتر: تغيير شيء ما من ملاحظات الفلتر كافٍ.
لاحظ أن تحرير الفلتر يحدّث عمره ، ويمكن أن يتسبب في تعطيله إذا وصل مرة أخرى إلى الشروط التي سيتم تقييدها في فترة قصيرة منذ التعديل الأخير ، مما يؤدي إلى عامل تصفية غير قابل للاستخدام إذا كان الويكي الخاص بك يحتوي على تعديلات إساءة استخدام أكثر من تلك الشرعية.
إنشاء وإدارة المرشحات
بمجرد تثبيت الملحق، يمكن إنشاء المرشحات /اختبارها /تغييرها /حذفها ويمكن الوصول إلى السجلات من صفحة إدارة مرشحات الإساءة Special:AbuseFilter.
- شكل الأوامر Rules format - أساسيات كيفية كتابة مُرشِّح
- الإجراءات Actions
- قواعد عامة Global Rules
- مساعدة لتقليل استخدام الشروط Guide to optimizing condition limit usage
- To import filters from Wikipedia: When you have installed the extension, go to w:Special:AbuseFilter, choose a filter (say w:Special:AbuseFilter/3), then click "Export this filter to another wiki", copy the text, go to "Special:AbuseFilter/import" on your wiki, paste the text.
- m:Small wiki toolkits/Starter kit/AbuseFilter - دليل لمجتمعات الويكي الصغيرة على metawiki
API
يضيف AbuseFilter وحدتين من وحدات قائمة API ، واحدة للحصول على تفاصيل عوامل تصفية إساءة الاستخدام ("عوامل تصفية إساءة الاستخدام") والأخرى لسجل إساءة الاستخدام ، نظرًا لأنها منفصلة عن سجلات MediaWiki الأخرى ("abuselog"). لا يمكن إنشاء أو تعديل عوامل تصفية إساءة الاستخدام باستخدام واجهة برمجة التطبيقات.
list = abusefilters
سرد معلومات حول عوامل التصفية
- Parameters
abfstartid
- معرّف عامل التصفية الذي سيبدأ التعداد منهabfendid
- معرّف عامل التصفية الذي سيتم إيقاف التعداد عندهabfdir
- الاتجاه الذي يتم فيه التعداد (أقدم ، أحدث)abfshow
- إظهار عوامل التصفية التي تفي بهذه المعايير فقط (مُمكّن |! مُمكّن | محذوف |! محذوف | خاص |! خاص)abflimit
- أقصى عدد من المرشحات لإدراجهاabfprop
- الخصائص التي يجب الحصول عليها (المعرف | الوصف | النمط | الإجراءات | الزيارات | التعليقات | lasteditor | lastedittime | الحالة | خاصة)
عندما تكون الفلاتر خاصة ، ستفقد بعض الخصائص المحددة باستخدام abfprop
ما لم تكن لديك صلاحيات المستخدم المناسبة.
- أمثلة
سرد عوامل تصفية إساءة الاستخدام غير الخاصة
النتيجة |
---|
{
"batchcomplete": "",
"continue": {
"abfstartid": 18,
"continue": "-||"
},
"query": {
"abusefilters": [
{
"id": 1,
"hits": 41430
},
{
"id": 3,
"hits": 957485
},
{
"id": 5,
"hits": 5931
},
{
"id": 6,
"hits": 19
},
{
"id": 8,
"hits": 7
},
{
"id": 9,
"hits": 41354
},
{
"id": 11,
"hits": 132971
},
{
"id": 12,
"hits": 139693
},
{
"id": 14,
"hits": 63
},
{
"id": 15,
"hits": 15
}
]
}
}
|
list = abuselog
سرد الحالات التي أدت فيها الإجراءات إلى تشغيل عامل تصفية إساءة استخدام.
- Parameters
aflstart
- الطابع الزمني لبدء التعداد منهaflend
- الطابع الزمني لإيقاف التعداد عندafldir
- الاتجاه الذي يتم فيه التعداد (أقدم ، أحدث)afluser
- اعرض فقط الإدخالات التي حاول فيها مستخدم معين أو عنوان IP هذا الإجراء.afltitle
- اعرض فقط الإدخالات التي يتضمن الإجراء فيها صفحة معينة.aflfilter
- اعرض فقط الإدخالات التي أدت إلى تشغيل معرّف عامل التصفية المحددafllimit
- الحد الأقصى لعدد الإدخالات في القائمةaflprop
- الخصائص التي يجب الحصول عليها: (ids|filter|user|ip|title|action|details|result|timestamp|hidden|revid|wiki)
- مثال
سرد الحالات التي تم فيها تشغيل عامل تصفية إساءة الاستخدام استجابةً لإجراءات من المستخدم "SineBot"
النتيجة |
---|
{
"batchcomplete": "",
"continue": {
"aflstart": "2018-03-06T02:34:18Z",
"continue": "-||"
},
"query": {
"abuselog": [
{
"id": 27219261,
"filter_id": "1073"
},
{
"id": 26938051,
"filter_id": ""
},
{
"id": 23388942,
"filter_id": "1"
},
{
"id": 22044912,
"filter_id": ""
},
{
"id": 22032235,
"filter_id": ""
},
{
"id": 22032196,
"filter_id": ""
},
{
"id": 21983882,
"filter_id": ""
},
{
"id": 20594818,
"filter_id": "904"
},
{
"id": 20593489,
"filter_id": "904"
},
{
"id": 20590442,
"filter_id": "904"
}
]
}
}
|
الأخطاء المحتملة
- قد يواجه بعض المستخدمين فشل إنشاء عوامل تصفية جديدة أو تعديل عوامل التصفية القديمة ويتم إعادة توجيه المستخدم إلى الصفحة الأصلية. إذا كان Wiki يستخدم شهادات SSL ، فمن المحتمل أن يكون هذا الخطأ بسبب قيمة $ 1 ، والتي قد تستخدم "$ 2" بدلاً من "$ 3". سيكون مؤشر هذا الخطأ هو أن المتصفح يعطي تحذيرًا بـ https لصفحات $ 1. (2 $)
دمجه مع امتدادات أخرى
يمكنك دمج AbuseFilter مع امتداد آخر بطرق مختلفة.
إضافة متغيرات للتصفية
من الممكن إضافة متغيرات جديدة لاستخدامها في مرشحات إساءة الاستخدام. قائمة الأمثلة Template:$ 1. للقيام بذلك ، يجب عليك:
- أضف معالجًا للخطاف AbuseFilter-builder . لإضافة متغير ، يجب استخدام $ 1 ، حيث $ 2 هو اسم المتغير ، و $ 3 هو جزء من مفتاح i18n . سيكون المفتاح الكامل هو
abusefilter-edit-builder-vars-{$your_key}
. - أضف رسائل i18n التي اخترتها في النقطة السابقة.
- اختر معالج الخطاف حيث سيتم حساب المتغير. اعتمادًا على حالة الاستخدام الخاصة بك ، يمكنك:
- تنفيذ الخطاف AbuseFilter-generateTitleVars ؛ يتم التفكير في هذا بشكل خاص للمتغيرات المتعلقة بالصفحة ؛
- تنفيذ الخطاف AbuseFilter-generateUserVars ؛ يتم التفكير في هذا بشكل خاص للمتغيرات المتعلقة بالمستخدم ؛
- تنفيذ الخطاف AbuseFilter-generateGenericVars ؛ هذا للمتغيرات غير المرتبطة بصفحة أو مستخدم معين ؛
- تنفيذ الخطاف AbuseFilterAlterVariables ؛ هذا أكثر مرونة قليلاً من الخطافات الأخرى ، لكن له جانبًا سلبيًا: لن يكون المتغير متاحًا عند فحص إدخالات RecentChanges السابقة. إذا كنت ترغب في تنفيذ هذه الميزة (ويوصى بذلك) ، يجب عليك استخدام أحد الخطافات المذكورة أعلاه ، واستخدام المعلمة الثالثة ($ 1).
- داخل معالج الخطاف ، توجد طريقتان لإضافة متغير:
- الطريقة "المباشرة" هي استدعاء
$vars->setVar( 'var_name', var_value );
. هذا مثالي فقط عندما تكون القيمة سهلة وسريعة الحساب: يتم حساب القيمة حتى لو لم يستخدمها أي مرشح نشط. - الطريقة "الكسولة" هي استدعاء
$vars->setLazyLoadVar( 'var_name', 'method_name', $params );
. هنا ، "اسم_الطريقة" هو معرف (فريد) سيتم استخدامه لحساب المتغير (يوصى ببدءه باسم الامتداد الخاص بك). لتسجيل الطريقة ، يجب عليك إضافة معالج للخطاف $ 1 ؛ هنا ، يجب عليك التحقق مما إذا كانت الطريقة $ التي تم تمريرها تطابق اسم_الطريقة الخاصة بك ، وإذا كان الأمر كذلك ، فاحسب المتغير. أخيرًا ، المعلمات $ عبارة عن مجموعة من المعلمات التي ستحتاجها لحساب المتغير ؛ يتم تمرير هذه إلى معالج الخطاف computeVariable. للحصول على مثال على ذلك ، يمكنك التحقق منglobal_user_groups
الخاص بـ CentralAuth.
- الطريقة "المباشرة" هي استدعاء
إضافة الإجراءات المخصصة
يمكنك إضافة معالجات الإجراءات المخصصة ، بحيث يمكن لكل عامل تصفية تنفيذ إجراءات أخرى. To do that, you choose a name for the action ('my-action' from now on), and then:
- قم بإنشاء فئة باسم على سبيل المثال $ 1 ، يجب أن يمتد ذلك إلى $ 2 ، والذي يمكنه أيضًا تنفيذ $ 3 أو $ 4
- أضف مشتركًا إلى الخطاف $ 1 ؛ يجب على المشترك توفير رد نداء كما هو موثق في توثيق الخطاف ، والذي يقوم بإرجاع مثيل للفئة التي تم إنشاؤها أعلاه ، على سبيل المثال:
class MyAction extends \MediaWiki\Extension\AbuseFilter\Consequence {
public function run() {
throw new \Exception( 'Write me' );
}
}
public function onAbuseFilterCustomActions( &$actions ) {
$actions[] = function ( \MediaWiki\Extension\AbuseFilter\Consequence\Parameters $params, array $rawParams ) : MyConsequence {
return new MyAction( $params, $rawParams );
};
}
ثم يجب عليك إضافة رسائل i18n التالية ؛ يمكنك استبدال "$ 1" على سبيل المثال "$ 2" لمعرفة الغرض من الرسائل:
'abusefilter-edit-action-${my_action}'
'abusefilter-action-${my_action}'
إضافة مجموعات القواعد
يمكنك أيضًا إضافة مجموعات قواعد إضافية ، والتي يمكن استخدامها لتجميع عوامل تصفية إساءة الاستخدام الحالية. لاحظ أنه في الوقت الحالي ، يمكن أن يكون كل مرشح في مجموعة واحدة فقط (T116642). حاليًا ، المستهلك الوحيد المعروف لهذه الميزة هو Extension:StructuredDiscussions . للقيام بذلك ، يجب عليك:
- إلحاق اسم المجموعة بـ $ groups
- إضافة بعض التعليمات البرمجية لتشغيل المرشحات مع مجموعتك. لاحظ أن AbuseFilter لن يفعل ذلك بمفرده. للقيام بذلك ، يجب عليك إنشاء كائن $ ، وتمرير اسم مجموعتك.
انظر أيضا
هذا الامتداد يستخدم على واحد من مشاريع ويكيميديا أو أكثر من واحد. يعني هذا الأمر أن الامتداد مستقر ويعمل/تعمل جيدا بما فيه الكفاية ليستخدم/لتستخدم في مواقع تتمتع بمستوى زيارات مرتفع مثل هذه. ابحث عن اسم هذا الامتداد في ملفات الضبط CommonSettings.php وكذلك InitialiseSettings.php كي ترى أين تنصب. توجد قائمة كاملة بالامتدادات المنصبة على موقع ويكي بعينه على صفحة Special:Version الخاصة بموقع الويكي. |
هذا الامتداد مشمول في الحزم أو مزارع الويكي التالية أو كليهما: هذه ليست قائمة كاملة. بعض مزارع الويكي أو مستضيفين الويكي قد تحتوي على extension حتى لو كانت غير مدرجة في هذه القائمة. راجع دائمًا مزارع الويكي أو مستضيفين الويكي أو حزمتك كي تتأكد من الأمر. |