Add CollationFa
[lhc/web/wiklou.git] / includes / resourceloader / ResourceLoaderUserCSSPrefsModule.php
index 9d97eea..4d0bff7 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Resource loader module for user preference customizations.
+ * ResourceLoader module for user preference customizations.
  *
  * 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
  */
 class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
 
-       /* Protected Members */
-
-       protected $modifiedTime = array();
-
        protected $origin = self::ORIGIN_CORE_INDIVIDUAL;
 
-       /* Methods */
-
        /**
-        * @param ResourceLoaderContext $context
-        * @return array|int|mixed
+        * @return bool
         */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
-               $hash = $context->getHash();
-               if ( !isset( $this->modifiedTime[$hash] ) ) {
-                       $this->modifiedTime[$hash] = wfTimestamp( TS_UNIX, $context->getUserObj()->getTouched() );
-               }
-
-               return $this->modifiedTime[$hash];
+       public function enableModuleContentVersion() {
+               return true;
        }
 
        /**
@@ -54,22 +42,18 @@ class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
         */
        public function getStyles( ResourceLoaderContext $context ) {
                if ( !$this->getConfig()->get( 'AllowUserCssPrefs' ) ) {
-                       return array();
+                       return [];
                }
 
                $options = $context->getUserObj()->getOptions();
 
                // Build CSS rules
-               $rules = array();
+               $rules = [];
 
-               // Underline: 2 = browser default, 1 = always, 0 = never
+               // Underline: 2 = skin default, 1 = always, 0 = never
                if ( $options['underline'] < 2 ) {
                        $rules[] = "a { text-decoration: " .
                                ( $options['underline'] ? 'underline' : 'none' ) . "; }";
-               } else {
-                       # The scripts of these languages are very hard to read with underlines
-                       $rules[] = 'a:lang(ar), a:lang(kk-arab), a:lang(mzn), ' .
-                       'a:lang(ps), a:lang(ur) { text-decoration: none; }';
                }
                if ( $options['editfont'] !== 'default' ) {
                        // Double-check that $options['editfont'] consists of safe characters only
@@ -81,7 +65,16 @@ class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
                if ( $this->getFlip( $context ) ) {
                        $style = CSSJanus::transform( $style, true, false );
                }
-               return array( 'all' => $style );
+               return [ 'all' => $style ];
+       }
+
+       /**
+        * @param ResourceLoaderContext $context
+        * @return bool
+        */
+       public function isKnownEmpty( ResourceLoaderContext $context ) {
+               $styles = $this->getStyles( $context );
+               return isset( $styles['all'] ) && $styles['all'] === '';
        }
 
        /**
@@ -92,9 +85,9 @@ class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
        }
 
        /**
-        * @return array
+        * @return string
         */
-       public function getDependencies() {
-               return array( 'mediawiki.user' );
+       public function getType() {
+               return self::LOAD_STYLES;
        }
 }