Merge "Remove superfluous rules from print CSS"
[lhc/web/wiklou.git] / includes / resourceloader / ResourceLoaderEditToolbarModule.php
1 <?php
2 /**
3 * Resource loader module for the edit toolbar.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 * http://www.gnu.org/copyleft/gpl.html
19 *
20 * @file
21 */
22
23 /**
24 * ResourceLoader module for the edit toolbar.
25 *
26 * @since 1.24
27 */
28 class ResourceLoaderEditToolbarModule extends ResourceLoaderFileModule {
29
30 /**
31 * Get language-specific LESS variables for this module.
32 *
33 * @return array
34 */
35 private function getLessVars( ResourceLoaderContext $context ) {
36 $language = Language::factory( $context->getLanguage() );
37
38 // This is very conveniently formatted and we can pass it right through
39 $vars = $language->getImageFiles();
40
41 // less.php tries to be helpful and parse our variables as LESS source code
42 foreach ( $vars as $key => &$value ) {
43 $value = CSSMin::serializeStringValue( $value );
44 }
45
46 return $vars;
47 }
48
49 /**
50 * @return bool
51 */
52 public function enableModuleContentVersion() {
53 return true;
54 }
55
56 /**
57 * Get a LESS compiler instance for this module.
58 *
59 * Set our variables in it.
60 *
61 * @throws MWException
62 * @param ResourceLoaderContext $context
63 * @return Less_Parser
64 */
65 protected function getLessCompiler( ResourceLoaderContext $context = null ) {
66 $parser = parent::getLessCompiler();
67 $parser->ModifyVars( $this->getLessVars( $context ) );
68 return $parser;
69 }
70 }