mediawiki-skins-Vector/ResourceLoaderLessModule.php
jdlrobson e2e3acf76a Print logo should use an absolute URI
The logo is configured as a relative URL.
CSSMin encodeImageAsDataURI requires a file path.

There seems to be no reason to use a data uri here.
The print stylesheet is loaded on page load so the image
will be downloaded before a print action takes place.

Inspecting I788bcecadf26e4e5558b5b37e6fb1b2e9378277e
using a data uri makes little difference to the synchronous
nature of a print.

Bug: T177800
Change-Id: I0254ae8e360f09fe1c786695510550c7fec02026
2017-10-11 19:06:29 +00:00

56 lines
1.8 KiB
PHP

<?php
/**
* ResourceLoader module for print styles.
*
* 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
*/
namespace Vector;
use ConfigFactory;
use CSSMin;
use MediaWiki\MediaWikiServices;
use ResourceLoaderContext;
use ResourceLoaderFileModule;
/**
* ResourceLoader module for print styles.
*/
class ResourceLoaderLessModule extends ResourceLoaderFileModule {
/**
* Get language-specific LESS variables for this module.
*
* @param ResourceLoaderContext $context
* @return array
*/
protected function getLessVars( ResourceLoaderContext $context ) {
$lessVars = parent::getLessVars( $context );
$config = MediaWikiServices::getInstance()->getConfigFactory()->makeConfig( 'vector' );
$printLogo = $config->get( 'VectorPrintLogo' );
if ( $printLogo ) {
$lessVars[ 'printLogo' ] = true;
$lessVars[ 'printLogoUrl' ] = CSSMin::buildUrlValue( $printLogo['url'] );
$lessVars[ 'printLogoWidth' ] = intval( $printLogo['width'] );
$lessVars[ 'printLogoHeight' ] = intval( $printLogo['height'] );
} else {
$lessVars[ 'printLogo' ] = false;
}
return $lessVars;
}
}