/** * Initialise the special page list * This must be called before accessing SpecialPage::$mList * * @return array */ static function getList() { global $wgSpecialPages; global $wgDisableCounters, $wgDisableInternalSearch, $wgEmailAuthentication; global $wgEnableEmail; if (!is_object(self::$mList)) { wfProfileIn(__METHOD__); if (!$wgDisableCounters) { self::$mList['Popularpages'] = 'PopularpagesPage'; } if (!$wgDisableInternalSearch) { self::$mList['Search'] = 'SpecialSearch'; } if ($wgEmailAuthentication) { self::$mList['Confirmemail'] = 'EmailConfirmation'; self::$mList['Invalidateemail'] = 'EmailInvalidation'; } if ($wgEnableEmail) { self::$mList['ChangeEmail'] = 'SpecialChangeEmail'; } // Add extension special pages self::$mList = array_merge(self::$mList, $wgSpecialPages); // Run hooks // This hook can be used to remove undesired built-in special pages wfRunHooks('SpecialPage_initList', array(&self::$mList)); // Cast to object: func()[$key] doesn't work, but func()->$key does settype(self::$mList, 'object'); wfProfileOut(__METHOD__); } return self::$mList; }