Merge "Title::getTalkPage(): Restore behavior of interwiki-prefixed & fragment-only...
[lhc/web/wiklou.git] / includes / resourceloader / ResourceLoaderLessVarFileModule.php
index 17d00e0..49501ff 100644 (file)
@@ -1,13 +1,45 @@
 <?php
+/**
+ * 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
+ */
 
 /**
- * Subclass with context specific LESS variables
+ * Module augmented with context-specific LESS variables.
+ *
+ * @ingroup ResourceLoader
+ * @since 1.32
  */
 class ResourceLoaderLessVarFileModule extends ResourceLoaderFileModule {
-       protected $lessVariables = [
-               'collapsible-collapse',
-               'collapsible-expand',
-       ];
+       protected $lessVariables = [];
+
+       /**
+        * @inheritDoc
+        */
+       public function __construct(
+               $options = [],
+               $localBasePath = null,
+               $remoteBasePath = null
+       ) {
+               if ( isset( $options['lessMessages'] ) ) {
+                       $this->lessVariables = $options['lessMessages'];
+               }
+               parent::__construct( $options, $localBasePath, $remoteBasePath );
+       }
 
        /**
         * @inheritDoc
@@ -19,9 +51,10 @@ class ResourceLoaderLessVarFileModule extends ResourceLoaderFileModule {
 
        /**
         * Exclude a set of messages from a JSON string representation
+        *
         * @param string $blob
         * @param array $exclusions
-        * @return array $blob
+        * @return object $blob
         */
        protected function excludeMessagesFromBlob( $blob, $exclusions ) {
                $data = json_decode( $blob, true );
@@ -29,7 +62,7 @@ class ResourceLoaderLessVarFileModule extends ResourceLoaderFileModule {
                foreach ( $exclusions as $key ) {
                        unset( $data[$key] );
                }
-               return $data;
+               return (object)$data;
        }
 
        /**
@@ -45,6 +78,7 @@ class ResourceLoaderLessVarFileModule extends ResourceLoaderFileModule {
         * (ModifyVars) method so that the variable can be loaded and made available to stylesheets.
         * Note this does not take care of CSS escaping. That will be taken care of as part
         * of CSS Janus.
+        *
         * @param string $msg
         * @return string wrapped LESS variable definition
         */
@@ -53,14 +87,16 @@ class ResourceLoaderLessVarFileModule extends ResourceLoaderFileModule {
        }
 
        /**
-        * @param \ResourceLoaderContext $context
+        * Get language-specific LESS variables for this module.
+        *
+        * @param ResourceLoaderContext $context
         * @return array LESS variables
         */
-       protected function getLessVars( \ResourceLoaderContext $context ) {
+       protected function getLessVars( ResourceLoaderContext $context ) {
                $blob = parent::getMessageBlob( $context );
                $lessMessages = $this->excludeMessagesFromBlob( $blob, $this->messages );
 
-               $vars = [];
+               $vars = parent::getLessVars( $context );
                foreach ( $lessMessages as $msgKey => $value ) {
                        $vars['msg-' . $msgKey] = self::wrapAndEscapeMessage( $value );
                }