'ResourceLoaderSpecialCharacterDataModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSpecialCharacterDataModule.php',
'ResourceLoaderStartUpModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderStartUpModule.php',
'ResourceLoaderUploadDialogModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUploadDialogModule.php',
- 'ResourceLoaderUserCSSPrefsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php',
'ResourceLoaderUserDefaultsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserDefaultsModule.php',
'ResourceLoaderUserModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserModule.php',
'ResourceLoaderUserOptionsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserOptionsModule.php',
'site.styles',
'noscript',
'user.styles',
- 'user.cssprefs',
] );
$this->getSkin()->setupSkinUserCss( $this );
$bodyClasses[] = $userdir;
$bodyClasses[] = "sitedir-$sitedir";
+ $underline = $this->getUser()->getOption( 'underline' );
+ if ( $underline < 2 ) {
+ // The following classes can be used here:
+ // * mw-underline-always
+ // * mw-underline-never
+ $bodyClasses[] = 'mw-underline-' . ( $underline ? 'always' : 'never' );
+ }
+
if ( $this->getLanguage()->capitalizeAllNouns() ) {
# A <body> class is probably not the best way to do this . . .
$bodyClasses[] = 'capitalize-all-nouns';
+++ /dev/null
-<?php
-/**
- * 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
- * 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
- * @author Trevor Parscal
- * @author Roan Kattouw
- */
-
-/**
- * Module for user preference customizations
- */
-class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
-
- protected $origin = self::ORIGIN_CORE_INDIVIDUAL;
-
- /**
- * @return bool
- */
- public function enableModuleContentVersion() {
- return true;
- }
-
- /**
- * @param ResourceLoaderContext $context
- * @return array
- */
- public function getStyles( ResourceLoaderContext $context ) {
- if ( !$this->getConfig()->get( 'AllowUserCssPrefs' ) ) {
- return [];
- }
-
- $options = $context->getUserObj()->getOptions();
-
- // Build CSS rules
- $rules = [];
-
- // Underline: 2 = skin default, 1 = always, 0 = never
- if ( $options['underline'] < 2 ) {
- $rules[] = "a { text-decoration: " .
- ( $options['underline'] ? 'underline' : 'none' ) . "; }";
- }
- $style = implode( "\n", $rules );
- if ( $this->getFlip( $context ) ) {
- $style = CSSJanus::transform( $style, true, false );
- }
- return [ 'all' => $style ];
- }
-
- /**
- * @param ResourceLoaderContext $context
- * @return bool
- */
- public function isKnownEmpty( ResourceLoaderContext $context ) {
- $styles = $this->getStyles( $context );
- return isset( $styles['all'] ) && $styles['all'] === '';
- }
-
- /**
- * @return string
- */
- public function getGroup() {
- return 'private';
- }
-
- /**
- * @return string
- */
- public function getType() {
- return self::LOAD_STYLES;
- }
-}
'user' => [ 'class' => 'ResourceLoaderUserModule' ],
'user.styles' => [ 'class' => 'ResourceLoaderUserStylesModule' ],
- // Scripts generated based on the current user's preferences
- 'user.cssprefs' => [ 'class' => 'ResourceLoaderUserCSSPrefsModule' ],
-
// Populate mediawiki.user placeholders with information about the current user
'user.defaults' => [ 'class' => 'ResourceLoaderUserDefaultsModule' ],
'user.options' => [ 'class' => 'ResourceLoaderUserOptionsModule' ],