Added versions to statically added ResourceLoader script and style tags.
authorTrevor Parscal <tparscal@users.mediawiki.org>
Sat, 11 Sep 2010 08:03:11 +0000 (08:03 +0000)
committerTrevor Parscal <tparscal@users.mediawiki.org>
Sat, 11 Sep 2010 08:03:11 +0000 (08:03 +0000)
includes/OutputPage.php
includes/ResourceLoader.php
includes/ResourceLoaderContext.php

index b86cb6c..6952507 100644 (file)
@@ -2286,13 +2286,13 @@ class OutputPage {
                // TODO: Divide off modules starting with "user", and add the user parameter to them
                $query = array(
                        'lang' => $wgLang->getCode(),
-                       'debug' => $wgRequest->getBool( 'debug' ) && $wgRequest->getVal( 'debug' ) !== 'false',
+                       'debug' => ( $wgRequest->getBool( 'debug' ) && $wgRequest->getVal( 'debug' ) == 'true' ) ? 'true' : 'false',
                        'skin' => $wgUser->getSkin()->getSkinName(),
                        'only' => $only,
                );
                $moduleGroups = array( null => array(), 'user' => array() );
-               foreach ( (array) $modules as $module ) {
-                       $moduleGroups[strpos( $module, 'user' ) === 0 ? 'user' : null][] = $module;
+               foreach ( (array) $modules as $name ) {
+                       $moduleGroups[strpos( $name, 'user' ) === 0 ? 'user' : null][] = $name;
                }
                $links = '';
                foreach ( $moduleGroups as $group => $modules ) {
@@ -2301,6 +2301,16 @@ class OutputPage {
                                if ( $group === 'user' ) {
                                        $query['user'] = $wgUser->getName();
                                }
+                               $context = new ResourceLoaderContext( new FauxRequest( $query ) );
+                               $timestamp = 0;
+                               foreach ( $modules as $name ) {
+                                       if ( $module = ResourceLoader::getModule( $name ) ) {
+                                               $timestamp = max( $timestamp, $module->getModifiedTime( $context ) );
+                                       }
+                               }
+                               $query['version'] = wfTimestamp( TS_ISO_8601, round( $timestamp, -2 ) );
+                               // Make queries uniform in order
+                               ksort( $query );
                                // Automatically select style/script elements
                                if ( $only === 'styles' ) {
                                        $links .= Html::linkedStyle( wfAppendQuery( $wgLoadScript, $query ) );
index 3ca408c..7799619 100644 (file)
@@ -338,7 +338,7 @@ class ResourceLoader {
                        }
 
                        $statuses = FormatJson::encode( $statuses );
-                       echo "mediaWiki.loader.state( $statuses );";
+                       echo "mediaWiki.loader.state( $statuses );\n";
                }
 
                // Register missing modules
index ff0e810..1feb9fe 100644 (file)
@@ -26,7 +26,6 @@ class ResourceLoaderContext {
        /* Protected Members */
 
        protected $request;
-       protected $server;
        protected $modules;
        protected $language;
        protected $direction;
@@ -64,7 +63,7 @@ class ResourceLoaderContext {
                        $this->skin = $wgDefaultSkin;
                }
        }
-
+       
        public function getRequest() {
                return $this->request;
        }
@@ -114,4 +113,4 @@ class ResourceLoaderContext {
                        $this->hash : $this->hash =
                                implode( '|', array( $this->language, $this->skin, $this->user, $this->debug, $this->only ) );
        }
-}
+}
\ No newline at end of file