http://www.mediawiki.org/wiki/Special:Code/MediaWiki/72743

Revision: 72743
Author:   tparscal
Date:     2010-09-10 20:18:24 +0000 (Fri, 10 Sep 2010)

Log Message:
-----------
ResourceLoaderSiteModule now supports CSS too!

Modified Paths:
--------------
    trunk/phase3/includes/ResourceLoader.php
    trunk/phase3/includes/ResourceLoaderModule.php
    trunk/phase3/includes/Skin.php

Modified: trunk/phase3/includes/ResourceLoader.php
===================================================================
--- trunk/phase3/includes/ResourceLoader.php    2010-09-10 20:10:17 UTC (rev 
72742)
+++ trunk/phase3/includes/ResourceLoader.php    2010-09-10 20:18:24 UTC (rev 
72743)
@@ -307,8 +307,17 @@
 
                        // Output
                        if ( $context->getOnly() === 'styles' ) {
-                               foreach ( $styles as $media => $style ) {
-                                       echo "@media $media {\n$style\n}\n";
+                               if ( $context->getDebug() ) {
+                                       echo "/* $name */\n";
+                                       foreach ( $styles as $media => $style ) 
{
+                                               echo "@media $media {\n" . 
str_replace( "\n", "\n\t", "\t" . $style ) . "\n}\n";
+                                       }
+                               } else {
+                                       foreach ( $styles as $media => $style ) 
{
+                                               if ( strlen( $style ) ) {
+                                                       echo "@media $media{" . 
$style . "}";
+                                               }
+                                       }
                                }
                        } else if ( $context->getOnly() === 'scripts' ) {
                                echo $scripts;

Modified: trunk/phase3/includes/ResourceLoaderModule.php
===================================================================
--- trunk/phase3/includes/ResourceLoaderModule.php      2010-09-10 20:10:17 UTC 
(rev 72742)
+++ trunk/phase3/includes/ResourceLoaderModule.php      2010-09-10 20:18:24 UTC 
(rev 72743)
@@ -691,6 +691,8 @@
        }
 
        public function getModifiedTime( ResourceLoaderContext $context ) {
+               global $wgHandheldStyle;
+               
                if ( isset( $this->modifiedTime[$context->getHash()] ) ) {
                        return $this->modifiedTime[$context->getHash()];
                }
@@ -698,20 +700,28 @@
                // HACK: We duplicate the message names from generateUserJs()
                // here and weird things (i.e. mtime moving backwards) can 
happen
                // when a MediaWiki:Something.js page is deleted
-               $jsPages = array( Title::makeTitle( NS_MEDIAWIKI, 'Common.js' ),
-                       Title::makeTitle( NS_MEDIAWIKI, ucfirst( 
$context->getSkin() ) . '.js' )
+               $pages = array(
+                       Title::makeTitle( NS_MEDIAWIKI, 'Common.js' ),
+                       Title::makeTitle( NS_MEDIAWIKI, 'Common.css' ),
+                       Title::makeTitle( NS_MEDIAWIKI, ucfirst( 
$context->getSkin() ) . '.js' ),
+                       Title::makeTitle( NS_MEDIAWIKI, ucfirst( 
$context->getSkin() ) . '.css' ),
+                       Title::makeTitle( NS_MEDIAWIKI, 'Print.css' ),
+                       
                );
+               if ( $wgHandheldStyle ) {
+                       $pages[] = Title::makeTitle( NS_MEDIAWIKI, 
'Handheld.css' );
+               }
 
                // Do batch existence check
                // TODO: This would work better if page_touched were loaded by 
this as well
-               $lb = new LinkBatch( $jsPages );
+               $lb = new LinkBatch( $pages );
                $lb->execute();
 
                $this->modifiedTime = 1; // wfTimestamp() interprets 0 as "now"
 
-               foreach ( $jsPages as $jsPage ) {
-                       if ( $jsPage->exists() ) {
-                               $this->modifiedTime = max( $this->modifiedTime, 
wfTimestamp( TS_UNIX, $jsPage->getTouched() ) );
+               foreach ( $pages as $page ) {
+                       if ( $page->exists() ) {
+                               $this->modifiedTime = max( $this->modifiedTime, 
wfTimestamp( TS_UNIX, $page->getTouched() ) );
                        }
                }
 
@@ -719,7 +729,26 @@
        }
 
        public function getStyles( ResourceLoaderContext $context ) {
-               return array();
+               global $wgHandheldStyle;
+               $styles = array(
+                       'all' => array( 'Common.css', $context->getSkin() . 
'.css' ),
+                       'print' => array( 'Print.css' ),
+               );
+               if ( $wgHandheldStyle ) {
+                       $sources['handheld'] = array( 'Handheld.css' );
+               }
+               foreach ( $styles as $media => $messages ) {
+                       foreach ( $messages as $i => $message ) {
+                               $style = wfMsgExt( $message, 'content' );
+                               if ( !wfEmptyMsg( $message, $style ) ) {
+                                       $styles[$media][$i] = $style;
+                               }
+                       }
+               }
+               foreach ( $styles as $media => $messages ) {
+                       $styles[$media] = implode( "\n", $messages );
+               }
+               return $styles;
        }
        public function getMessages() { return array(); }
        public function getLoaderScript() { return ''; }

Modified: trunk/phase3/includes/Skin.php
===================================================================
--- trunk/phase3/includes/Skin.php      2010-09-10 20:10:17 UTC (rev 72742)
+++ trunk/phase3/includes/Skin.php      2010-09-10 20:18:24 UTC (rev 72743)
@@ -646,17 +646,7 @@
                // If we use the site's dynamic CSS, throw that in, too
                // Per-site custom styles
                if ( $wgUseSiteCss ) {
-                       global $wgHandheldStyle;
-
-                       $query = wfArrayToCGI( 
self::getDynamicStylesheetQuery() );
-                       # Site settings must override extension css! (bug 15025)
-                       $out->addStyle( self::makeNSUrl( 'Common.css', $query, 
NS_MEDIAWIKI ) );
-                       $out->addStyle( self::makeNSUrl( 'Print.css', $query, 
NS_MEDIAWIKI ), 'print' );
-
-                       if ( $wgHandheldStyle ) {
-                               $out->addStyle( self::makeNSUrl( 
'Handheld.css', $query, NS_MEDIAWIKI ), 'handheld' );
-                       }
-                       $out->addStyle( self::makeNSUrl( $this->getSkinName() . 
'.css', $query, NS_MEDIAWIKI ) );
+                       $out->addModuleStyles( 'site' );
                }
 
                global $wgAllowUserCssPrefs;
@@ -727,6 +717,7 @@
                $out->addModuleStyles( 'mediawiki.legacy.oldshared' );
                // TODO: Figure out how to best integrate this stuff into 
ResourceLoader
                $out->addStyle( $this->getStylesheet() );
+               // TODO: When converting old skins to use ResourceLoader (or 
removing them) this needs to be reconsidered
                $out->addStyle( 'common/common_rtl.css', '', '', 'rtl' );
        }
 



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to