From c1f9b1f7b1b77776192048005dcc66dcf3df2bfb Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sat, 27 Dec 2014 15:41:37 +0100 Subject: Update to MediaWiki 1.24.1 --- .../ResourceLoaderEditToolbarModule.php | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 includes/resourceloader/ResourceLoaderEditToolbarModule.php (limited to 'includes/resourceloader/ResourceLoaderEditToolbarModule.php') diff --git a/includes/resourceloader/ResourceLoaderEditToolbarModule.php b/includes/resourceloader/ResourceLoaderEditToolbarModule.php new file mode 100644 index 00000000..2e07911c --- /dev/null +++ b/includes/resourceloader/ResourceLoaderEditToolbarModule.php @@ -0,0 +1,102 @@ + '\\\\', '"' => '\\"' ) ); + $value = preg_replace_callback( '/[\x01-\x1f\x7f-\x9f]/', function ( $match ) { + return '\\' . base_convert( ord( $match[0] ), 10, 16 ) . ' '; + }, $value ); + return '"' . $value . '"'; + } + + /** + * Get language-specific LESS variables for this module. + * + * @return array + */ + private function getLessVars( ResourceLoaderContext $context ) { + $language = Language::factory( $context->getLanguage() ); + + // This is very conveniently formatted and we can pass it right through + $vars = $language->getImageFiles(); + + // lessc tries to be helpful and parse our variables as LESS source code + foreach ( $vars as $key => &$value ) { + $value = self::cssSerializeString( $value ); + } + + return $vars; + } + + /** + * @param ResourceLoaderContext $context + * @return int UNIX timestamp + */ + public function getModifiedTime( ResourceLoaderContext $context ) { + return max( + parent::getModifiedTime( $context ), + $this->getHashMtime( $context ) + ); + } + + /** + * @param ResourceLoaderContext $context + * @return string Hash + */ + public function getModifiedHash( ResourceLoaderContext $context ) { + return md5( + parent::getModifiedHash( $context ) . + serialize( $this->getLessVars( $context ) ) + ); + } + + /** + * Get a LESS compiler instance for this module. + * + * Set our variables in it. + * + * @throws MWException + * @param ResourceLoaderContext $context + * @return lessc + */ + protected function getLessCompiler( ResourceLoaderContext $context = null ) { + $compiler = parent::getLessCompiler(); + $compiler->setVariables( $this->getLessVars( $context ) ); + return $compiler; + } +} -- cgit v1.2.3-54-g00ecf