Simplify interlanguage links creation by early return
authorAmir E. Aharoni <amir.aharoni@mail.huji.ac.il>
Tue, 26 Nov 2013 13:24:17 +0000 (15:24 +0200)
committerAmir E. Aharoni <amir.aharoni@mail.huji.ac.il>
Tue, 26 Nov 2013 13:26:51 +0000 (15:26 +0200)
Change-Id: I023ac75ec7bce1996da50af78912dc990e69ad4d

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() {