Add $wgAllowUserCssPrefs option to disable CSS-based preferences. These are injected...
authorHappy-melon <happy-melon@users.mediawiki.org>
Sat, 13 Mar 2010 20:46:22 +0000 (20:46 +0000)
committerHappy-melon <happy-melon@users.mediawiki.org>
Sat, 13 Mar 2010 20:46:22 +0000 (20:46 +0000)
Also, update monobook/main.css to actually offer the redlink colour that's been seen on wikipedia since forever.  It's only when you turn off this per-user styling stuff that you realise that it's been overriding a different colour since September 2004 :D

RELEASE-NOTES
includes/DefaultSettings.php
includes/Preferences.php
includes/Skin.php
skins/monobook/main.css

index 1ea8620..515979d 100644 (file)
@@ -30,6 +30,8 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
   the names of the individual files within the gallery
 * (bug 12797) Add $wgGalleryOptions for adjusting of default gallery display
   options
+* $wgAllowUserCssPrefs option allows disabling CSS-based preferences; which can
+  improve page loading speed.
 
 === Bug fixes in 1.17 ===
 * (bug 17560) Half-broken deletion moved image files to deletion archive without
index a8d10c5..8f47cd1 100644 (file)
@@ -2905,6 +2905,13 @@ $wgAllowUserJs = false;
  */
 $wgAllowUserCss = false;
 
+/**
+ * Allow user-preferences implemented in CSS?
+ * This allows users to customise the site appearance to a greater
+ * degree; disabling it will improve page load times.
+ */
+$wgAllowUserCssPrefs = true;
+
 /** Use the site's Javascript page? */
 $wgUseSiteJs = true;
 
index 28edc4b..6047df5 100644 (file)
@@ -593,17 +593,20 @@ class Preferences {
 
        static function renderingPreferences( $user, &$defaultPreferences ) {
                ## Page Rendering ##############################
-               $defaultPreferences['underline'] =
-                               array(
-                                       'type' => 'select',
-                                       'options' => array(
-                                               wfMsg( 'underline-never' ) => 0,
-                                               wfMsg( 'underline-always' ) => 1,
-                                               wfMsg( 'underline-default' ) => 2,
-                                       ),
-                                       'label-message' => 'tog-underline',
-                                       'section' => 'rendering/advancedrendering',
-                               );
+               global $wgAllowUserCssPrefs;
+               if( $wgAllowUserCssPrefs ){
+                       $defaultPreferences['underline'] =
+                                       array(
+                                               'type' => 'select',
+                                               'options' => array(
+                                                       wfMsg( 'underline-never' ) => 0,
+                                                       wfMsg( 'underline-always' ) => 1,
+                                                       wfMsg( 'underline-default' ) => 2,
+                                               ),
+                                               'label-message' => 'tog-underline',
+                                               'section' => 'rendering/advancedrendering',
+                                       );
+               }
 
                $stubThresholdValues = array( 0, 50, 100, 500, 1000, 2000, 5000, 10000 );
                $stubThresholdOptions = array();
@@ -619,18 +622,20 @@ class Preferences {
                                        'size' => 20,
                                        'label' => wfMsg( 'stub-threshold' ), // Raw HTML message. Yay?
                                );
-               $defaultPreferences['highlightbroken'] =
-                               array(
-                                       'type' => 'toggle',
-                                       'section' => 'rendering/advancedrendering',
-                                       'label' => wfMsg( 'tog-highlightbroken' ), // Raw HTML
-                               );
-               $defaultPreferences['showtoc'] =
-                               array(
-                                       'type' => 'toggle',
-                                       'section' => 'rendering/advancedrendering',
-                                       'label-message' => 'tog-showtoc',
-                               );
+               if( $wgAllowUserCssPrefs ){
+                       $defaultPreferences['highlightbroken'] =
+                                       array(
+                                               'type' => 'toggle',
+                                               'section' => 'rendering/advancedrendering',
+                                               'label' => wfMsg( 'tog-highlightbroken' ), // Raw HTML
+                                       );
+                       $defaultPreferences['showtoc'] =
+                                       array(
+                                               'type' => 'toggle',
+                                               'section' => 'rendering/advancedrendering',
+                                               'label-message' => 'tog-showtoc',
+                                       );
+               }
                $defaultPreferences['nocache'] =
                                array(
                                        'type' => 'toggle',
@@ -649,12 +654,14 @@ class Preferences {
                                        'section' => 'rendering/advancedrendering',
                                        'label-message' => 'tog-showjumplinks',
                                );
-               $defaultPreferences['justify'] =
-                               array(
-                                       'type' => 'toggle',
-                                       'section' => 'rendering/advancedrendering',
-                                       'label-message' => 'tog-justify',
-                               );
+               if( $wgAllowUserCssPrefs ){
+                       $defaultPreferences['justify'] =
+                                       array(
+                                               'type' => 'toggle',
+                                               'section' => 'rendering/advancedrendering',
+                                               'label-message' => 'tog-justify',
+                                       );
+               }
                $defaultPreferences['numberheadings'] =
                                array(
                                        'type' => 'toggle',
@@ -664,7 +671,7 @@ class Preferences {
        }
 
        static function editingPreferences( $user, &$defaultPreferences ) {
-               global $wgUseExternalEditor, $wgLivePreview;
+               global $wgUseExternalEditor, $wgLivePreview, $wgAllowUserCssPrefs;
 
                ## Editing #####################################
                $defaultPreferences['cols'] =
@@ -683,19 +690,20 @@ class Preferences {
                                        'min' => 4,
                                        'max' => 1000,
                                );
-
-               $defaultPreferences['editfont'] =
-                               array(
-                                       'type' => 'select',
-                                       'section' => 'editing/advancedediting',
-                                       'label-message' => 'editfont-style',
-                                       'options' => array(
-                                               wfMsg( 'editfont-default' ) => 'default',
-                                               wfMsg( 'editfont-monospace' ) => 'monospace',
-                                               wfMsg( 'editfont-sansserif' ) => 'sans-serif',
-                                               wfMsg( 'editfont-serif' ) => 'serif',
-                                       )
-                               );
+               if( $wgAllowUserCssPrefs ){
+                       $defaultPreferences['editfont'] =
+                                       array(
+                                               'type' => 'select',
+                                               'section' => 'editing/advancedediting',
+                                               'label-message' => 'editfont-style',
+                                               'options' => array(
+                                                       wfMsg( 'editfont-default' ) => 'default',
+                                                       wfMsg( 'editfont-monospace' ) => 'monospace',
+                                                       wfMsg( 'editfont-sansserif' ) => 'sans-serif',
+                                                       wfMsg( 'editfont-serif' ) => 'serif',
+                                               )
+                                       );
+               }
                $defaultPreferences['previewontop'] =
                                array(
                                        'type' => 'toggle',
@@ -708,12 +716,14 @@ class Preferences {
                                        'section' => 'editing/advancedediting',
                                        'label-message' => 'tog-previewonfirst',
                                );
-               $defaultPreferences['editsection'] =
-                               array(
-                                       'type' => 'toggle',
-                                       'section' => 'editing/advancedediting',
-                                       'label-message' => 'tog-editsection',
-                               );
+               if( $wgAllowUserCssPrefs ){
+                       $defaultPreferences['editsection'] =
+                                       array(
+                                               'type' => 'toggle',
+                                               'section' => 'editing/advancedediting',
+                                               'label-message' => 'tog-editsection',
+                                       );
+               }
                $defaultPreferences['editsectiononrightclick'] =
                                array(
                                        'type' => 'toggle',
@@ -1116,7 +1126,7 @@ class Preferences {
                $ret = array();
 
                foreach ( $wgImageLimits as $index => $limits ) {
-                       $display = "{$limits[0]}Ã\97{$limits[1]}" . wfMsg( 'unit-pixel' );
+                       $display = "{$limits[0]}Ã\83â\80\94{$limits[1]}" . wfMsg( 'unit-pixel' );
                        $ret[$display] = $index;
                }
 
index 8e23180..3244573 100644 (file)
@@ -548,6 +548,7 @@ class Skin extends Linker {
 
        /**
         * Split for easier subclassing in SkinSimple, SkinStandard and SkinCologneBlue
+        * Anything in here won't be generated if $wgAllowUserCssPrefs is false.
         */
        protected function reallyGenerateUserStylesheet() {
                global $wgUser;
@@ -629,18 +630,21 @@ CSS;
                        $out->addStyle( self::makeNSUrl( $this->getSkinName() . '.css', $query, NS_MEDIAWIKI ) );
                }
 
-               if( $wgUser->isLoggedIn() ) {
-                       // Ensure that logged-in users' generated CSS isn't clobbered
-                       // by anons' publicly cacheable generated CSS.
-                       $siteargs['smaxage'] = '0';
-                       $siteargs['ts'] = $wgUser->mTouched;
-               }
-               // Per-user styles based on preferences
-               $siteargs['gen'] = 'css';
-               if( ( $us = $wgRequest->getVal( 'useskin', '' ) ) !== '' ) {
-                       $siteargs['useskin'] = $us;
+               global $wgAllowUserCssPrefs;
+               if( $wgAllowUserCssPrefs ){
+                       if( $wgUser->isLoggedIn() ) {
+                               // Ensure that logged-in users' generated CSS isn't clobbered
+                               // by anons' publicly cacheable generated CSS.
+                               $siteargs['smaxage'] = '0';
+                               $siteargs['ts'] = $wgUser->mTouched;
+                       }
+                       // Per-user styles based on preferences
+                       $siteargs['gen'] = 'css';
+                       if( ( $us = $wgRequest->getVal( 'useskin', '' ) ) !== '' ) {
+                               $siteargs['useskin'] = $us;
+                       }
+                       $out->addStyle( self::makeUrl( '-', wfArrayToCGI( $siteargs ) ) );
                }
-               $out->addStyle( self::makeUrl( '-', wfArrayToCGI( $siteargs ) ) );
 
                // Per-user custom style pages
                if( $wgAllowUserCss && $wgUser->isLoggedIn() ) {
index 727355b..fedfca8 100644 (file)
@@ -86,7 +86,7 @@ a.stub {
        color: #772233;
 }
 a.new, #p-personal a.new {
-       color: #ba0000;
+       color: #cc2200;
 }
 a.new:visited, #p-personal a.new:visited {
        color: #a55858;