Extension:مرشح الإساءة
AbuseFilter حالة الإصدار مستقر |
|
---|---|
تنفيذ | نشاط المستخدم , صفحة خاصة , واجهة برمجة التطبيقات |
بيان | يسمح بوضع قيود معينة "معتمدة على السلوك" على نشاط wiki |
المؤلف/المؤلفون |
|
سياسة التوافق | تصدر اللقطات البرمجية مع ميدياويكي. الإصدار الرئيسي لا يتوافق مع الإصدارات السابقة. |
تغييرات قاعدة البيانات | نعم |
Composer | mediawiki/abuse-filter |
جداول | abuse_filter abuse_filter_action abuse_filter_history abuse_filter_log |
ترخيص | رخصة جنو العمومية 2.0 أو ما بعدها |
التنزيل | |
|
|
|
|
|
|
|
|
تنزيلات ربع سنوية | 126 (Ranked 44th) |
استخدام مواقع الويكي العمومية | 2,939 (Ranked 186th) |
ترجم الامتداد AbuseFilter لو كان متوفرا على translatewiki.net | |
المسائل | المهام المفتوحة · الإبلاغ عن عطل تقني |
يسمح ملحق "AbuseFilter" للمستخدمين المتميزين بتعيين إجراءات معينة يتم اتخاذها عندما تتطابق إجراءات المستخدمين -مثل عمليات التحرير- مع معايير معينة.
على سبيل المثال، يمكن إنشاء "مُرشِّح" لمنع المستخدمين المجهولين من إضافة روابط خارجية، أو لحظر مستخدم يزيل أكثر من 2000 حرف.
التثبيت
- نزّل الملف/الملفات وضعها في دليل يحمل اسم
AbuseFilter
داخل مجلد extensions/
لديك.
يجب على مطوري البرمجيات والمساهمين بالكود البرمجي تثبيت الامتداد من غت بدلا من ذلك، مستخدمين:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter - حينما تثبته مستخدما غت شغّل Composer كي تثبت اعتمادات بي إتش بي، وذلك عن طريق إصدار
composer install --no-dev
في مجلد الامتداد. (طالع مهمة T173141 لتطلع على التعقيدات المحتملة.) - أضف الكود التالي في الجزء الأسفل من ملف LocalSettings.php :
wfLoadExtension( 'AbuseFilter' );
- شغل نص التحديث البرمجي الذي سوف ينشئ تلقائيا جداول قاعدة البيانات الضرورية التي يحتاج إليها الامتداد.
- أعدّ الملحق حسب ما هو مطلوب.
- تم التنفيذ – اذهب إلى Special:Version على موقع الويكي لديك كي تتحقق من أن الامتداد قد ثبت بنجاح.
لذلك، بعد التثبيت من Git، قم بالتغيير إلى الدليل الذي يحتوي على الامتداد، على سبيل المثال. "../extensions/AbuseFilter/" وتشغيل composer install --no-dev
، أو عند التحديث: composer update --no-dev
.
بدلا من ذلك ويفضل إضافة السطر "extensions/AbuseFilter/composer.json"
إلى الملف "composer.local.json" في الدليل الجذر لموقع الويكي الخاص بك مثل على سبيل المثال.
{
"extra": {
"merge-plugin": {
"include": [
"extensions/AbuseFilter/composer.json"
]
}
}
}
الإعداد
مجموعات المستخدمين
بمجرد تثبيت الملحق، سيتعين عليك إعداد صلاحيات المستخدم في "LocalSettings.php".
الصلاحية | الوصف | Notes | User groups that have this right by default | Versions |
---|---|---|---|---|
abusefilter-modify | إنشاء أو تعديل عوامل تصفية إساءة الاستخدام | Requires the abusefilter-view right
|
sysop | 1.19+ |
abusefilter-view | عرض مرشحات الإساءة | * | 1.19+ | |
abusefilter-log | عرض سجل الإساءة | * | 1.19+ | |
abusefilter-log-detail | عرض مدخلات سجل الإساءة المفصلة | Requires the abusefilter-log right
|
sysop | 1.19+ |
abusefilter-privatedetails | عرض البيانات السرية في سجل الإساءة | Prior to 1.34 this right was named abusefilter-private - Requires the abusefilter-log-detail right
|
— | 1.19+ |
abusefilter-modify-restricted | عدل مرشحات الإساءة مع الأفعال المحظورة | Requires the abusefilter-modify right
|
sysop | 1.19+ |
abusefilter-revert | استرجع كل التعديلات لمرشح إساءة محدد. | sysop | 1.19+ | |
abusefilter-view-private | اعرض مرشحات الإساءة المعلّمة كخاصة | Requires the abusefilter-view right (not needed if the group already has the abusefilter-modify right)
|
sysop | 1.19+ |
abusefilter-hide-log | إخفاء إدخالات سجل الإساءة | Requires the abusefilter-log right
|
suppress | 1.19+ |
abusefilter-hidden-log | عرض مدخلات سجل الإساءة المخفية | Requires the abusefilter-log right
|
suppress | 1.19+ |
abusefilter-log-private | عرض إدخالات السجل لمرشحات الإساءة المعلمة كخاصة | Requires the abusefilter-log right (not needed if the group already has the abusefilter-modify or abusefilter-view-private rights)
|
sysop | 1.20+ |
abusefilter-modify-global | إنشاء أو تعديل مرشحات الإساءة العالمية | Requires the abusefilter-modify right
|
— | 1.21+ |
abusefilter-privatedetails-log | عرض سجل دخول التفاصيل الخاصة لمرشح الإساءة | Prior to 1.34 this right was named abusefilter-private-log
|
— | 1.31+ |
abusefilter-modify-blocked-external-domains | إنشاء أو تعديل المجالات الخارجية التي تم حظرها من الارتباط | sysop | 1.41+ | |
abusefilter-bypass-blocked-external-domains | تم منع تجاوز المجالات الخارجية | Requires the edit right
|
bot | 1.41+ |
abusefilter-access-protected-vars | View and create filters that use protected variables | sysop | 1.43+ | |
abusefilter-protected-vars-log | View logs related to accessing protected variable values | sysop | 1.43+ |
على سبيل المثال، سيسمح النموذج التالي للإداريين 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;
$wgGroupPermissions['sysop']['abusefilter-access-protected-vars'] = true;
$wgGroupPermissions['sysop']['abusefilter-protected-vars-log'] = true;
abusefilter-access-protected-vars
permission. Logs pertaining to these filters can only be viewed by users with the abusefilter-protected-vars-log
permission. For more information, see Rules format .
معاملات
اسم المتغير | القيمة الافتراضية | الوصف |
---|---|---|
$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
]
| |
$wgAbuseFilterActionRestrictions
|
[
"throttle" => false,
"warn" => false,
"disallow" => false,
"blockautopromote" => true,
"block" => true,
"rangeblock" => true,
"degroup" => true,
"tag" => false
]
|
يجب أن يكون لدى المستخدمين حق المستخدم "ausefilter-modify-restricted" بالإضافة إلى "abusefilter-modify" من أجل إنشاء أو تعديل المرشحات التي تنفذ هذه الإجراءات. |
$wgAbuseFilterNotifications
|
false
|
يسمح بتكوين الامتداد لإرسال إشعارات النتائج إلى Special:RecentChanges أو UDP. الخيارات المتاحة: rc, udp, rcandudp
لإرسال التغييرات على مرشحات إساءة الاستخدام إلى Special:RecentChanges، استخدم
unset($wgLogRestrictions['abusefilter']); . |
$wgAbuseFilterNotificationsPrivate
|
false
|
تمكين الإخطارات للمرشحات الخاصة. |
$wgAbuseFilterCentralDB
|
null
|
MW 1.41+ اسم قاعدة البيانات التي سيتم تخزين عوامل تصفية الإساءة العالمية فيها (مدعومة فقط في الإصدار الأحدث للتطوير). يتطلب تثبيت CentralAuth وإلا ستنقطع المرشحات العامة في مزرعة wiki. |
$wgAbuseFilterIsCentral
|
false
|
MW 1.41+ قم بتعيين هذا المتغير إلى true للموقع wiki حيث يتم تخزين AbuseFilters العامة (مدعوم فقط في الإصدار الأحدث للتطوير). يتطلب تثبيت CentralAuth وإلا ستنقطع المرشحات العامة في مزرعة wiki. |
$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
|
المدة، بالأيام، التي يتم خلالها حظر الترويج التلقائي للمستخدمين بواسطة الفلاتر. |
$wgAbuseFilterDefaultWarningMessage
|
[
'default' => 'abusefilter-warning'
]
|
رسائل التحذير الافتراضية، لكل مجموعة تصفية |
$wgAbuseFilterDefaultDisallowMessage
|
[
'default' => 'abusefilter-disallowed'
]
|
عدم السماح بالرسائل الافتراضية، لكل مجموعة تصفية |
$wgAbuseFilterLogIP
|
true
|
هل يجب تضمين عنوان IP في سجل فلتر السوء؟ |
$wgAbuseFilterLogIPMaxAge
|
3 * 30 * 24 * 3600
|
العمر المستخدم كمعيار لحذف بيانات سجل العناوين IP القديمة. القيمة الافتراضية هي 3 أشهر. يُستخدم ذلك من قبل النص البرمجي للصيانة purgeOldLogIPData.php. |
$wgAbuseFilterProfileActionsCap
|
10000
|
عدد الإجراءات التي تحدد متى يجب إعادة تعيين إحصاءات التحليل الشخصي. |
$wgAbuseFilterLogPrivateDetailsAccess
|
false
|
هل يتم تسجيل الوصول إلى معلومات خاصة من إدخال سجل فلتر السوء؟ |
$wgAbuseFilterPrivateDetailsForceReason
|
false
|
هل يُجبر المستخدمون على تقديم سبب للوصول إلى معلومات خاصة من إدخال سجل فلتر السوء؟ |
$wgAbuseFilterSlowFilterRuntimeLimit
|
500
|
الوقت التشغيلي بالميلي ثانية قبل اعتبار فلتر بطيء. |
$wgAbuseFilterRangeBlockSize
|
[
'IPv4' => '16',
'IPv6' => '19',
]
|
حجم النطاق المحظور بواسطة إجراء 'rangeblock'. |
$wgAbuseFilterProtectedVariables
|
[ "user_unnamed_ip" ]
|
Array of variables that are be considered protected (limited access) and require the abusefilter-access-protected-vars right to use/view.
|
تنظيم الحد الطارئ
يأتي AbuseFilter مع ميزة تقوم تلقائيًا بتنظيم (تعطيل) الفلاتر التي تم تعديلها مؤخرًا وتتطابق مع عتبة معينة من آخر الإجراءات.
يتم ذلك لمنع التعديلات الضارة على الفلاتر التي تحظر كل مستخدم يقوم بإجراء على الويكي أو ما شابه ذلك.
شرط تعطيل الفلتر يعتمد على هذه المتغيرات:
$wgAbuseFilterEmergencyDisableThreshold
- نسبة الاطابات على اجمالي عدد الإجراءات في الفترة المراقبة.$wgAbuseFilterEmergencyDisableCount
- عدد المطابقات للفلتر في الفترة المراقبة.$wgAbuseFilterEmergencyDisableAge
- عمر الفلتر المراد احتسابه. إذا كان آخر تعديل للفلتر أقدم من هذا العدد من الثواني، فلن يتم تنظيم الفلتر، ما لم يكن قد تم بالفعل تنظيمه.
الفلاتر التي تم تنظيمها يمكن تحديدها في قائمة الفلاتر (Special:AbuseFilter) بالحالة مفعل, درجة عالية من التطابق. يتم تنظيم الفلاتر بشكل صامت، ولا يوجد طريقة لرؤية متى تم تنظيم فلتر ما، باستثناء عندما يتم تثبيت Extension:Echo ، ثم يتم إرسال إشعار إلى المستخدم الذي قام بآخر تعديل للفلتر.
عندما يتم تنظيم فلتر، فإنه لا ينفذ أي إجراء خطير (الإجراءات التي تقتصر عادة على الحقوق الخاصة مثل حظر المستخدم أو إزالته من المجموعات، والتي يتحكم فيها $wgAbuseFilterActionRestrictions)، ويُسمح فقط بالإجراءات "الآمنة" (تلك التي يمكن أن تحذر أو تمنع الإجراء الجاري). الفلاتر التي تم تنظيمها لا تُمكّن تلقائيًا مجددًا. لإلغاء التنظيم، يجب عليك تعديل الفلتر. لاحظ أنه يجب عليك فعليًا تغيير شيء ما في الفلتر؛ تغيير شيء في ملاحظات الفلتر يكفي.
لاحظ أن تعديل الفلتر يحدث عمره، ويمكن أن يتسبب في تعطيله إذا وصل مرة أخرى إلى الشروط المطلوبة لتنظيمه في فترة قصيرة منذ آخر تعديل، مما يؤدي إلى فلتر غير قابل للاستخدام إذا كان هناك في ويكي الخاص بك مزيد من التعديلات الضارة من التعديلات الشرعية.
إنشاء وإدارة المرشحات
بمجرد تثبيت الملحق، يمكن إنشاء المرشحات /اختبارها /تغييرها /حذفها ويمكن الوصول إلى السجلات من صفحة إدارة مرشحات الإساءة Special:AbuseFilter.
- شكل الأوامر Rules format - أساسيات كيفية كتابة مُرشِّح
- الإجراءات Actions
- قواعد عامة Global Rules
- مساعدة لتقليل استخدام الشروط Guide to optimizing condition limit usage
- لاستيراد فلاتر من ويكيبيديا: عندما تقوم بتثبيت الامتداد، اذهب إلى w:Special:AbuseFilter، اختر فلترًا (مثلاً w:Special:AbuseFilter/3، ثم انقر فوق "تصدير هذا الفلتر إلى ويكي آخر"، انسخ النص، انتقل إلى "Special:AbuseFilter/import" على ويكيك، والصق النص.
- m:Small wiki toolkits/Starter kit/AbuseFilter - دليل للمجتمعات الصغيرة على ميتاويكي
واجهة برمجة التطبيقات (API)
يضيف AbuseFilter وحدتين لقائمة واجهة برمجة التطبيقات (API)، واحدة لتفاصيل فلاتر السوء ("abusefilters") والأخرى لسجل السوء، حيث يكون منفصلاً عن سجلات ميدياويكي الأخرى ("abuselog"). لا يمكن إنشاء أو تعديل فلاتر السوء باستخدام واجهة برمجة التطبيقات (API).
list = abusefilters
قائمة المعلومات حول الفلاتر
- المعلمات
abfstartid
- معرف الفلتر للبدء في عملية التعدادabfendid
- معرف الفلتر لإنهاء عملية التعدادabfdir
- الاتجاه الذي يتم فيه التعداد (أقدم، أحدث)abfshow
- عرض الفلاتر التي تلبي هذه الشروط (مُفعلة|غير مُفعلة|محذوفة|غير محذوفة|خاصة|غير خاصة)abflimit
- أقصى عدد من الفلاتر ليتم سردهاabfprop
- الخصائص التي تُراد الحصول عليها (المعرف|الوصف|النمط|الإجراءات|المطابقات|التعليقات|المحرر الأخير|وقت آخر تعديل|الحالة|الخاص)
عندما تكون الفلاتر خاصة، قد يكون بعض الخصائص المحددة بواسطة 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
سرد الحالات التي أثارت فلتر السوء الإجراءات.
- المعلمات
aflstart
- الطابع الزمني للبدء في عملية التعدادaflend
- الطابع الزمني لإنهاء عملية التعدادafldir
- الاتجاه الذي يجب فيه تعداد العناصر (الأقدم، الأحدث)afluser
- عرض فقط الإدخالات التي تم تنفيذها من قبل مستخدم أو عنوان IP معين.afltitle
- عرض فقط الإدخالات التي تضمنت الصفحة المحددة.aflfilter
- إظهار الإدخالات التي أثرتها معرّفات التصفية المعطاةafllimit
- أقصى عدد من الإدخالات لعرضهاaflprop
- أي الخصائص للاسترداد؟ (ids|filter|user|ip|title|action|details|result|timestamp|hidden|revid|wiki)
- مثال
النتيجة |
---|
{
"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"
}
]
}
}
|
أخطاء محتملة
- قد يواجه بعض المستخدمين مشكلة في إنشاء فلاتر جديدة أو تعديل الفلاتر القديمة، حيث يتم إعادة توجيه المستخدم إلى الصفحة الأصلية دون نجاح العملية. إذا كانت الويكي تستخدم شهادات SSL، فقد يكون هذا الخطأ ناتجًا عن قيمة
$wgServer
، التي قد تستخدم "http://" بدلاً من "https://". إشارة إلى هذا الخطأ ستكون أن المتصفح يعطي تحذير https لصفحات Special:AbuseFilter. (Topic:T23dyyih0ofjada5)
التكامل مع الإضافات الأخرى
يمكنك دمج AbuseFilter مع الإضافات الأخرى بطرق متنوعة.
إضافة متغيرات للتصفية
من الممكن إضافة متغيرات جديدة لاستخدامها في فلاتر الاستخدام السيء. قائمة أمثلة متوفرة . للقيام بذلك، يجب عليك:
- أضف معالجًا لخطاف AbuseFilter-builder . لإضافة متغير، يجب استخدام
$builder['vars']['variable_name'] = 'i18n-key';
، حيثvariable_name
هو اسم المتغير، وi18n-key
هو جزء من مفتاح i18n. المفتاح الكامل سيكونabusefilter-edit-builder-vars-{$your_key}
. - أضف الرسائل i18n التي اخترتها في النقطة السابقة.
- اختر منبثق الخطاف حيث سيتم حساب المتغير. يمكنك، استنادًا إلى حالتك الاستخدامية،
- تطبيق الخطاف AbuseFilter-generateTitleVars ؛ هذا مخصص خصيصًا للمتغيرات المتعلقة بالصفحة.
- تطبيق الخطاف AbuseFilter-generateUserVars ؛ هذا مخصص خصيصًا للمتغيرات المتعلقة بالصفحة.
- Implement the AbuseFilter-generateGenericVars hook; this is for variables not bound to a specific page or user;
- Implement the AbuseFilterAlterVariables hook; this is a bit more flexible than the other hooks, but it has a downside: your variable will not be available when examining past RecentChanges entries. If you want to implement that feature (and it's recommended to do so), you should use one of the hooks listed above, and use its third parameter (
$RCRow
).
- Inside the hook handler, there are two ways to add a variable:
- The "direct" way is calling
$vars->setVar( 'var_name', var_value );
. This is ideal only when the value is easy and quick to compute: the value is computed even if no active filter will use it. - The "lazy" way is calling
$vars->setLazyLoadVar( 'var_name', 'method_name', $params );
. Here, 'method_name' is a (unique) identifier that will be used to compute the variable (it's recommended to prefix it with the name of your extension). To register the method, you should add a handler for the AbuseFilter-computeVariable hook; therein, you should check if the $method passed matches your 'method_name', and if so, compute the variable. Lastly, $params is an array of parameters that you'll need to compute the variable; these are passed to the computeVariable hook handler. For an example of this, you can check out CentralAuth'sglobal_user_groups
.
- The "direct" way is calling
Adding custom actions
You can add custom action handlers, so that each filter may perform further actions. To do that, you choose a name for the action ('my-action' from now on), and then:
- Create a class named e.g. MyAction, that should extend \MediaWiki\Extension\AbuseFilter\Consequence, which can also implement HookAborterConsequence or ConsequencesDisablerConsequence
- Add a subscriber to the AbuseFilterCustomActions hook; the subscriber should provide a callback as documented in the hook documentation, that returns an instance of the class created above, for instance:
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 );
};
}
Then you should add the following i18n messages; you can replace 'my_action' with e.g. 'block' to see what the messages are for:
'abusefilter-edit-action-${my_action}'
'abusefilter-action-${my_action}'
Adding rule groups
You can also add extra rule groups, which can be used to group existing abuse filters. Note that, at the moment, each filter can only be in a single group (T116642). Currently, the only known consumer of this feature is Extension:StructuredDiscussions . To do that, you should:
- Append the name of the group to
$wgAbuseFilterValidGroups
.
- Add some code to run the filters with your group. Note that AbuseFilter won't do that on its own. To do that, you should construct an
AbuseFilterRunner
object, passing in the name of your group.
See also
- Several WMF wikis where it's enabled (and with which configuration)
هذا الامتداد يستخدم على واحد من مشاريع ويكيميديا أو أكثر من واحد. يعني هذا الأمر أن الامتداد مستقر ويعمل/تعمل جيدا بما فيه الكفاية ليستخدم/لتستخدم في مواقع تتمتع بمستوى زيارات مرتفع مثل هذه. ابحث عن اسم هذا الامتداد في ملفات الضبط CommonSettings.php وكذلك InitialiseSettings.php كي ترى أين تنصب. توجد قائمة كاملة بالامتدادات المنصبة على موقع ويكي بعينه على صفحة Special:Version الخاصة بموقع الويكي. |
هذا الامتداد مشمول في الحزم أو مزارع الويكي التالية أو كليهما: هذه ليست قائمة كاملة. بعض مزارع الويكي أو الاستضافة أو حزم البرمجيات قد تحتوي على هذا الامتداد حتى لو كانت غير مدرجة هنا. راجع دائمًا مزرعة الويكي أو المستضيف أو حزمة البرمجيات للتأكد من ذلك. |
- Extensions bundled with MediaWiki 1.38/ar
- Stable extensions/ar
- User activity extensions/ar
- Special page extensions/ar
- API extensions/ar
- Extensions supporting Composer/ar
- GPL licensed extensions/ar
- Extensions in Wikimedia version control/ar
- BeforeCreateEchoEvent extensions/ar
- ChangeTagsListActive extensions/ar
- CheckUserInsertChangesRow extensions/ar
- CheckUserInsertLogEventRow extensions/ar
- CheckUserInsertPrivateEventRow extensions/ar
- ContributionsToolLinks extensions/ar
- EditFilterMergedContent extensions/ar
- GetAutoPromoteGroups extensions/ar
- GetPreferences extensions/ar
- HistoryPageToolLinks extensions/ar
- JsonValidateSave extensions/ar
- ListDefinedTags extensions/ar
- LoadExtensionSchemaUpdates extensions/ar
- PageDelete extensions/ar
- PageSaveComplete extensions/ar
- ParserOutputStashForEdit extensions/ar
- RecentChange save extensions/ar
- SaveUserOptions extensions/ar
- TitleMove extensions/ar
- UndeletePageToolLinks extensions/ar
- UploadStashFile extensions/ar
- UploadVerifyUpload extensions/ar
- UserMergeAccountFields extensions/ar
- GetUserPermissionsErrors extensions/ar
- All extensions/ar
- Extensions requiring Composer with git/ar
- Extensions used on Wikimedia/ar
- Extensions included in Canasta/ar
- Extensions available as Debian packages/ar
- Extensions included in Fandom/ar
- Extensions included in Miraheze/ar
- Extensions included in MyWikis/ar
- Extensions included in ProWiki/ar
- Extensions included in ShoutWiki/ar
- Extensions included in Telepedia/ar
- Extensions included in wiki.gg/ar
- Extensions included in WikiForge/ar
- Spam management extensions/ar