Merge "Revert "Use display name in category page subheadings if provided""
[lhc/web/wiklou.git] / includes / resourceloader / ResourceLoaderUserCSSPrefsModule.php
index d0f7d44..aef1c74 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
@@ -30,11 +30,10 @@ class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
        protected $origin = self::ORIGIN_CORE_INDIVIDUAL;
 
        /**
-        * @param ResourceLoaderContext $context
-        * @return array|int|mixed
+        * @return bool
         */
-       public function getModifiedTime( ResourceLoaderContext $context ) {
-               return wfTimestamp( TS_UNIX, $context->getUserObj()->getTouched() );
+       public function enableModuleContentVersion() {
+               return true;
        }
 
        /**
@@ -43,34 +42,33 @@ 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
-                       if ( preg_match( '/^[a-zA-Z0-9_, -]+$/', $options['editfont'] ) ) {
-                               $rules[] = "textarea { font-family: {$options['editfont']}; }\n";
-                       }
                }
                $style = implode( "\n", $rules );
                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'] === '';
        }
 
        /**
@@ -79,4 +77,11 @@ class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
        public function getGroup() {
                return 'private';
        }
+
+       /**
+        * @return string
+        */
+       public function getType() {
+               return self::LOAD_STYLES;
+       }
 }