Merge "Simplify interlanguage links creation by early return"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 27 Nov 2013 13:19:26 +0000 (13:19 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 27 Nov 2013 13:19:26 +0000 (13:19 +0000)
includes/SkinTemplate.php

index 414312a..7647e51 100644 (file)
@@ -130,51 +130,53 @@ class SkinTemplate extends Skin {
         */
        public function getLanguages() {
                global $wgHideInterlanguageLinks;
+               if ( $wgHideInterlanguageLinks ) {
+                       return array();
+               }
+
                $out = $this->getOutput();
                $userLang = $this->getLanguage();
 
-               # Language links
-               $language_urls = array();
-
-               if ( !$wgHideInterlanguageLinks ) {
-                       foreach ( $out->getLanguageLinks() as $languageLinkText ) {
-                               $languageLinkParts = explode( ':', $languageLinkText, 2 );
-                               $class = 'interlanguage-link interwiki-' . $languageLinkParts[0];
-                               unset( $languageLinkParts );
-                               $languageLinkTitle = Title::newFromText( $languageLinkText );
-                               if ( $languageLinkTitle ) {
-                                       $ilInterwikiCode = $languageLinkTitle->getInterwiki();
-                                       $ilLangName = Language::fetchLanguageName( $ilInterwikiCode );
-
-                                       if ( strval( $ilLangName ) === '' ) {
-                                               $ilLangName = $languageLinkText;
-                                       } else {
-                                               $ilLangName = $this->formatLanguageName( $ilLangName );
-                                       }
+               $languageLinks = array();
 
-                                       // CLDR extension or similar is required to localize the language name;
-                                       // otherwise we'll end up with the autonym again.
-                                       $ilLangLocalName = Language::fetchLanguageName( $ilInterwikiCode, $userLang->getCode() );
+               foreach ( $out->getLanguageLinks() as $languageLinkText ) {
+                       $languageLinkParts = explode( ':', $languageLinkText, 2 );
+                       $class = 'interlanguage-link interwiki-' . $languageLinkParts[0];
+                       unset( $languageLinkParts );
+                       $languageLinkTitle = Title::newFromText( $languageLinkText );
+                       if ( $languageLinkTitle ) {
+                               $ilInterwikiCode = $languageLinkTitle->getInterwiki();
+                               $ilLangName = Language::fetchLanguageName( $ilInterwikiCode );
 
-                                       if ( $languageLinkTitle->getText() === '' ) {
-                                               $ilTitle = wfMessage( 'interlanguage-link-title-langonly', $ilLangLocalName )->text();
-                                       } else {
-                                               $ilTitle = wfMessage( 'interlanguage-link-title', $languageLinkTitle->getText(),
-                                                       $ilLangLocalName )->text();
-                                       }
+                               if ( strval( $ilLangName ) === '' ) {
+                                       $ilLangName = $languageLinkText;
+                               } else {
+                                       $ilLangName = $this->formatLanguageName( $ilLangName );
+                               }
 
-                                       $language_urls[] = array(
-                                               'href' => $languageLinkTitle->getFullURL(),
-                                               'text' => $ilLangName,
-                                               'title' => $ilTitle,
-                                               'class' => $class,
-                                               'lang' => wfBCP47( $ilInterwikiCode ),
-                                               'hreflang' => wfBCP47( $ilInterwikiCode ),
-                                       );
+                               // CLDR extension or similar is required to localize the language name;
+                               // otherwise we'll end up with the autonym again.
+                               $ilLangLocalName = Language::fetchLanguageName( $ilInterwikiCode, $userLang->getCode() );
+
+                               if ( $languageLinkTitle->getText() === '' ) {
+                                       $ilTitle = wfMessage( 'interlanguage-link-title-langonly', $ilLangLocalName )->text();
+                               } else {
+                                       $ilTitle = wfMessage( 'interlanguage-link-title', $languageLinkTitle->getText(),
+                                               $ilLangLocalName )->text();
                                }
+
+                               $languageLinks[] = array(
+                                       'href' => $languageLinkTitle->getFullURL(),
+                                       'text' => $ilLangName,
+                                       'title' => $ilTitle,
+                                       'class' => $class,
+                                       'lang' => wfBCP47( $ilInterwikiCode ),
+                                       'hreflang' => wfBCP47( $ilInterwikiCode ),
+                               );
                        }
                }
-               return $language_urls;
+
+               return $languageLinks;
        }
 
        protected function setupTemplateForOutput() {