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