http://www.mediawiki.org/wiki/Special:Code/MediaWiki/76207
Revision: 76207
Author: platonides
Date: 2010-11-06 18:52:32 +0000 (Sat, 06 Nov 2010)
Log Message:
-----------
Remove checks for debug mode and module count on every makeResourceLoaderLink()
invocation.
Moved inside makeResourceLoaderLink()
The only difference would be having now 'user' and 'user.options' modules split
on debug mode.
Modified Paths:
--------------
trunk/phase3/includes/OutputPage.php
Modified: trunk/phase3/includes/OutputPage.php
===================================================================
--- trunk/phase3/includes/OutputPage.php 2010-11-06 18:51:45 UTC (rev
76206)
+++ trunk/phase3/includes/OutputPage.php 2010-11-06 18:52:32 UTC (rev
76207)
@@ -2294,7 +2294,14 @@
return $ret;
}
- // TODO: Document
+ /**
+ * TODO: Document
+ * @param $skin Skin
+ * @param $modules Array/string with the module name
+ * @param $only string May be styles, messages or scripts
+ * @param $useESI boolean
+ * @return string html <script> and <style> tags
+ */
protected function makeResourceLoaderLink( $skin, $modules, $only,
$useESI = false ) {
global $wgUser, $wgLang, $wgLoadScript, $wgResourceLoaderUseESI,
$wgResourceLoaderInlinePrivateModules;
@@ -2310,10 +2317,27 @@
'skin' => $wgUser->getSkin()->getSkinName(),
'only' => $only,
);
- // Remove duplicate module requests
- $modules = array_unique( (array) $modules );
- // Sort module names so requests are more uniform
- sort( $modules );
+
+ if ( !count( $modules ) ) {
+ return '';
+ }
+
+ if ( count( $modules ) > 1 ) {
+ // Remove duplicate module requests
+ $modules = array_unique( (array) $modules );
+ // Sort module names so requests are more uniform
+ sort( $modules );
+
+ if ( ResourceLoader::inDebugMode() ) {
+ // Recursively call us for every item
+ $links = '';
+ foreach ( $modules as $name ) {
+ $links .=
$this->makeResourceLoaderLink( $sk, $name, $only, $useESI );
+ }
+ return $links;
+ }
+ }
+
// Create keyed-by-group list of module objects from modules
list
$groups = array();
foreach ( (array) $modules as $name ) {
@@ -2403,26 +2427,13 @@
$scripts .= Skin::makeGlobalVariablesScript( $sk->getSkinName()
) . "\n";
// Script and Messages "only"
- if ( ResourceLoader::inDebugMode() ) {
- // Scripts
- foreach ( $this->getModuleScripts() as $name ) {
- $scripts .= $this->makeResourceLoaderLink( $sk,
$name, 'scripts' );
- }
- // Messages
- foreach ( $this->getModuleMessages() as $name ) {
- $scripts .= $this->makeResourceLoaderLink( $sk,
$name, 'messages' );
- }
- } else {
- // Scripts
- if ( count( $this->getModuleScripts() ) ) {
- $scripts .= $this->makeResourceLoaderLink( $sk,
$this->getModuleScripts(), 'scripts' );
- }
- // Messages
- if ( count( $this->getModuleMessages() ) ) {
- $scripts .= $this->makeResourceLoaderLink( $sk,
$this->getModuleMessages(), 'messages' );
- }
- }
+
+ // Scripts
+ $scripts .= $this->makeResourceLoaderLink( $sk,
$this->getModuleScripts(), 'scripts' );
+ // Messages
+ $scripts .= $this->makeResourceLoaderLink( $sk,
$this->getModuleMessages(), 'messages' );
+
// Modules - let the client calculate dependencies and batch
requests as it likes
if ( $this->getModules() ) {
$modules = FormatJson::encode( $this->getModules() );
@@ -2571,16 +2582,7 @@
}
}
- // Support individual script requests in debug mode
- if ( ResourceLoader::inDebugMode() ) {
- foreach ( $this->getModuleStyles() as $name ) {
- $tags[] = $this->makeResourceLoaderLink( $sk,
$name, 'styles' );
- }
- } else {
- if ( count( $this->getModuleStyles() ) ) {
- $tags[] = $this->makeResourceLoaderLink( $sk,
$this->getModuleStyles(), 'styles' );
- }
- }
+ $tags[] = $this->makeResourceLoaderLink( $sk,
$this->getModuleStyles(), 'styles' );
return implode( "\n", $tags );
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs