From 6ba8f312d16008601730748b80bd0372347fa1ba Mon Sep 17 00:00:00 2001 From: Trevor Parscal Date: Sat, 11 Sep 2010 08:03:11 +0000 Subject: [PATCH] Added versions to statically added ResourceLoader script and style tags. --- includes/OutputPage.php | 16 +++++++++++++--- includes/ResourceLoader.php | 2 +- includes/ResourceLoaderContext.php | 5 ++--- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/includes/OutputPage.php b/includes/OutputPage.php index b86cb6ca7a..695250785b 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -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 ) ); diff --git a/includes/ResourceLoader.php b/includes/ResourceLoader.php index 3ca408cf4a..7799619dba 100644 --- a/includes/ResourceLoader.php +++ b/includes/ResourceLoader.php @@ -338,7 +338,7 @@ class ResourceLoader { } $statuses = FormatJson::encode( $statuses ); - echo "mediaWiki.loader.state( $statuses );"; + echo "mediaWiki.loader.state( $statuses );\n"; } // Register missing modules diff --git a/includes/ResourceLoaderContext.php b/includes/ResourceLoaderContext.php index ff0e810c1b..1feb9fe6fd 100644 --- a/includes/ResourceLoaderContext.php +++ b/includes/ResourceLoaderContext.php @@ -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 -- 2.20.1