From: Trevor Parscal Date: Fri, 10 Sep 2010 18:24:45 +0000 (+0000) Subject: Made OutputPage only ask for a style from ResourceLoader once with media=all, and... X-Git-Tag: 1.31.0-rc.0~35053 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/?a=commitdiff_plain;h=8a2bf1862aa3b5e625cb888d4d0f9dd7455b472e;p=lhc%2Fweb%2Fwiklou.git Made OutputPage only ask for a style from ResourceLoader once with media=all, and ResourceLoader respond with styles wrapped in @media [type] { ... } blocks. --- diff --git a/includes/OutputPage.php b/includes/OutputPage.php index 4510b0976c..67810d0f60 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -2280,7 +2280,7 @@ class OutputPage { return $ret; } - static function makeResourceLoaderLink( $skin, $modules, $only, $media = 'all' ) { + static function makeResourceLoaderLink( $skin, $modules, $only ) { global $wgUser, $wgLang, $wgRequest; // TODO: Should this be a static function of ResourceLoader instead? $query = array( @@ -2292,8 +2292,7 @@ class OutputPage { ); // Automatically select style/script elements if ( $only === 'styles' ) { - $query['media'] = $media; - return Html::linkedStyle( wfAppendQuery( wfScript( 'load' ), $query ), $media ); + return Html::linkedStyle( wfAppendQuery( wfScript( 'load' ), $query ) ); } else { return Html::linkedScript( wfAppendQuery( wfScript( 'load' ), $query ) ); } @@ -2489,15 +2488,11 @@ class OutputPage { // Support individual script requests in debug mode if ( $wgRequest->getBool( 'debug' ) && $wgRequest->getVal( 'debug' ) !== 'false' ) { foreach ( $this->getModuleStyles() as $name ) { - $tags[] = self::makeResourceLoaderLink( $sk, $name, 'styles', 'all' ); - $tags[] = self::makeResourceLoaderLink( $sk, $name, 'styles', 'screen' ); - $tags[] = self::makeResourceLoaderLink( $sk, $name, 'styles', 'print' ); + $tags[] = self::makeResourceLoaderLink( $sk, $name, 'styles' ); } } else { if ( count( $this->getModuleStyles() ) ) { - $tags[] = self::makeResourceLoaderLink( $sk, $this->getModuleStyles(), 'styles', 'all' ); - $tags[] = self::makeResourceLoaderLink( $sk, $this->getModuleStyles(), 'styles', 'screen' ); - $tags[] = self::makeResourceLoaderLink( $sk, $this->getModuleStyles(), 'styles', 'print' ); + $tags[] = self::makeResourceLoaderLink( $sk, $this->getModuleStyles(), 'styles' ); } } diff --git a/includes/ResourceLoader.php b/includes/ResourceLoader.php index ad0d0bf239..ede4341c7a 100644 --- a/includes/ResourceLoader.php +++ b/includes/ResourceLoader.php @@ -275,7 +275,7 @@ class ResourceLoader { // Pre-fetch blobs $blobs = $context->shouldIncludeMessages() ? - MessageBlobStore::get( $modules, $context->getLanguage() ) : array(); + MessageBlobStore::get( $modules, $context->getLanguage() ) : array(); // Generate output foreach ( $modules as $name ) { @@ -290,8 +290,7 @@ class ResourceLoader { $styles = array(); if ( - $context->shouldIncludeStyles() && - ( count( $styles = self::$modules[$name]->getStyles( $context ) ) ) + $context->shouldIncludeStyles() && ( count( $styles = self::$modules[$name]->getStyles( $context ) ) ) ) { foreach ( $styles as $media => $style ) { if ( self::$modules[$name]->getFlip( $context ) ) { @@ -308,8 +307,8 @@ class ResourceLoader { // Output if ( $context->getOnly() === 'styles' ) { - if ( isset( $styles[$context->getMedia()] ) ) { - echo $styles[$context->getMedia()]; + foreach ( $styles as $media => $style ) { + echo "@media $media {\n$style\n}\n"; } } else if ( $context->getOnly() === 'scripts' ) { echo $scripts; diff --git a/includes/ResourceLoaderContext.php b/includes/ResourceLoaderContext.php index 39e650ce7a..b97638a0d1 100644 --- a/includes/ResourceLoaderContext.php +++ b/includes/ResourceLoaderContext.php @@ -33,7 +33,6 @@ class ResourceLoaderContext { protected $skin; protected $debug; protected $only; - protected $media; protected $hash; /* Methods */ @@ -50,7 +49,6 @@ class ResourceLoaderContext { $this->skin = $request->getVal( 'skin' ); $this->debug = $request->getVal( 'debug' ) === 'true' || $request->getBool( 'debug' ); $this->only = $request->getVal( 'only' ); - $this->media = $request->getVal( 'media', 'all' ); // Fallback on system defaults if ( !$this->language ) { @@ -97,10 +95,6 @@ class ResourceLoaderContext { public function getOnly() { return $this->only; } - - public function getMedia() { - return $this->media; - } public function shouldIncludeScripts() { return is_null( $this->only ) || $this->only === 'scripts'; @@ -117,6 +111,6 @@ class ResourceLoaderContext { public function getHash() { return isset( $this->hash ) ? $this->hash : $this->hash = - implode( '|', array( $this->language, $this->skin, $this->debug, $this->only, $this->media ) ); + implode( '|', array( $this->language, $this->skin, $this->debug, $this->only ) ); } }