Jdlrobson has uploaded a new change for review.
https://gerrit.wikimedia.org/r/58459
Change subject: Cleanup Skin language and variants
......................................................................
Cleanup Skin language and variants
Change-Id: I2e339b52e780a686ebc77cf341e346aa90550571
---
M MobileFrontend.php
A includes/skins/MinervaTemplate.php
M includes/skins/SkinMobile.php
M includes/skins/SkinMobileTemplate.php
4 files changed, 72 insertions(+), 87 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend
refs/changes/59/58459/1
diff --git a/MobileFrontend.php b/MobileFrontend.php
index ccb9d4f..7523124 100644
--- a/MobileFrontend.php
+++ b/MobileFrontend.php
@@ -61,6 +61,7 @@
'UnlistedSpecialMobilePage' => 'specials/UnlistedSpecialMobilePage',
'SpecialLoginHandshake' => 'specials/SpecialLoginHandshake',
+ 'MinervaTemplate' => 'skins/MinervaTemplate',
'SkinMobile' => 'skins/SkinMobile',
'SkinMobileTemplate' => 'skins/SkinMobileTemplate',
'SkinMobileBase' => 'skins/SkinMobileBase',
diff --git a/includes/skins/MinervaTemplate.php
b/includes/skins/MinervaTemplate.php
new file mode 100644
index 0000000..89ce6b6
--- /dev/null
+++ b/includes/skins/MinervaTemplate.php
@@ -0,0 +1,18 @@
+<?php
+class MinervaTemplate extends BaseTemplate {
+ public function execute() {
+ parent::execute();
+ }
+
+ public function getLanguageVariants() {
+ if ( isset( $this->data['content_navigation'] ) ) {
+ return $this->data['content_navigation']['variants'];
+ } else {
+ return $this->data['variants'];
+ }
+ }
+
+ public function getLanguages() {
+ return $this->data['language_urls'];
+ }
+}
diff --git a/includes/skins/SkinMobile.php b/includes/skins/SkinMobile.php
index 7920091..0257f85 100644
--- a/includes/skins/SkinMobile.php
+++ b/includes/skins/SkinMobile.php
@@ -48,9 +48,10 @@
$this->prepareTemplatePageContent( $tpl );
$this->prepareTemplateLinks( $tpl );
+ $this->prepareLanguages( $tpl );
+ $this->prepareLanguageVariants( $tpl );
$tpl->set( 'isMainPage', $title->isMainPage() );
- $tpl->set( 'languageCount', count( $this->getLanguageUrls() ) +
1 );
wfProfileIn( __METHOD__ . '-modules' );
@@ -200,9 +201,8 @@
$this->getLanguage()->userTime( $timestamp,
$user )
)->parse();
$timestamp = wfTimestamp( TS_UNIX, $timestamp );
- $postBodyText = $this->buildLanguageSelection();
// add last modified timestamp
- $postBodyText .= "<p id=\"mw-mf-last-modified\"
data-timestamp=\"$timestamp\">$lastModified</p>";
+ $postBodyText = "<p id=\"mw-mf-last-modified\"
data-timestamp=\"$timestamp\">$lastModified</p>";
}
$htmlHeader = $this->getOutput()->getProperty(
'mobile.htmlHeader' );
@@ -371,81 +371,8 @@
);
}
- public function buildLanguageSelection() {
- wfProfileIn( __METHOD__ );
- $supportedLanguages = array();
- if ( is_array( $this->hookOptions ) && isset(
$this->hookOptions['supported_languages'] ) ) {
- $supportedLanguages =
$this->hookOptions['supported_languages'];
- }
- $languageUrls = $this->getLanguageUrls();
- $languageVariantUrls = $this->getLanguageVariantUrls();
- if ( empty( $languageUrls ) && count( $languageVariantUrls ) <=
1 ) {
- wfProfileOut( __METHOD__ );
- return '';
- }
-
- // language variants list
- if ( count( $languageVariantUrls ) > 1 ) {
- $msgLanguageVariants = wfMessage(
'mobile-frontend-language-variant-header' )->text();
- $languageVariants = '<p
id="mw-mf-language-variant-header">' . $msgLanguageVariants . '</p>';
- $languageVariants .= Html::openElement( 'ul', array(
'id' => 'mw-mf-language-variant-selection' ) );
-
- foreach ( $languageVariantUrls as $languageVariantUrl )
{
- $languageVariants .= Html::openElement( 'li' )
. Html::element( 'a',
- array( 'href' =>
$languageVariantUrl['href'],
- 'lang' =>
$languageVariantUrl['lang'],
- 'hreflang' =>
$languageVariantUrl['lang']
- ),
- $languageVariantUrl['text'] ) .
Html::closeElement( 'li' );
- }
-
- $languageVariants .= Html::closeElement( 'ul' );
- } else {
- $languageVariants = '';
- }
-
- // languages list
- $msgLanguages = wfMessage( 'mobile-frontend-language-header',
count( $languageUrls ) )->text();
- $languages = '<p id="mw-mf-language-header">' . $msgLanguages .
'</p>';
- $languages .= Html::openElement( 'ul', array( 'id' =>
'mw-mf-language-selection' ) );
-
- foreach ( $languageUrls as $languageUrl ) {
- $languageUrlHref = $languageUrl['href'];
- $languageUrlLanguage = $languageUrl['language'];
- if ( is_array( $supportedLanguages ) && in_array(
$languageUrl['lang'], $supportedLanguages ) ) {
- if ( isset(
$this->hookOptions['toggle_view_desktop'] ) ) {
- $request = $this->getRequest();
- $returnto = $request->appendQuery(
$this->hookOptions['toggle_view_desktop'] );
- $languageUrlHref = $returnto .
- urlencode( $languageUrlHref );
- }
- }
- $languages .= Html::openElement( 'li' ) .
Html::element( 'a',
- array( 'href' => $languageUrlHref,
- 'lang' => $languageUrl['lang'],
- 'hreflang' => $languageUrl['lang']
- ),
- $languageUrlLanguage ) . Html::closeElement(
'li' );
- }
-
- $languages .= Html::closeElement( 'ul' );
-
- $heading = wfMessage(
'mobile-frontend-language-article-heading' )->text();
- $output = <<<HTML
- <div class="section" id="mw-mf-language-section">
- <h2 id="section_language"
class="section_heading">{$heading}</h2>
- <div id="content_language"
class="content_block">
- {$languageVariants}
- {$languages}
- </div>
- </div>
-HTML;
- wfProfileOut( __METHOD__ );
- return $output;
- }
-
-
- public function getLanguageUrls() {
+ // FIXME: Becomes obsolete on SkinMobileBase::outputPage removed
+ public function prepareLanguages( QuickTemplate $tpl ) {
global $wgContLang;
wfProfileIn( __METHOD__ );
@@ -472,12 +399,12 @@
);
}
}
+ $tpl->set( 'language_urls', $languageUrls );
wfProfileOut( __METHOD__ );
-
- return $languageUrls;
}
- public function getLanguageVariantUrls() {
+ // FIXME: Becomes obsolete on SkinMobileBase::outputPage removed
+ public function prepareLanguageVariants( QuickTemplate $tpl ) {
global $wgDisableLangConversion;
wfProfileIn( __METHOD__ );
@@ -512,9 +439,8 @@
}
}
+ $tpl->set( 'variants', $languageVariantUrls );
wfProfileOut( __METHOD__ );
-
- return $languageVariantUrls;
}
/**
diff --git a/includes/skins/SkinMobileTemplate.php
b/includes/skins/SkinMobileTemplate.php
index 8a5c88f..1c6bcc7 100644
--- a/includes/skins/SkinMobileTemplate.php
+++ b/includes/skins/SkinMobileTemplate.php
@@ -1,7 +1,44 @@
<?php
-class SkinMobileTemplate extends BaseTemplate {
+class SkinMobileTemplate extends MinervaTemplate {
+ private function renderLanguages( $data ) {
+ if ( $data['languages'] && count( $data['languages'] ) > 0 ) {
+ ?>
+ <div class="section" id="mw-mf-language-section">
+ <h2 id="section_language" class="section_heading"><?php
echo $data['heading']; ?></h2>
+ <div id="content_language" class="content_block">
+ <p id="mw-mf-language-variant-header"><?php
echo $data['variantSummary']; ?></p>
+ <ul id="mw-mf-language-variant-selection">
+ <?php
+ foreach( $data['variants'] as $key => $val ):
+ echo $this->makeListItem( $key, $val );
+ endforeach;
+ ?>
+ </ul>
+ <p id="mw-mf-language-header"><?php echo
$data['languageSummary']; ?></p>
+ <ul id="mw-mf-language-selection">
+ <?php
+ foreach( $data['languages'] as $key => $val ):
+ echo $this->makeListItem( $key, $val );
+ endforeach;
+ ?>
+ </ul>
+ </div>
+ </div>
+ <?php
+ }
+ }
+
public function renderArticleSkin() {
+ $languages = $this->getLanguages();
+ $variants = $this->getLanguageVariants();
+ $languageData = array(
+ 'heading' => wfMessage(
'mobile-frontend-language-article-heading' )->text(),
+ 'languages' => $languages,
+ 'variants' => $variants,
+ 'languageSummary' => wfMessage(
'mobile-frontend-language-header', count( $languages ) )->text(),
+ 'variantSummary' => count( $variants ) > 1 ? wfMessage(
'mobile-frontend-language-variant-header' )->text() : '',
+ );
$this->navigationStart();
?>
<?php $this->html( 'zeroRatedBanner' ) ?>
@@ -12,9 +49,12 @@
<?php $this->renderArticleHeader() ?>
<div class='show' id='content_wrapper'>
<div id="content" class="content">
- <?php $this->html( 'prebodytext' ) ?>
- <?php $this->html( 'bodytext' ) ?>
- <?php $this->html( 'postbodytext' ) ?>
+ <?php
+ $this->html( 'prebodytext' );
+ $this->html( 'bodytext' );
+ $this->renderLanguages( $languageData );
+ $this->html( 'postbodytext' );
+ ?>
</div><!-- close #content -->
</div><!-- close #content_wrapper -->
<?php
--
To view, visit https://gerrit.wikimedia.org/r/58459
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I2e339b52e780a686ebc77cf341e346aa90550571
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits