Revert r39021 "Tweak css load order (broken for extensions since r38116)"
authorBrion Vibber <brion@users.mediawiki.org>
Sun, 10 Aug 2008 00:54:26 +0000 (00:54 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Sun, 10 Aug 2008 00:54:26 +0000 (00:54 +0000)
This regresses us back from using <link rel="stylesheet">, which we want, to using @import, which we don't.
There are a few reasons we don't want it:
* IE and Firefox at least don't save @import'ed stylesheets when you save a web page as bundled HTML + resources, which is annoying
* Allegedly, browsers may be more efficient about the order of things they load when using <link>, however I haven't tested this
* the CSS media markers may be different, we're trying to make that consistent...
* Trying to get things to use a consistent interface so we can switch to merging and compressing all these files in a sane fashion

includes/SkinTemplate.php

index 249ec1a..89b0f69 100644 (file)
@@ -982,42 +982,41 @@ class SkinTemplate extends Skin {
                        $siteargs['ts'] = $wgUser->mTouched;
                }
 
-               $sitecss = $usercss = '';
                // If we use the site's dynamic CSS, throw that in, too
                // Per-site custom styles
-               if( $wgUseSiteCss ) {
+               if ( $wgUseSiteCss ) {
                        $query = wfArrayToCGI( array(
                                'usemsgcache' => 'yes',
                                'ctype' => 'text/css',
                                'smaxage' => $wgSquidMaxage
                        ) + $siteargs );
-                       # Site settings must override extension css! (bug 15025)
-                       $sitecss .= '@import "' . self::makeNSUrl( 'Common.css', $query, NS_MEDIAWIKI) . '";' . "\n";
-                       $sitecss .= '@import "' . self::makeNSUrl( ucfirst( $this->skinname ) . '.css', $query, NS_MEDIAWIKI ) . '";' . "\n";
+                       $this->addStyle( self::makeNSUrl( 'Common.css', $query, NS_MEDIAWIKI ) );
+                       $this->addStyle( self::makeNSUrl( ucfirst( $this->skinname ) . '.css', $query, NS_MEDIAWIKI ),
+                               'screen' );
                }
 
                // Per-user styles based on preferences
                $siteargs['gen'] = 'css';
-               if( ( $us = $wgRequest->getVal( 'useskin', '' ) ) !== '' ) {
+               if( ( $us = $wgRequest->getVal( 'useskin', '' ) ) !== '' )
                        $siteargs['useskin'] = $us;
-               }
-               $prefcss = '@import "' . self::makeUrl( '-', wfArrayToCGI( $siteargs ) ) . '";' . "\n";
+               $this->addStyle( self::makeUrl( '-', wfArrayToCGI( $siteargs ) ), 'screen' );
 
                // Per-user custom style pages
-               if( $wgAllowUserCss && $this->loggedin ) {
+               if ( $wgAllowUserCss && $this->loggedin ) {
                        $action = $wgRequest->getVal('action');
-                       # If we're previewing the CSS page, use it
+
+                       # if we're previewing the CSS page, use it
                        if( $this->mTitle->isCssSubpage() && $this->userCanPreview( $action ) ) {
                                $previewCss = $wgRequest->getText('wpTextbox1');
-                               // @FIXME: properly escape the cdata!
-                               $this->usercss = "/*<![CDATA[*/\n" . $sitecss . $prefcss . $usercss . $previewCss . "/*]]>*/";
+
+                               /// @fixme properly escape the cdata!
+                               $this->usercss = "/*<![CDATA[*/\n" .
+                                       $previewCss .
+                                       "/*]]>*/";
                        } else {
-                               $usercss .= '@import "' . self::makeUrl($this->userpage .'/'.$this->skinname .'.css',
-                                                                'action=raw&ctype=text/css') . '";' . "\n";
-                               $this->usercss = "/*<![CDATA[*/\n" . $sitecss . $prefcss . $usercss . '/*]]>*/';
+                               $this->addStyle( self::makeUrl($this->userpage . '/'.$this->skinname.'.css',
+                                                                'action=raw&ctype=text/css'), 'screen' );
                        }
-               } else {
-                       $this->usercss = "/*<![CDATA[*/\n" . $sitecss . $prefcss . '/*]]>*/';
                }
 
                wfProfileOut( __METHOD__ );