mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/Vector.git
synced 2024-11-28 17:40:12 +00:00
2dbe4d7af1
Thanks to the dependent change, the print logo is now provided in core so we can remove the custom Vector ResourceLoader module ResourceLoaderLessModule is replaced with a ResourceLoaderSkinModule and gains the features capability replacing the need for 'mediawiki.skinning.interface' making use of the changes added in 6845912bcf1. Note that for cached HTML both 'mediawiki.skinning.interface' and skins.vector.styles will be loaded. We can avoid this by renaming skins.vector.styles if necessary (but I'm not sure if we'd want to do that) Bug: T232140 Depends-On: I00899c16c0325f36b671baf17e88c2b5187b3526 Change-Id: I569e0d800e147eabc7852567acd140108613f074
94 lines
2.5 KiB
PHP
94 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* Vector - Modern version of MonoBook with fresh look and many usability
|
|
* improvements.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*
|
|
* @file
|
|
* @ingroup Skins
|
|
*/
|
|
|
|
/**
|
|
* Skin subclass for Vector
|
|
* @ingroup Skins
|
|
*/
|
|
class SkinVector extends SkinTemplate {
|
|
public $skinname = 'vector';
|
|
public $stylename = 'Vector';
|
|
public $template = 'VectorTemplate';
|
|
|
|
private $responsiveMode = false;
|
|
|
|
/**
|
|
* Enables the responsive mode
|
|
*/
|
|
public function enableResponsiveMode() {
|
|
if ( !$this->responsiveMode ) {
|
|
$out = $this->getOutput();
|
|
$out->addMeta( 'viewport', 'width=device-width, initial-scale=1' );
|
|
$out->addModuleStyles( 'skins.vector.styles.responsive' );
|
|
$this->responsiveMode = true;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Initializes output page and sets up skin-specific parameters
|
|
* @param OutputPage $out Object to initialize
|
|
*/
|
|
public function initPage( OutputPage $out ) {
|
|
parent::initPage( $out );
|
|
|
|
if ( $this->getConfig()->get( 'VectorResponsive' ) ) {
|
|
$this->enableResponsiveMode();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
* @return array
|
|
*/
|
|
public function getDefaultModules() {
|
|
$modules = parent::getDefaultModules();
|
|
// add vector skin styles and vector module
|
|
$modules['styles']['skin'][] = 'skins.vector.styles';
|
|
$modules['core'][] = 'skins.vector.js';
|
|
|
|
return $modules;
|
|
}
|
|
|
|
/**
|
|
* Set up the VectorTemplate
|
|
*
|
|
* @param string $classname
|
|
* @return VectorTemplate
|
|
*/
|
|
public function setupTemplate( $classname ) {
|
|
$template = new VectorTemplate( $this->getConfig() );
|
|
$template->setTemplateParser( new TemplateParser( __DIR__ . '/templates' ) );
|
|
return $template;
|
|
}
|
|
|
|
/**
|
|
* Whether the logo should be preloaded with an HTTP link header or not
|
|
* @since 1.29
|
|
* @return bool
|
|
*/
|
|
public function shouldPreloadLogo() {
|
|
return true;
|
|
}
|
|
}
|