X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=blobdiff_plain;f=includes%2Fresourceloader%2FResourceLoader.php;h=8b1452edfb07b698bc4906a88646adfb3beeec91;hb=a2ec7c7aba0644753abe56c50ee3e3b499a62df4;hp=9e884942fbffe5d635256357564d224ee1618e98;hpb=e066ee0c472e81bdd4e9e74efddc2bfebccf95a0;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/resourceloader/ResourceLoader.php b/includes/resourceloader/ResourceLoader.php index 9e884942fb..8b1452edfb 100644 --- a/includes/resourceloader/ResourceLoader.php +++ b/includes/resourceloader/ResourceLoader.php @@ -713,12 +713,27 @@ class ResourceLoader { // Styles $styles = array(); if ( $context->shouldIncludeStyles() ) { - // If we are in debug mode, we'll want to return an array of URLs - // See comment near shouldIncludeScripts() for more details - if ( $context->getDebug() && !$context->getOnly() && $module->supportsURLLoading() ) { - $styles = $module->getStyleURLsForDebug( $context ); - } else { - $styles = $module->getStyles( $context ); + // Don't create empty stylesheets like array( '' => '' ) for modules + // that don't *have* any stylesheets (bug 38024). + $stylePairs = $module->getStyles( $context ); + if ( count ( $stylePairs ) ) { + // If we are in debug mode without &only= set, we'll want to return an array of URLs + // See comment near shouldIncludeScripts() for more details + if ( $context->getDebug() && !$context->getOnly() && $module->supportsURLLoading() ) { + $styles = $module->getStyleURLsForDebug( $context ); + } else { + // Minify CSS before embedding in mw.loader.implement call + // (unless in debug mode) + if ( !$context->getDebug() ) { + foreach ( $stylePairs as $media => $style ) { + if ( is_string( $style ) ) { + $stylePairs[$media] = $this->filter( 'minify-css', $style ); + } + } + } + // Combine styles into @media groups as one big string + $styles = array( '' => self::makeCombinedStyles( $stylePairs ) ); + } } } @@ -737,23 +752,22 @@ class ResourceLoader { } break; case 'styles': - $out .= self::makeCombinedStyles( $styles ); + // We no longer seperate into media, they are all concatenated now with + // custom media type groups into @media .. {} sections. + // Module returns either an empty array or an array with '' (no media type) as + // only key. + $out .= isset( $styles[''] ) ? $styles[''] : ''; break; case 'messages': $out .= self::makeMessageSetScript( new XmlJsCode( $messagesBlob ) ); break; default: - // Minify CSS before embedding in mw.loader.implement call - // (unless in debug mode) - if ( !$context->getDebug() ) { - foreach ( $styles as $media => $style ) { - if ( is_string( $style ) ) { - $styles[$media] = $this->filter( 'minify-css', $style ); - } - } - } - $out .= self::makeLoaderImplementScript( $name, $scripts, $styles, - new XmlJsCode( $messagesBlob ) ); + $out .= self::makeLoaderImplementScript( + $name, + $scripts, + $styles, + new XmlJsCode( $messagesBlob ) + ); break; } } catch ( Exception $e ) {