From: Niklas Laxström Date: Wed, 25 Jun 2008 11:23:34 +0000 (+0000) Subject: * Handle fallbacks too in extension aliases X-Git-Tag: 1.31.0-rc.0~46894 X-Git-Url: http://git.cyclocoop.org/%27.parametre_url%28%20%20%20generer_action_auteur%28%27charger_plugin%27%2C%20%27update_flux%27%29%2C%27update_flux%27%2C%20%27oui%27%29.%27?a=commitdiff_plain;h=3c43d81af580df88ca6e735f2905d17e78fd7f18;p=lhc%2Fweb%2Fwiklou.git * Handle fallbacks too in extension aliases --- diff --git a/languages/Language.php b/languages/Language.php index 92822525d7..65c153e404 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -1740,25 +1740,19 @@ class Language { if ( !isset($aliases['en']) ) throw new MWException( 'Malformed aliases file' ); + // Merge all aliases in fallback chain $code = $this->getCode(); + do { + if ( !isset($aliases[$code]) ) continue; - if ( isset($aliases[$code]) ) { $aliases[$code] = $this->fixSpecialPageAliases( $aliases[$code] ); /* Merge the aliases, THIS will break if there is special page name * which looks like a numerical key, thanks to PHP... * See the comments for wfArrayMerge in GlobalSettings.php. */ $this->mExtendedSpecialPageAliases = array_merge_recursive( $this->mExtendedSpecialPageAliases, $aliases[$code] ); - } - /* Add the English aliases to the end of list as aliases... unless we - * already added them! */ - if ( $code !== 'en' ) { - $aliases['en'] = $this->fixSpecialPageAliases( $aliases['en'] ); - $this->mExtendedSpecialPageAliases = array_merge_recursive( - $this->mExtendedSpecialPageAliases, $aliases['en'] ); - } - + } while ( $code = self::getFallbackFor( $code ) ); } wfRunHooks( 'LanguageGetSpecialPageAliases',