* Handle fallbacks too in extension aliases
authorNiklas Laxström <nikerabbit@users.mediawiki.org>
Wed, 25 Jun 2008 11:23:34 +0000 (11:23 +0000)
committerNiklas Laxström <nikerabbit@users.mediawiki.org>
Wed, 25 Jun 2008 11:23:34 +0000 (11:23 +0000)
languages/Language.php

index 9282252..65c153e 100644 (file)
@@ -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',