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

Reply via email to