diff options
Diffstat (limited to 'includes/SpecialPageFactory.php')
-rw-r--r-- | includes/SpecialPageFactory.php | 59 |
1 files changed, 26 insertions, 33 deletions
diff --git a/includes/SpecialPageFactory.php b/includes/SpecialPageFactory.php index 95f75a8e..7368ab77 100644 --- a/includes/SpecialPageFactory.php +++ b/includes/SpecialPageFactory.php @@ -80,6 +80,7 @@ class SpecialPageFactory { 'Categories' => 'SpecialCategories', 'Disambiguations' => 'DisambiguationsPage', 'Listredirects' => 'ListredirectsPage', + 'PagesWithProp' => 'SpecialPagesWithProp', // Login/create account 'Userlogin' => 'LoginForm', @@ -95,7 +96,7 @@ class SpecialPageFactory { 'Preferences' => 'SpecialPreferences', 'Contributions' => 'SpecialContributions', 'Listgrouprights' => 'SpecialListGroupRights', - 'Listusers' => 'SpecialListUsers' , + 'Listusers' => 'SpecialListUsers', 'Listadmins' => 'SpecialListAdmins', 'Listbots' => 'SpecialListBots', 'Activeusers' => 'SpecialActiveUsers', @@ -119,7 +120,7 @@ class SpecialPageFactory { 'Upload' => 'SpecialUpload', 'UploadStash' => 'SpecialUploadStash', - // Wiki data and tools + // Data and tools 'Statistics' => 'SpecialStatistics', 'Allmessages' => 'SpecialAllmessages', 'Version' => 'SpecialVersion', @@ -155,7 +156,6 @@ class SpecialPageFactory { 'Blankpage' => 'SpecialBlankpage', 'Blockme' => 'SpecialBlockme', 'Emailuser' => 'SpecialEmailUser', - 'JavaScriptTest' => 'SpecialJavaScriptTest', 'Movepage' => 'MovePageForm', 'Mycontributions' => 'SpecialMycontributions', 'Mypage' => 'SpecialMypage', @@ -178,7 +178,7 @@ class SpecialPageFactory { static function getList() { global $wgSpecialPages; global $wgDisableCounters, $wgDisableInternalSearch, $wgEmailAuthentication; - global $wgEnableEmail; + global $wgEnableEmail, $wgEnableJavaScriptTest; if ( !is_object( self::$mList ) ) { wfProfileIn( __METHOD__ ); @@ -200,6 +200,10 @@ class SpecialPageFactory { self::$mList['ChangeEmail'] = 'SpecialChangeEmail'; } + if( $wgEnableJavaScriptTest ) { + self::$mList['JavaScriptTest'] = 'SpecialJavaScriptTest'; + } + // Add extension special pages self::$mList = array_merge( self::$mList, $wgSpecialPages ); @@ -218,7 +222,7 @@ class SpecialPageFactory { /** * Initialise and return the list of special page aliases. Returns an object with * properties which can be accessed $obj->pagename - each property is an array of - * aliases; the first in the array is the cannonical alias. All registered special + * aliases; the first in the array is the canonical alias. All registered special * pages are guaranteed to have a property entry, and for that property array to * contain at least one entry (English fallbacks will be added if necessary). * @return Object @@ -282,8 +286,11 @@ class SpecialPageFactory { * * @param $page Mixed: SpecialPage or string * @param $group String + * @deprecated 1.21 Override SpecialPage::getGroupName */ public static function setGroup( $page, $group ) { + wfDeprecated( __METHOD__, '1.21' ); + global $wgSpecialPageGroups; $name = is_object( $page ) ? $page->getName() : $page; $wgSpecialPageGroups[$name] = $group; @@ -294,34 +301,18 @@ class SpecialPageFactory { * * @param $page SpecialPage * @return String + * @deprecated 1.21 Use SpecialPage::getFinalGroupName */ public static function getGroup( &$page ) { - $name = $page->getName(); + wfDeprecated( __METHOD__, '1.21' ); - global $wgSpecialPageGroups; - static $specialPageGroupsCache = array(); - if ( isset( $specialPageGroupsCache[$name] ) ) { - return $specialPageGroupsCache[$name]; - } - $msg = wfMessage( 'specialpages-specialpagegroup-' . strtolower( $name ) ); - if ( !$msg->isBlank() ) { - $group = $msg->text(); - } else { - $group = isset( $wgSpecialPageGroups[$name] ) - ? $wgSpecialPageGroups[$name] - : '-'; - } - if ( $group == '-' ) { - $group = 'other'; - } - $specialPageGroupsCache[$name] = $group; - return $group; + return $page->getFinalGroupName(); } /** * Check if a given name exist as a special page or as a special page alias * - * @param $name String: name of a special page + * @param string $name name of a special page * @return Boolean: true if a special page exists with this name */ public static function exists( $name ) { @@ -332,8 +323,8 @@ class SpecialPageFactory { /** * Find the object with a given name and return it (or NULL) * - * @param $name String Special page name, may be localised and/or an alias - * @return SpecialPage object or null if the page doesn't exist + * @param string $name Special page name, may be localised and/or an alias + * @return SpecialPage|null SpecialPage object or null if the page doesn't exist */ public static function getPage( $name ) { list( $realName, /*...*/ ) = self::resolveAlias( $name ); @@ -370,11 +361,13 @@ class SpecialPageFactory { } foreach ( self::getList() as $name => $rec ) { $page = self::getPage( $name ); - if ( $page // not null - && $page->isListed() - && ( !$page->isRestricted() || $page->userCanExecute( $user ) ) - ) { - $pages[$name] = $page; + if ( $page ) { // not null + $page->setContext( RequestContext::getMain() ); + if ( $page->isListed() + && ( !$page->isRestricted() || $page->userCanExecute( $user ) ) + ) { + $pages[$name] = $page; + } } } return $pages; @@ -471,7 +464,7 @@ class SpecialPageFactory { if ( $name != $page->getLocalName() && !$context->getRequest()->wasPosted() ) { $query = $context->getRequest()->getQueryValues(); unset( $query['title'] ); - $query = wfArrayToCGI( $query ); + $query = wfArrayToCgi( $query ); $title = $page->getTitle( $par ); $url = $title->getFullUrl( $query ); $context->getOutput()->redirect( $url ); |