Merge "Update OOjs UI to v0.1.0-pre (99ec31d9b9)"
[lhc/web/wiklou.git] / includes / specialpage / SpecialPageFactory.php
index e0a0f46..febd119 100644 (file)
@@ -47,7 +47,7 @@ class SpecialPageFactory {
        /**
         * List of special page names to the subclass of SpecialPage which handles them.
         */
-       private static $list = array(
+       private static $coreList = array(
                // Maintenance Reports
                'BrokenRedirects' => 'BrokenRedirectsPage',
                'Deadendpages' => 'DeadendPagesPage',
@@ -156,6 +156,7 @@ class SpecialPageFactory {
                'Booksources' => 'SpecialBookSources',
 
                // Unlisted / redirects
+               'ApiHelp' => 'SpecialApiHelp',
                'Blankpage' => 'SpecialBlankpage',
                'Diff' => 'SpecialDiff',
                'Emailuser' => 'SpecialEmailUser',
@@ -174,6 +175,7 @@ class SpecialPageFactory {
                'Userlogout' => 'SpecialUserlogout',
        );
 
+       private static $list;
        private static $aliases;
 
        /**
@@ -217,9 +219,11 @@ class SpecialPageFactory {
                global $wgEnableEmail, $wgEnableJavaScriptTest;
                global $wgPageLanguageUseDB;
 
-               if ( !is_object( self::$list ) ) {
+               if ( !is_array( self::$list ) ) {
                        wfProfileIn( __METHOD__ );
 
+                       self::$list = self::$coreList;
+
                        if ( !$wgDisableCounters ) {
                                self::$list['Popularpages'] = 'PopularPagesPage';
                        }
@@ -271,12 +275,13 @@ class SpecialPageFactory {
                if ( !is_object( self::$aliases ) ) {
                        global $wgContLang;
                        $aliases = $wgContLang->getSpecialPageAliases();
+                       $pageList = self::getPageList();
 
                        self::$aliases = array();
                        $keepAlias = array();
 
                        // Force every canonical name to be an alias for itself.
-                       foreach ( self::getPageList() as $name => $stuff ) {
+                       foreach ( $pageList as $name => $stuff ) {
                                $caseFoldedAlias = $wgContLang->caseFold( $name );
                                self::$aliases[$caseFoldedAlias] = $name;
                                $keepAlias[$caseFoldedAlias] = 'canonical';