/** * Get the special page list * * @return array */ static function getList() { global $wgSpecialPages; global $wgDisableCounters, $wgDisableInternalSearch, $wgEmailAuthentication; global $wgEnableEmail, $wgEnableJavaScriptTest; if (!is_object(self::$list)) { wfProfileIn(__METHOD__); if (!$wgDisableCounters) { self::$list['Popularpages'] = 'PopularPagesPage'; } if (!$wgDisableInternalSearch) { self::$list['Search'] = 'SpecialSearch'; } if ($wgEmailAuthentication) { self::$list['Confirmemail'] = 'EmailConfirmation'; self::$list['Invalidateemail'] = 'EmailInvalidation'; } if ($wgEnableEmail) { self::$list['ChangeEmail'] = 'SpecialChangeEmail'; } if ($wgEnableJavaScriptTest) { self::$list['JavaScriptTest'] = 'SpecialJavaScriptTest'; } self::$list['Activeusers'] = 'SpecialActiveUsers'; // Add extension special pages self::$list = array_merge(self::$list, $wgSpecialPages); // Run hooks // This hook can be used to remove undesired built-in special pages wfRunHooks('SpecialPage_initList', array(&self::$list)); // Cast to object: func()[$key] doesn't work, but func()->$key does settype(self::$list, 'object'); wfProfileOut(__METHOD__); } return self::$list; }
/** * Get the special page list as an array * * @return array */ private static function getPageList() { global $wgSpecialPages; global $wgDisableInternalSearch, $wgEmailAuthentication; global $wgEnableEmail, $wgEnableJavaScriptTest; global $wgPageLanguageUseDB, $wgContentHandlerUseDB; global $wgDisableAuthManager; if (!is_array(self::$list)) { self::$list = self::$coreList; if (!$wgDisableInternalSearch) { self::$list['Search'] = 'SpecialSearch'; } if ($wgEmailAuthentication) { self::$list['Confirmemail'] = 'EmailConfirmation'; self::$list['Invalidateemail'] = 'EmailInvalidation'; } if ($wgEnableEmail) { self::$list['ChangeEmail'] = 'SpecialChangeEmailPreAuthManager'; } if ($wgEnableJavaScriptTest) { self::$list['JavaScriptTest'] = 'SpecialJavaScriptTest'; } if ($wgPageLanguageUseDB) { self::$list['PageLanguage'] = 'SpecialPageLanguage'; } if ($wgContentHandlerUseDB) { self::$list['ChangeContentModel'] = 'SpecialChangeContentModel'; } // horrible hack to allow selection between old and new classes via a feature flag - T110756 // will be removed once AuthManager is stable if (!$wgDisableAuthManager) { self::$list = array_map(function ($class) { return preg_replace('/PreAuthManager$/', '', $class); }, self::$list); self::$list['Userlogout'] = 'SpecialUserLogout'; // case matters } else { self::$list['Userlogin'] = '******'; self::$list = array_diff_key(self::$list, array_fill_keys(['LinkAccounts', 'UnlinkAccounts', 'ChangeCredentials', 'RemoveCredentials'], true)); } // Add extension special pages self::$list = array_merge(self::$list, $wgSpecialPages); // This hook can be used to disable unwanted core special pages // or conditionally register special pages. Hooks::run('SpecialPage_initList', [&self::$list]); } return self::$list; }
/** * Get the special page list as an array * * @return array */ private static function getPageList() { global $wgSpecialPages; global $wgDisableInternalSearch, $wgEmailAuthentication; global $wgEnableEmail, $wgEnableJavaScriptTest; global $wgPageLanguageUseDB, $wgContentHandlerUseDB; if (!is_array(self::$list)) { self::$list = self::$coreList; if (!$wgDisableInternalSearch) { self::$list['Search'] = 'SpecialSearch'; } if ($wgEmailAuthentication) { self::$list['Confirmemail'] = 'EmailConfirmation'; self::$list['Invalidateemail'] = 'EmailInvalidation'; } if ($wgEnableEmail) { self::$list['ChangeEmail'] = 'SpecialChangeEmail'; } if ($wgEnableJavaScriptTest) { self::$list['JavaScriptTest'] = 'SpecialJavaScriptTest'; } if ($wgPageLanguageUseDB) { self::$list['PageLanguage'] = 'SpecialPageLanguage'; } if ($wgContentHandlerUseDB) { self::$list['ChangeContentModel'] = 'SpecialChangeContentModel'; } self::$list['Activeusers'] = 'SpecialActiveUsers'; // Add extension special pages self::$list = array_merge(self::$list, $wgSpecialPages); // This hook can be used to disable unwanted core special pages // or conditionally register special pages. Hooks::run('SpecialPage_initList', array(&self::$list)); } return self::$list; }