MaxSem has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/62652


Change subject: Separate language generation from outputPage
......................................................................

Separate language generation from outputPage

Helps with readability - outputPage function is extremely long
Also helps with extensions of SkinTemplate that override outputPage
(for example skin in MobileFrontend)

See related change id: I04b625c8d76bb6a061e3201847bf97185c6b7a29

Change-Id: I4a49e704f6fe72c74ecb9103fb081aed93a86de7
---
M includes/SkinTemplate.php
1 file changed, 45 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/52/62652/1

diff --git a/includes/SkinTemplate.php b/includes/SkinTemplate.php
index 9014c7f..08c87a6 100644
--- a/includes/SkinTemplate.php
+++ b/includes/SkinTemplate.php
@@ -123,6 +123,49 @@
        }
 
        /**
+        * Generates array of language links for the current page
+        *
+        * @return array
+        * @public
+        */
+       public function getLanguages() {
+               global $wgHideInterlanguageLinks;
+               $out = $this->getOutput();
+
+               # Language links
+               $language_urls = array();
+
+               if ( !$wgHideInterlanguageLinks ) {
+                       foreach( $out->getLanguageLinks() as $languageLinkText 
) {
+                               $languageLinkParts = explode( ':', 
$languageLinkText, 2 );
+                               $class = '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 );
+                                       }
+
+                                       $language_urls[] = array(
+                                               'href' => 
$languageLinkTitle->getFullURL(),
+                                               'text' => $ilLangName,
+                                               'title' => 
$languageLinkTitle->getText(),
+                                               'class' => $class,
+                                               'lang' => $ilInterwikiCode,
+                                               'hreflang' => $ilInterwikiCode
+                                       );
+                               }
+                       }
+               }
+               return $language_urls;
+       }
+
+       /**
         * initialize various variables and generate the template
         *
         * @param $out OutputPage
@@ -132,7 +175,7 @@
                global $wgScript, $wgStylePath;
                global $wgMimeType, $wgJsMimeType;
                global $wgXhtmlDefaultNamespace, $wgXhtmlNamespaces, 
$wgHtml5Version;
-               global $wgDisableCounters, $wgSitename, $wgLogo, 
$wgHideInterlanguageLinks;
+               global $wgDisableCounters, $wgSitename, $wgLogo;
                global $wgMaxCredits, $wgShowCreditsIfMax;
                global $wgPageShowWatchingUsers;
                global $wgArticlePath, $wgScriptPath, $wgServer;
@@ -409,36 +452,7 @@
                $out->mBodytext = Html::rawElement( 'div', $realBodyAttribs, 
$out->mBodytext );
                $tpl->setRef( 'bodytext', $out->mBodytext );
 
-               # Language links
-               $language_urls = array();
-
-               if ( !$wgHideInterlanguageLinks ) {
-                       foreach( $out->getLanguageLinks() as $languageLinkText 
) {
-                               $languageLinkParts = explode( ':', 
$languageLinkText, 2 );
-                               $class = '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 );
-                                       }
-
-                                       $language_urls[] = array(
-                                               'href' => 
$languageLinkTitle->getFullURL(),
-                                               'text' => $ilLangName,
-                                               'title' => 
$languageLinkTitle->getText(),
-                                               'class' => $class,
-                                               'lang' => $ilInterwikiCode,
-                                               'hreflang' => $ilInterwikiCode
-                                       );
-                               }
-                       }
-               }
+               $language_urls = $this->getLanguages();
                if ( count( $language_urls ) ) {
                        $tpl->setRef( 'language_urls', $language_urls );
                } else {

-- 
To view, visit https://gerrit.wikimedia.org/r/62652
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4a49e704f6fe72c74ecb9103fb081aed93a86de7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: wmf/1.22wmf2
Gerrit-Owner: MaxSem <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to