$missingPages = clone self::getList();
self::$aliases = array();
- foreach ( $aliases as $realName => $aliasList ) {
- foreach ( $aliasList as $alias ) {
- self::$aliases[$wgContLang->caseFold( $alias )] = $realName;
+ // Check for $aliases being an array since Language::getSpecialPageAliases can return null
+ if ( is_array( $aliases ) ) {
+ foreach ( $aliases as $realName => $aliasList ) {
+ foreach ( $aliasList as $alias ) {
+ self::$aliases[$wgContLang->caseFold( $alias )] = $realName;
+ }
+ unset( $missingPages->$realName );
}
- unset( $missingPages->$realName );
}
foreach ( $missingPages as $name => $stuff ) {
self::$aliases[$wgContLang->caseFold( $name )] = $name;
* Return categorised listable special pages which are available
* for the current user, but not for everyone
*
+ * @param User|null $user User object to use or null for $wgUser
* @return array ( string => Specialpage )
*/
- public static function getRestrictedPages() {
- global $wgUser;
+ public static function getRestrictedPages( User $user = null ) {
$pages = array();
+ if ( $user === null ) {
+ global $wgUser;
+ $user = $wgUser;
+ }
foreach ( self::getList() as $name => $rec ) {
$page = self::getPage( $name );
if (
$page->isListed()
&& $page->isRestricted()
- && $page->userCanExecute( $wgUser )
+ && $page->userCanExecute( $user )
) {
$pages[$name] = $page;
}
} else {
// Try harder in case someone misspelled the correct casing
$found = false;
- foreach ( $aliases as $n => $values ) {
- if ( strcasecmp( $name, $n ) === 0 ) {
- wfWarn( "Found alias defined for $n when searching for " .
- "special page aliases for $name. Case mismatch?" );
- $name = $values[0];
- $found = true;
- break;
+ // Check for $aliases being an array since Language::getSpecialPageAliases can return null
+ if ( is_array( $aliases ) ) {
+ foreach ( $aliases as $n => $values ) {
+ if ( strcasecmp( $name, $n ) === 0 ) {
+ wfWarn( "Found alias defined for $n when searching for " .
+ "special page aliases for $name. Case mismatch?" );
+ $name = $values[0];
+ $found = true;
+ break;
+ }
}
}
if ( !$found ) {