From 147113bda515bbeaaa5c8c6f80eeb20bb2e4d87c Mon Sep 17 00:00:00 2001 From: "Amir E. Aharoni" Date: Tue, 26 Nov 2013 15:24:17 +0200 Subject: [PATCH] Simplify interlanguage links creation by early return Change-Id: I023ac75ec7bce1996da50af78912dc990e69ad4d --- includes/SkinTemplate.php | 74 ++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/includes/SkinTemplate.php b/includes/SkinTemplate.php index 414312ac91..7647e51895 100644 --- a/includes/SkinTemplate.php +++ b/includes/SkinTemplate.php @@ -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() { -- 2.20.1