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