http://www.mediawiki.org/wiki/Special:Code/MediaWiki/93528

Revision: 93528
Author:   ialex
Date:     2011-07-30 15:13:28 +0000 (Sat, 30 Jul 2011)
Log Message:
-----------
Added TitleBlacklist::singleton() to get an instance of the TitleBlacklist 
instead of having to use $wgTitleBlacklist and call efInitTitleBlacklist()

Modified Paths:
--------------
    trunk/extensions/TitleBlacklist/TitleBlacklist.hooks.php
    trunk/extensions/TitleBlacklist/TitleBlacklist.list.php
    trunk/extensions/TitleBlacklist/TitleBlacklist.php
    trunk/extensions/TitleBlacklist/api/ApiQueryTitleBlacklist.php

Modified: trunk/extensions/TitleBlacklist/TitleBlacklist.hooks.php
===================================================================
--- trunk/extensions/TitleBlacklist/TitleBlacklist.hooks.php    2011-07-30 
15:03:21 UTC (rev 93527)
+++ trunk/extensions/TitleBlacklist/TitleBlacklist.hooks.php    2011-07-30 
15:13:28 UTC (rev 93528)
@@ -24,8 +24,6 @@
         * @return bool
         */
        public static function userCan( $title, $user, $action, &$result ) {
-               global $wgTitleBlacklist;
-
                # Some places check createpage, while others check create.
                # As it stands, upload does createpage, but normalize both
                # to the same action, to stop future similar bugs.
@@ -33,8 +31,7 @@
                        $action = 'create';
                }
                if( $action == 'create' || $action == 'edit' || $action == 
'upload' ) {
-                       efInitTitleBlacklist();
-                       $blacklisted = $wgTitleBlacklist->userCannot( $title, 
$user, $action );
+                       $blacklisted = TitleBlacklist::singleton()->userCannot( 
$title, $user, $action );
                        if( $blacklisted instanceof TitleBlacklistEntry ) {
                                $result = array( $blacklisted->getErrorMessage( 
'edit' ),
                                        htmlspecialchars( 
$blacklisted->getRaw() ),
@@ -56,11 +53,10 @@
         * @return bool
         */
        public static function abortMove( $old, $nt, $user, &$err ) {
-               global $wgTitleBlacklist;
-               efInitTitleBlacklist();
-               $blacklisted = $wgTitleBlacklist->userCannot( $nt, $user, 
'move' );
+               $titleBlacklist = TitleBlacklist::singleton();
+               $blacklisted = $titleBlacklist->userCannot( $nt, $user, 'move' 
);
                if( !$blacklisted ) {
-                       $blacklisted = $wgTitleBlacklist->userCannot( $old, 
$user, 'edit' );
+                       $blacklisted = $titleBlacklist->userCannot( $old, 
$user, 'edit' );
                }
                if( $blacklisted instanceof TitleBlacklistEntry ) {
                        $err = wfMsgWikiHtml( $blacklisted->getErrorMessage( 
'move' ),
@@ -81,10 +77,9 @@
         * @return bool Acceptable
         */
        private static function acceptNewUserName( $userName, &$err, $override 
= true ) {
-               global $wgTitleBlacklist, $wgUser;
-               efInitTitleBlacklist();
+               global $wgUser;
                $title = Title::makeTitleSafe( NS_USER, $userName );
-               $blacklisted = $wgTitleBlacklist->userCannot( $title, $wgUser, 
'new-account', $override );
+               $blacklisted = TitleBlacklist::singleton()->userCannot( $title, 
$wgUser, 'new-account', $override );
                if( $blacklisted instanceof TitleBlacklistEntry ) {
                        $message = $blacklisted->getErrorMessage( 'new-account' 
);
                        $err = wfMsgWikiHtml( $message, $blacklisted->getRaw(), 
$userName );
@@ -115,14 +110,14 @@
         * @param EditPage $editor
         */
        public static function validateBlacklist( $editor, $text, $section, 
$error ) {
-               global $wgTitleBlacklist, $wgUser;
-               efInitTitleBlacklist();
+               global $wgUser;
                $title = $editor->mTitle;
 
                if( $title->getNamespace() == NS_MEDIAWIKI && 
$title->getDBkey() == 'Titleblacklist' ) {
 
-                       $bl = $wgTitleBlacklist->parseBlacklist( $text );
-                       $ok = $wgTitleBlacklist->validate( $bl );
+                       $blackList = TitleBlacklist::singleton();
+                       $bl = $blackList->parseBlacklist( $text );
+                       $ok = $blackList->validate( $bl );
                        if( count( $ok ) == 0 ) {
                                return true;
                        }
@@ -142,7 +137,7 @@
                        # Block redirects to nonexistent blacklisted titles
                        $retitle = Title::newFromRedirect( $text );
                        if( $retitle !== null && !$retitle->exists() )  {
-                               $blacklisted = $wgTitleBlacklist->userCannot( 
$retitle, $wgUser, 'create' );
+                               $blacklisted = 
TitleBlacklist::singleton()->userCannot( $retitle, $wgUser, 'create' );
                                if( $blacklisted instanceof TitleBlacklistEntry 
) {
                                        $error = Html::openElement( 'div', 
array( 'class' => 'errorbox' ) ) .
                                                wfMsg( 
'titleblacklist-forbidden-edit',
@@ -167,9 +162,7 @@
        {
                $title = $article->getTitle();
                if( $title->getNamespace() == NS_MEDIAWIKI && 
$title->getDBkey() == 'Titleblacklist' ) {
-                       global $wgTitleBlacklist;
-                       efInitTitleBlacklist();
-                       $wgTitleBlacklist->invalidate();
+                       TitleBlacklist::singleton()->invalidate();
                }
                return true;
        }

Modified: trunk/extensions/TitleBlacklist/TitleBlacklist.list.php
===================================================================
--- trunk/extensions/TitleBlacklist/TitleBlacklist.list.php     2011-07-30 
15:03:21 UTC (rev 93527)
+++ trunk/extensions/TitleBlacklist/TitleBlacklist.list.php     2011-07-30 
15:13:28 UTC (rev 93528)
@@ -20,6 +20,20 @@
        const VERSION = 2;      //Blacklist format
 
        /**
+        * Get an instance of this class
+        *
+        * @return TitleBlacklist
+        */
+       public static function singleton() {
+               static $instance = null;
+
+               if ( $instance === null ) {
+                       $instance = new self;
+               }
+               return $instance;
+       }
+
+       /**
         * Load all configured blacklist sources
         */
        public function load() {

Modified: trunk/extensions/TitleBlacklist/TitleBlacklist.php
===================================================================
--- trunk/extensions/TitleBlacklist/TitleBlacklist.php  2011-07-30 15:03:21 UTC 
(rev 93527)
+++ trunk/extensions/TitleBlacklist/TitleBlacklist.php  2011-07-30 15:13:28 UTC 
(rev 93528)
@@ -59,15 +59,4 @@
 $wgHooks['ArticleSaveComplete'][] = 'TitleBlacklistHooks::clearBlacklist';
 $wgHooks['UserCreateForm'][] = 'TitleBlacklistHooks::addOverrideCheckbox';
 
-/**
- * Initialize the title blacklist
- */
-function efInitTitleBlacklist() {
-       global $wgTitleBlacklist;
-       if( isset( $wgTitleBlacklist ) && $wgTitleBlacklist ) {
-               return;
-       }
-       $wgTitleBlacklist = new TitleBlacklist();
-}
-
 //@}

Modified: trunk/extensions/TitleBlacklist/api/ApiQueryTitleBlacklist.php
===================================================================
--- trunk/extensions/TitleBlacklist/api/ApiQueryTitleBlacklist.php      
2011-07-30 15:03:21 UTC (rev 93527)
+++ trunk/extensions/TitleBlacklist/api/ApiQueryTitleBlacklist.php      
2011-07-30 15:13:28 UTC (rev 93528)
@@ -36,8 +36,6 @@
        }
 
        public function execute() {
-               global $wgTitleBlacklist; // When in Rome...
-
                # get the current user.
                $context = $this->createContext();
                $user = $context->getUser();
@@ -53,11 +51,8 @@
                if( $action === 'createpage' || $action === 'createtalk' ) {
                        $action = 'create';
                }
-               
-               // possible actions at the moment: create, edit, upload
-               efInitTitleBlacklist();
 
-               $blacklisted = $wgTitleBlacklist->userCannot( $params['title'], 
$user, $action );
+               $blacklisted = TitleBlacklist::singleton()->userCannot( 
$params['title'], $user, $action );
                if( $blacklisted instanceof TitleBlacklistEntry ) {
                        // this title is blacklisted.
                        $result = array(


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to