/** * 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 * 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 */ static function getAliasList() { if (!is_object(self::$mAliases)) { global $wgContLang; $aliases = $wgContLang->getSpecialPageAliases(); // Objects are passed by reference by default, need to create a copy $missingPages = clone self::getList(); self::$mAliases = array(); foreach ($aliases as $realName => $aliasList) { foreach ($aliasList as $alias) { self::$mAliases[$wgContLang->caseFold($alias)] = $realName; } unset($missingPages->{$realName}); } foreach ($missingPages as $name => $stuff) { self::$mAliases[$wgContLang->caseFold($name)] = $name; } // Cast to object: func()[$key] doesn't work, but func()->$key does self::$mAliases = (object) self::$mAliases; } return self::$mAliases; }