https://www.mediawiki.org/wiki/Special:Code/MediaWiki/102138
Revision: 102138
Author: cryptocoryne
Date: 2011-11-06 01:15:55 +0000 (Sun, 06 Nov 2011)
Log Message:
-----------
Allow to define custom actions and their callback functions
Modified Paths:
--------------
trunk/extensions/AbuseFilter/AbuseFilter.class.php
trunk/extensions/AbuseFilter/AbuseFilter.php
Modified: trunk/extensions/AbuseFilter/AbuseFilter.class.php
===================================================================
--- trunk/extensions/AbuseFilter/AbuseFilter.class.php 2011-11-06 01:15:25 UTC
(rev 102137)
+++ trunk/extensions/AbuseFilter/AbuseFilter.class.php 2011-11-06 01:15:55 UTC
(rev 102138)
@@ -935,6 +935,8 @@
public static function takeConsequenceAction( $action, $parameters,
$title,
$vars, $rule_desc )
{
+ global $wgAbuseFilterCustomActionsHandlers;
+
$display = '';
switch ( $action ) {
case 'disallow':
@@ -1073,6 +1075,18 @@
AbuseFilter::$tagsToSet[$actionID] =
$parameters;
break;
default:
+ if( is_array(
$wgAbuseFilterCustomActionsHandlers ) &&
+ in_array( $action, array_keys(
$wgAbuseFilterCustomActionsHandlers ) ) )
+ {
+ $custom_function =
$wgAbuseFilterCustomActionsHandlers[$action];
+ if( is_callable( $custom_function ) ) {
+ $ok = call_user_func(
$custom_function, $action, $parameters, $title, $vars, $rule_desc );
+ }
+ if( $ok ) {
+ $display .= wfMsgExt(
'abusefilter-' . $action, 'parseinline', array() ) . "<br />\n";
+ }
+ break;
+ }
wfDebugLog( 'AbuseFilter', "Unrecognised action
$action" );
}
Modified: trunk/extensions/AbuseFilter/AbuseFilter.php
===================================================================
--- trunk/extensions/AbuseFilter/AbuseFilter.php 2011-11-06 01:15:25 UTC
(rev 102137)
+++ trunk/extensions/AbuseFilter/AbuseFilter.php 2011-11-06 01:15:55 UTC
(rev 102138)
@@ -166,3 +166,5 @@
// Block duration
$wgAbuseFilterBlockDuration = 'indefinite';
+
+$wgAbuseFilterCustomActionsHandlers = false;
\ No newline at end of file
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs