mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/Vector.git
synced 2024-11-11 16:59:09 +00:00
Use SkinFactory to register skin, and Config instead of globals
Change-Id: Ic90969e5d71458c880f2b59e160ffedd7a5ac9be
This commit is contained in:
parent
2a1f5b0727
commit
83707028e5
|
@ -30,6 +30,14 @@ class SkinVector extends SkinTemplate {
|
|||
public $skinname = 'vector';
|
||||
public $stylename = 'Vector';
|
||||
public $template = 'VectorTemplate';
|
||||
/**
|
||||
* @var Config
|
||||
*/
|
||||
private $config;
|
||||
|
||||
public function __construct( Config $config ) {
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
protected static $bodyClasses = array( 'vector-animateLayout' );
|
||||
|
||||
|
@ -38,8 +46,6 @@ class SkinVector extends SkinTemplate {
|
|||
* @param OutputPage $out Object to initialize
|
||||
*/
|
||||
public function initPage( OutputPage $out ) {
|
||||
global $wgLocalStylePath;
|
||||
|
||||
parent::initPage( $out );
|
||||
|
||||
// Append CSS which includes IE only behavior fixes for hover support -
|
||||
|
@ -48,7 +54,7 @@ class SkinVector extends SkinTemplate {
|
|||
$min = $this->getRequest()->getFuzzyBool( 'debug' ) ? '' : '.min';
|
||||
$out->addHeadItem( 'csshover',
|
||||
'<!--[if lt IE 7]><style type="text/css">body{behavior:url("' .
|
||||
htmlspecialchars( $wgLocalStylePath ) .
|
||||
htmlspecialchars( $this->getConfig()->get( 'LocalStylePath' ) ) .
|
||||
"/{$this->stylename}/csshover{$min}.htc\")}</style><![endif]-->"
|
||||
);
|
||||
|
||||
|
@ -67,6 +73,13 @@ class SkinVector extends SkinTemplate {
|
|||
$out->addModuleStyles( $styles );
|
||||
}
|
||||
|
||||
/**
|
||||
* Override to pass our Config instance to it
|
||||
*/
|
||||
public function setupTemplate( $classname, $repository = false, $cache_dir = false ) {
|
||||
return new $classname( $this->config );
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds classes to the body element.
|
||||
*
|
||||
|
|
40
Vector.php
40
Vector.php
|
@ -38,7 +38,29 @@ $wgAutoloadClasses['VectorTemplate'] = __DIR__ . '/VectorTemplate.php';
|
|||
$wgMessagesDirs['Vector'] = __DIR__ . '/i18n';
|
||||
|
||||
// Register skin
|
||||
$wgValidSkinNames['vector'] = 'Vector';
|
||||
SkinFactory::getDefaultInstance()->register( 'vector', 'Vector', function(){
|
||||
$config = ConfigFactory::getDefaultInstance()->makeConfig( 'vector' );
|
||||
return new SkinVector( $config );
|
||||
} );
|
||||
|
||||
// Register config
|
||||
$wgConfigRegistry['vector'] = 'GlobalVarConfig::newInstance';
|
||||
|
||||
// Configuration options
|
||||
/**
|
||||
* Search form look.
|
||||
* - true = use an icon search button
|
||||
* - false = use Go & Search buttons
|
||||
*/
|
||||
$wgVectorUseSimpleSearch = true;
|
||||
|
||||
/**
|
||||
* Watch and unwatch as an icon rather than a link.
|
||||
* - true = use an icon watch/unwatch button
|
||||
* - false = use watch/unwatch text link
|
||||
*/
|
||||
$wgVectorUseIconWatch = true;
|
||||
|
||||
|
||||
// Register modules
|
||||
$wgResourceModules['skins.vector.styles'] = array(
|
||||
|
@ -86,19 +108,3 @@ $wgResourceModuleSkinStyles['vector'] = array(
|
|||
'remoteSkinPath' => 'Vector',
|
||||
'localBasePath' => __DIR__,
|
||||
);
|
||||
|
||||
// Configuration options
|
||||
|
||||
/**
|
||||
* Search form look.
|
||||
* - true = use an icon search button
|
||||
* - false = use Go & Search buttons
|
||||
*/
|
||||
$wgVectorUseSimpleSearch = true;
|
||||
|
||||
/**
|
||||
* Watch and unwatch as an icon rather than a link.
|
||||
* - true = use an icon watch/unwatch button
|
||||
* - false = use watch/unwatch text link
|
||||
*/
|
||||
$wgVectorUseIconWatch = true;
|
||||
|
|
|
@ -33,12 +33,10 @@ class VectorTemplate extends BaseTemplate {
|
|||
* Outputs the entire contents of the (X)HTML page
|
||||
*/
|
||||
public function execute() {
|
||||
global $wgVectorUseIconWatch;
|
||||
|
||||
// Build additional attributes for navigation urls
|
||||
$nav = $this->data['content_navigation'];
|
||||
|
||||
if ( $wgVectorUseIconWatch ) {
|
||||
if ( $this->config->get( 'VectorUseIconWatch' ) ) {
|
||||
$mode = $this->getSkin()->getUser()->isWatched( $this->getSkin()->getRelevantTitle() )
|
||||
? 'unwatch'
|
||||
: 'watch';
|
||||
|
@ -362,8 +360,6 @@ class VectorTemplate extends BaseTemplate {
|
|||
* @param array $elements
|
||||
*/
|
||||
protected function renderNavigation( $elements ) {
|
||||
global $wgVectorUseSimpleSearch;
|
||||
|
||||
// If only one element was given, wrap it in an array, allowing more
|
||||
// flexible arguments
|
||||
if ( !is_array( $elements ) ) {
|
||||
|
@ -546,7 +542,7 @@ class VectorTemplate extends BaseTemplate {
|
|||
|
||||
<form action="<?php $this->text( 'wgScript' ) ?>" id="searchform">
|
||||
<?php
|
||||
if ( $wgVectorUseSimpleSearch ) {
|
||||
if ( $this->config->get( 'VectorUseSimpleSearch' ) ) {
|
||||
?>
|
||||
<div id="simpleSearch">
|
||||
<?php
|
||||
|
|
Loading…
Reference in a new issue