MaxSem has submitted this change and it was merged.
Change subject: Move header to generic MinervaTemplate
......................................................................
Move header to generic MinervaTemplate
Slight modifications to handling of special page headers to store
them in one template variable. This makes a few html changes to the
special page making it more consistent with the normal page skin
Ensure watch star doesn't initiate on special pages
Change-Id: I95d3cdacb6c07744541f0a0d5d04d2b976dcf22b
---
M includes/skins/MinervaTemplate.php
M includes/skins/SkinMobile.php
M includes/skins/SkinMobileTemplate.php
M javascripts/modules/mf-watchstar.js
4 files changed, 78 insertions(+), 44 deletions(-)
Approvals:
MaxSem: Verified; Looks good to me, approved
awjrichards: Verified; Looks good to me, but someone else must approve
diff --git a/includes/skins/MinervaTemplate.php
b/includes/skins/MinervaTemplate.php
index 663e417..f6d9451 100644
--- a/includes/skins/MinervaTemplate.php
+++ b/includes/skins/MinervaTemplate.php
@@ -1,6 +1,29 @@
<?php
class MinervaTemplate extends BaseTemplate {
+ public function getSearchPlaceholderText() {
+ return wfMessage( 'mobile-frontend-placeholder' )->escaped();
+ }
+
private function prepareCommonData() {
+ $searchBox = $this->makeSearchInput(
+ array(
+ 'id' => 'searchInput',
+ 'class' => 'search',
+ 'autocomplete' => 'off',
+ 'placeholder' =>
$this->getSearchPlaceholderText(),
+ )
+ );
+ $script = $this->data['wgScript'];
+ $searchButton = $this->makeSearchButton( 'go', array( 'class'
=> 'searchSubmit' ) );
+ $header = <<<HTML
+<form action="{$script}" class="search-box">
+ <div class="divclearable">
+ {$searchBox}
+ {$searchButton}
+ </div>
+</form>
+HTML;
+ $this->set( 'header', $header );
// menu button
$url = SpecialPage::getTitleFor( 'MobileMenu' )->getLocalUrl()
. '#mw-mf-page-left';
@@ -13,7 +36,8 @@
);
}
- public function prepareData() { // expects to be overriden
+ public function prepareData() {
+ $this->set( 'isSpecialPage', Title::newFromText( $this->data[
'title' ] )->isSpecialPage() );
}
private function prepareBannerData() {
@@ -93,5 +117,15 @@
<!-- start -->
<?php
echo $this->html( 'banners' );
+ ?>
+ <div class="header">
+ <?php
+ echo $this->html( 'menuButton' );
+ echo $this->html( 'header' );
+ ?>
+ <ul id="mw-mf-menu-page">
+ </ul>
+ </div>
+ <?php
}
}
diff --git a/includes/skins/SkinMobile.php b/includes/skins/SkinMobile.php
index 750898b..dd7d8ef 100644
--- a/includes/skins/SkinMobile.php
+++ b/includes/skins/SkinMobile.php
@@ -16,10 +16,10 @@
$tpl->set( 'title', $title );
$tpl->set( 'user', $user );
$context = MobileContext::singleton();
-
- $device = $context->getDevice();
$inBeta = $context->isBetaGroupMember();
$inAlpha = $context->isAlphaGroupMember();
+
+ $device = $context->getDevice();
$tpl->set( 'action', $context->getRequest()->getText( 'action'
) );
$tpl->set( 'isAlphaGroupMember', $inAlpha );
@@ -193,13 +193,15 @@
}
$htmlHeader = $this->getOutput()->getProperty(
'mobile.htmlHeader' );
- if ( !$htmlHeader && $isSpecialPage ) {
- $htmlHeader = Html::element( 'h1', array(),
$pageHeading );
+ if ( $isSpecialPage ) {
+ if ( !$htmlHeader ) {
+ $htmlHeader = Html::element( 'h1', array(),
$pageHeading );
+ }
+ $tpl->set( 'specialPageHeader', $htmlHeader );
}
$tpl->set( 'prebodytext', $preBodyText );
$tpl->set( 'postbodytext', $postBodyText );
- $tpl->set( 'htmlHeader', $htmlHeader );
}
/**
diff --git a/includes/skins/SkinMobileTemplate.php
b/includes/skins/SkinMobileTemplate.php
index 666e9f9..6927a98 100644
--- a/includes/skins/SkinMobileTemplate.php
+++ b/includes/skins/SkinMobileTemplate.php
@@ -1,6 +1,35 @@
<?php
class SkinMobileTemplate extends MinervaTemplate {
+ public function getMode() {
+ $context = MobileContext::singleton();
+ if ( $context->isAlphaGroupMember() ) {
+ return 'alpha';
+ } else if ( $context->isBetaGroupMember() ) {
+ return 'beta';
+ } else {
+ return 'stable';
+ }
+ }
+
+ public function getSearchPlaceholderText() {
+ $mode = $this->getMode();
+ if ( $mode === 'alpha' ) {
+ return wfMessage( 'mobile-frontend-placeholder-alpha'
)->escaped();
+ } else if ( $mode === 'beta' ) {
+ return wfMessage( 'mobile-frontend-placeholder-beta'
)->escaped();
+ } else {
+ return wfMessage( 'mobile-frontend-placeholder'
)->escaped();
+ }
+ }
+
+ /**
+ * Constructor
+ */
+ public function __construct() {
+ parent::__construct();
+ }
+
public function renderArticleSkin() {
$languages = $this->getLanguages();
$variants = $this->getLanguageVariants();
@@ -12,7 +41,6 @@
'variantSummary' => count( $variants ) > 1 ? wfMessage(
'mobile-frontend-language-variant-header' )->text() : '',
);
?>
- <?php $this->renderArticleHeader() ?>
<div class='show' id='content_wrapper'>
<div id="content" class="content">
<?php
@@ -29,17 +57,6 @@
} ?>
<?php
$this->navigationEnd();
- }
-
- public function renderArticleHeader() {
- echo '<div class="header">';
- if ( $this->data['htmlHeader'] ) {
- $this->html( 'menuButton' );
- echo $this->data['htmlHeader'];
- } else {
- $this->searchBox();
- }
- echo '</div>';
}
public function execute() {
@@ -61,36 +78,16 @@
public function prepareData() {
global $wgExtensionAssetsPath,
$wgMobileFrontendLogo;
+ $data = $this->data;
wfProfileIn( __METHOD__ );
$this->setRef( 'wgExtensionAssetsPath', $wgExtensionAssetsPath
);
$this->set( 'wgMobileFrontendLogo', $wgMobileFrontendLogo );
- wfProfileOut( __METHOD__ );
- }
-
- private function searchBox() {
- if ( $this->data['isAlphaGroupMember'] ) {
- $placeholder = wfMessage(
'mobile-frontend-placeholder-alpha' )->text();
- } else if ( $this->data['isBetaGroupMember'] ) {
- $placeholder = wfMessage(
'mobile-frontend-placeholder-beta' )->text();
- } else {
- $placeholder = wfMessage( 'mobile-frontend-placeholder'
)->text();
+ if ( isset( $data['specialPageHeader'] ) ) {
+ $this->set( 'header', $data['specialPageHeader'] );
}
- ?>
- <?php $this->html( 'menuButton' ) ?>
- <form id="mw-mf-searchForm" action="<?php $this->text(
'wgScript' ) ?>" class="search-box" method="get">
- <input type="hidden" value="Special:Search"
name="title" />
- <div id="mw-mf-sq" class="divclearable">
- <input type="search" name="search"
id="searchInput" size="22" value="<?php $this->text( 'searchField' )
- ?>" autocomplete="off" maxlength="1024"
class="search"
- placeholder="<?php echo $placeholder ?>"
- />
- <input class='searchSubmit' type="submit"
value="<?php $this->msg( 'mobile-frontend-search-submit' ) ?>">
- </div>
- </form>
- <ul id="mw-mf-menu-page"></ul>
- <?php
+ wfProfileOut( __METHOD__ );
}
private function footer() {
diff --git a/javascripts/modules/mf-watchstar.js
b/javascripts/modules/mf-watchstar.js
index d46e1c8..99a8af3 100644
--- a/javascripts/modules/mf-watchstar.js
+++ b/javascripts/modules/mf-watchstar.js
@@ -222,11 +222,12 @@
}
function init( container, title ) {
- var pageTitle = mw.config.get( 'wgTitle' );
+ var pageTitle = mw.config.get( 'wgTitle' ),
+ isSpecialPage = mw.config.get( 'wgNamespaceNumber' )
=== mw.config.get( 'wgNamespaceIds' ).special;
container = container || $( '<li>' ).appendTo(
nav.getPageMenu() )[ 0 ];
title = title || pageTitle;
// initialise on current page
- if ( container ) {
+ if ( container && !isSpecialPage ) {
initWatchListIcon( container, title );
}
--
To view, visit https://gerrit.wikimedia.org/r/58994
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I95d3cdacb6c07744541f0a0d5d04d2b976dcf22b
Gerrit-PatchSet: 9
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>
Gerrit-Reviewer: JGonera <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: MaxSem <[email protected]>
Gerrit-Reviewer: awjrichards <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits