http://www.mediawiki.org/wiki/Special:Code/MediaWiki/72007

Revision: 72007
Author:   catrope
Date:     2010-08-31 02:28:16 +0000 (Tue, 31 Aug 2010)

Log Message:
-----------
resourceloader: Make ResourceLoaderModule an abstract class that only 
implements getName()/setName() and provides a generic interface for modules. 
Move all the code specific to dealing with files (everything except 
getName()/setName()) to a subclass called ResourceLoaderFileModule. This 
reduces the number of dummy functions in ResourceLoaderSiteJSModule (which 
continues to extend ResourceLoaderModule) by about half.

Modified Paths:
--------------
    branches/resourceloader/phase3/includes/AutoLoader.php
    branches/resourceloader/phase3/includes/ResourceLoaderModule.php
    branches/resourceloader/phase3/resources/Resources.php

Modified: branches/resourceloader/phase3/includes/AutoLoader.php
===================================================================
--- branches/resourceloader/phase3/includes/AutoLoader.php      2010-08-31 
02:20:59 UTC (rev 72006)
+++ branches/resourceloader/phase3/includes/AutoLoader.php      2010-08-31 
02:28:16 UTC (rev 72007)
@@ -198,6 +198,7 @@
        'ReplacementArray' => 'includes/StringUtils.php',
        'Replacer' => 'includes/StringUtils.php',
        'ResourceLoader' => 'includes/ResourceLoader.php',
+       'ResourceLoaderFileModule' => 'includes/ResourceLoaderModule.php',
        'ResourceLoaderModule' => 'includes/ResourceLoaderModule.php',
        'ResourceLoaderSiteJSModule' => 'includes/ResourceLoaderModule.php',
        'ReverseChronologicalPager' => 'includes/Pager.php',

Modified: branches/resourceloader/phase3/includes/ResourceLoaderModule.php
===================================================================
--- branches/resourceloader/phase3/includes/ResourceLoaderModule.php    
2010-08-31 02:20:59 UTC (rev 72006)
+++ branches/resourceloader/phase3/includes/ResourceLoaderModule.php    
2010-08-31 02:28:16 UTC (rev 72007)
@@ -18,10 +18,96 @@
  * @author Roan Kattouw
  */
 
-// TODO: Class comment
-// TODO: Add an interface to inherit from rather than having to subclass this 
class, or add an empty-returning superclass
-class ResourceLoaderModule {
+/**
+ * Interface for resource loader modules, with name registration functionality.
+ */
+abstract class ResourceLoaderModule {
        private $name = null;
+       
+       /**
+        * Get this module's name. This is set when the module is registered
+        * with ResourceLoader::register()
+        * @return mixed Name (string) or null if no name was set
+        */
+       public function getName() {
+               return $this->name;
+       }
+       
+       /**
+        * Set this module's name. This is called by ResourceLodaer::register()
+        * when registering the module. Other code should not call this.
+        * @param $name string Name
+        */
+       public function setName( $name ) {
+               $this->name = $name;
+       }
+       
+       /**
+        * Get all JS for this module for a given language and skin.
+        * Includes all relevant JS except loader scripts.
+        * @param $lang string Language code
+        * @param $skin string Skin name
+        * @param $debug bool Whether to include debug scripts
+        * @return string JS
+        */
+       public abstract function getScript( $lang, $skin, $debug );
+       
+       /**
+        * Get all CSS for this module for a given skin.
+        * @param $skin string Skin name
+        * @return string CSS
+        */
+       public abstract function getStyle( $skin );
+       
+       /**
+        * Get the messages needed for this module.
+        *
+        * To get a JSON blob with messages, use MessageBlobStore::get()
+        * @return array of message keys. Keys may occur more than once
+        */
+       public abstract function getMessages();
+       
+       /**
+        * Get the loader JS for this module, if set.
+        * @return mixed Loader JS (string) or false if no custom loader set
+        */
+       public abstract function getLoaderScript();
+       
+       /**
+        * Get a list of modules this module depends on.
+        *
+        * Dependency information is taken into account when loading a module
+        * on the client side. When adding a module on the server side,
+        * dependency information is NOT taken into account and YOU are
+        * responsible for adding dependent modules as well. If you don't do
+        * this, the client side loader will send a second request back to the
+        * server to fetch the missing modules, which kind of defeats the
+        * purpose of the resource loader.
+        *
+        * To add dependencies dynamically on the client side, use a custom
+        * loader script, see getLoaderScript()
+        * @return array Array of module names (strings)
+        */
+       public abstract function getDependencies();
+       
+       /**
+        * Get this module's last modification timestamp for a given
+        * combination of language, skin and debug mode flag. This is typically
+        * the highest of each of the relevant components' modification
+        * timestamps. Whenever anything happens that changes the module's
+        * contents for these parameters, the mtime should increase.
+        * @param $lang string Language code
+        * @param $skin string Skin name
+        * @param $debug bool Debug mode flag
+        * @return int UNIX timestamp
+        */
+       public abstract function getmtime( $lang, $skin, $debug );
+}
+
+/**
+ * Module based on local JS/CSS files. This is the most common type of module.
+ */
+class ResourceLoaderFileModule extends ResourceLoaderModule {
        private $scripts = array();
        private $styles = array();
        private $messages = array();
@@ -98,14 +184,6 @@
                }
        }
        
-       public function getName() {
-               return $this->name;
-       }
-       
-       public function setName( $name ) {
-               $this->name = $name;
-       }
-       
        /**
         * Add script files to this module. In order to be valid, a module
         * must contain at least one script file.
@@ -215,15 +293,6 @@
                $this->loaders = array_merge( $this->loaders, (array)$scripts );
        }
        
-       /**
-        * Get all JS for this module for a given language and skin. This
-        * aggregates the output of getPrimaryScript(), getLanguageScript(),
-        * getSkinScript() and getDebugScript() (but NOT getLoaderScript() !)
-        * @param $lang string Language code
-        * @param $skin string Skin name
-        * @param $debug bool Whether to include debug scripts
-        * @return string JS
-        */
        public function getScript( $lang, $skin, $debug ) {
                $retval = $this->getPrimaryScript() . "\n" .
                        $this->getLanguageScript( $lang ) . "\n" .
@@ -234,13 +303,47 @@
                return $retval;
        }
        
+       public function getStyle( $skin ) {
+               return $this->getPrimaryStyle() . "\n" . $this->getSkinStyle( 
$skin );
+       }
+       
+       public function getMessages() {
+               return $this->messages;
+       }
+       
+       public function getDependencies() {
+               return $this->dependencies;
+       }
+       
+       public function getLoaderScript() {
+               if ( count( $this->loaders ) == 0 ) {
+                       return false;
+               }
+               return self::concatScripts( $this->loaders );
+       }
+       
        /**
-        * Get all CSS for this module for a given skin. This
-        * aggregates the output of getPrimaryStyle() and getSkinStyle()
+        * Get the last modified timestamp of this module, which is calculated
+        * as the highest last modified timestamp of its constituent files and
+        * the files it depends on (see getFileDependencies()). Only files
+        * relevant to the given language and skin are taken into account, and
+        * files only relevant in debug mode are not taken into account when
+        * debug mode is off.
+        * @param $lang string Language code
         * @param $skin string Skin name
+        * @param $debug bool Debug mode flag
+        * @return int UNIX timestamp
         */
-       public function getStyle( $skin ) {
-               return $this->getPrimaryStyle() . $this->getSkinStyle( $skin );
+       public function getmtime( $lang, $skin, $debug ) {
+               $files = array_merge( $this->scripts, $this->styles,
+                       $debug ? $this->debugScripts : array(),
+                       isset( $this->languageScripts[$lang] ) ? 
(array)$this->languageScripts[$lang] : array(),
+                       (array)self::getSkinFiles( $skin, $this->skinScripts ),
+                       (array)self::getSkinFiles( $skin, $this->skinStyles ),
+                       $this->loaders,
+                       $this->getFileDependencies( $lang, $skin )
+               );
+               return max( array_map( 'filemtime', $files ) );
        }
        
        /**
@@ -262,24 +365,6 @@
        }
        
        /**
-        * Get the messages added to this module with addMessages().
-        *
-        * To get a JSON blob with messages, use MessageBlobStore::get()
-        * @return array of message keys. Keys may occur more than once
-        */
-       public function getMessages() {
-               return $this->messages;
-       }
-       
-       /**
-        * Get the dependencies added to this module with addDependencies()
-        * @return array of module names (strings)
-        */
-       public function getDependencies() {
-               return $this->dependencies;
-       }
-       
-       /**
         * Get the debug JS for this module. This is pulled from the script
         * files added through addDebugScripts()
         * @return string JS
@@ -335,48 +420,12 @@
        }
        
        /**
-        * Get the custom loader JS, if set. This is pulled from the script
-        * files added through addLoaders()
-        * @return mixed Loader JS (string) or false if no custom loader set
-        */
-       public function getLoaderScript() {
-               if ( count( $this->loaders ) == 0 ) {
-                       return false;
-               }
-               return self::concatScripts( $this->loaders );
-       }
-       
-       /**
-        * Get the last modified timestamp of this module, which is calculated
-        * as the highest last modified timestamp of its constituent files and
-        * the files it depends on (see getFileDependencies()). Only files
-        * relevant to the given language and skin are taken into account, and
-        * files only relevant in debug mode are not taken into account when
-        * debug mode is off.
-        * @param $lang string Language code
-        * @param $skin string Skin name
-        * @param $debug bool Debug mode flag
-        * @return int UNIX timestamp
-        */
-       public function getmtime( $lang, $skin, $debug ) {
-               $files = array_merge( $this->scripts, $this->styles,
-                       $debug ? $this->debugScripts : array(),
-                       isset( $this->languageScripts[$lang] ) ? 
(array)$this->languageScripts[$lang] : array(),
-                       (array)self::getSkinFiles( $skin, $this->skinScripts ),
-                       (array)self::getSkinFiles( $skin, $this->skinStyles ),
-                       $this->loaders,
-                       $this->getFileDependencies( $lang, $skin )
-               );
-               return max( array_map( 'filemtime', $files ) );
-       }
-       
-       /**
         * Get the files this module depends on indirectly for a given skin.
         * Currently these are only image files referenced by the module's CSS.
         * @param $skin string Skin name
         * @return array of files
         */
-       public function getFileDependencies( $skin ) {
+       protected function getFileDependencies( $skin ) {
                $dbr = wfGetDb( DB_SLAVE );
                $deps = $dbr->selectField( 'module_deps', 'md_deps', array(
                                'md_module' => $this->getName(),
@@ -403,7 +452,7 @@
         * @return string Concatenated and remapped contents of $files
         */
        protected static function concatStyles( $files ) {
-               return implode( "\n", array_map( array( 'ResourceLoaderModule', 
'remapStyle' ), array_unique( (array) $files ) ) );
+               return implode( "\n", array_map( array( __CLASS__, 'remapStyle' 
), array_unique( (array) $files ) ) );
        }
        
        /**
@@ -421,7 +470,7 @@
  * Custom module for MediaWiki:Common.js and MediaWiki:Skinname.js
  */
 class ResourceLoaderSiteJSModule extends ResourceLoaderModule {
-       protected function getSkinScript( $skin ) {
+       public function getScript( $lang, $skin, $debug ) {
                return Skin::newFromKey( $skin )->generateUserJs();
        }
        
@@ -447,14 +496,8 @@
                return $retval;
        }
        
-       // Dummy overrides to return emptyness
-       // FIXME: Use a parent class with emptyness and let the normal module 
class inherit from that
-       protected function getPrimaryScript() { return ''; }
-       protected function getPrimaryStyle() { return ''; }
+       public function getStyle( $skin ) { return ''; }
        public function getMessages() { return array(); }
+       public function getLoaderScript() { return ''; }
        public function getDependencies() { return array(); }
-       protected function getDebugScript() { return ''; }
-       protected function getLanguageScript( $lang ) { return ''; }
-       protected function getSkinStyle( $skin ) { return ''; }
-       public function getLoaderScript() { return false; }
 }

Modified: branches/resourceloader/phase3/resources/Resources.php
===================================================================
--- branches/resourceloader/phase3/resources/Resources.php      2010-08-31 
02:20:59 UTC (rev 72006)
+++ branches/resourceloader/phase3/resources/Resources.php      2010-08-31 
02:28:16 UTC (rev 72007)
@@ -8,21 +8,21 @@
        
        /* Skins */
        
-       'vector' => new ResourceLoaderModule( array( 'styles' => 
'skins/vector/main-ltr.css' ) ),
+       'vector' => new ResourceLoaderFileModule( array( 'styles' => 
'skins/vector/main-ltr.css' ) ),
        
        /* jQuery */
        
-       'jquery' => new ResourceLoaderModule( array( 'scripts' => 
'resources/jquery/jquery.js' ) ),
+       'jquery' => new ResourceLoaderFileModule( array( 'scripts' => 
'resources/jquery/jquery.js' ) ),
        
        /* jQuery Plugins */
        
-       'jquery.tabIndex' => new ResourceLoaderModule( array( 'scripts' => 
'resources/jquery/jquery.tabIndex.js' ) ),
-       'jquery.cookie' => new ResourceLoaderModule( array( 'scripts' => 
'resources/jquery/jquery.cookie.js' ) ),
+       'jquery.tabIndex' => new ResourceLoaderFileModule( array( 'scripts' => 
'resources/jquery/jquery.tabIndex.js' ) ),
+       'jquery.cookie' => new ResourceLoaderFileModule( array( 'scripts' => 
'resources/jquery/jquery.cookie.js' ) ),
        
        /* jQuery UI */
        
        // Core
-       'jquery.ui.core' => new ResourceLoaderModule( array(
+       'jquery.ui.core' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.core.js',
                'skinStyles' => array(
                        'default' => array(
@@ -36,28 +36,28 @@
                ),
                'dependencies' => 'jquery',
        ) ),
-       'jquery.ui.widget' => new ResourceLoaderModule( array(
+       'jquery.ui.widget' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.widget.js',
                'dependencies' => 'jquery.ui.core',
        ) ),
-       'jquery.ui.mouse' => new ResourceLoaderModule( array(
+       'jquery.ui.mouse' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.mouse.js',
                'dependencies' => 'jquery',
        ) ),
-       'jquery.ui.position' => new ResourceLoaderModule( array(
+       'jquery.ui.position' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.position.js',
                'dependencies' => 'jquery',
        ) ),
        // Interactions
-       'jquery.ui.draggable' => new ResourceLoaderModule( array(
+       'jquery.ui.draggable' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.draggable.js',
                'dependencies' => 'jquery.ui.core',
        ) ),
-       'jquery.ui.droppable' => new ResourceLoaderModule( array(
+       'jquery.ui.droppable' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.droppable.js',
                'dependencies' => array( 'jquery.ui.core', 
'jquery.ui.draggable' ),
        ) ),
-       'jquery.ui.resizable' => new ResourceLoaderModule( array(
+       'jquery.ui.resizable' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.resizable.js',
                'skinStyles' => array(
                        'default' => 
'resources/jquery.ui/themes/default/jquery.ui.resizable.css',
@@ -65,7 +65,7 @@
                ),
                'dependencies' => 'jquery.ui.core',
        ) ),
-       'jquery.ui.selectable' => new ResourceLoaderModule( array(
+       'jquery.ui.selectable' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.selectable.js',
                'skinStyles' => array(
                        'default' => 
'resources/jquery.ui/themes/default/jquery.ui.selectable.css',
@@ -73,12 +73,12 @@
                ),
                'dependencies' => 'jquery.ui.core',
        ) ),
-       'jquery.ui.sortable' => new ResourceLoaderModule( array(
+       'jquery.ui.sortable' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.sortable.js',
                'dependencies' => 'jquery.ui.core',
        ) ),
        // Widgets
-       'jquery.ui.accordion' => new ResourceLoaderModule( array(
+       'jquery.ui.accordion' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.accordion.js',
                'dependencies' => 'jquery.ui.core',
                'skinStyles' => array(
@@ -86,7 +86,7 @@
                        'vector' => 
'resources/jquery.ui/themes/vector/jquery.ui.accordion.css',
                ),
        ) ),
-       'jquery.ui.autocomplete' => new ResourceLoaderModule( array(
+       'jquery.ui.autocomplete' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.autocomplete.js',
                'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget', 
'jquery.ui.position' ),
                'skinStyles' => array(
@@ -94,7 +94,7 @@
                        'vector' => 
'resources/jquery.ui/themes/vector/jquery.ui.autocomplete.css',
                ),
        ) ),
-       'jquery.ui.button' => new ResourceLoaderModule( array(
+       'jquery.ui.button' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.button.js',
                'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget' ),
                'skinStyles' => array(
@@ -102,7 +102,7 @@
                        'vector' => 
'resources/jquery.ui/themes/vector/jquery.ui.button.css',
                ),
        ) ),
-       'jquery.ui.datepicker' => new ResourceLoaderModule( array(
+       'jquery.ui.datepicker' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.datepicker.js',
                'dependencies' => 'jquery.ui.core',
                'skinStyles' => array(
@@ -164,7 +164,7 @@
                        'zh-tw' => 
'resources/jquery.ui/i18n/jquery.ui.datepicker-zh-TW.js'
                ),
        ) ),
-       'jquery.ui.dialog' => new ResourceLoaderModule( array(
+       'jquery.ui.dialog' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.dialog.js',
                'dependencies' => 'jquery.ui.core',
                'skinStyles' => array(
@@ -172,7 +172,7 @@
                        'vector' => 
'resources/jquery.ui/themes/vector/jquery.ui.dialog.css',
                ),
        ) ),
-       'jquery.ui.progressbar' => new ResourceLoaderModule( array(
+       'jquery.ui.progressbar' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.progressbar.js',
                'dependencies' => 'jquery.ui.core',
                'skinStyles' => array(
@@ -180,7 +180,7 @@
                        'vector' => 
'resources/jquery.ui/themes/vector/jquery.ui.progressbar.css',
                ),
        ) ),
-       'jquery.ui.slider' => new ResourceLoaderModule( array(
+       'jquery.ui.slider' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.slider.js',
                'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget', 
'jquery.ui.mouse' ),
                'skinStyles' => array(
@@ -188,7 +188,7 @@
                        'vector' => 
'resources/jquery.ui/themes/vector/jquery.ui.slider.css',
                ),
        ) ),
-       'jquery.ui.tabs' => new ResourceLoaderModule( array(
+       'jquery.ui.tabs' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.ui/jquery.ui.tabs.js',
                'dependencies' => 'jquery.ui.core',
                'skinStyles' => array(
@@ -197,159 +197,159 @@
                ),
        ) ),
        // Effects
-       'jquery.effects.core' => new ResourceLoaderModule( array(
+       'jquery.effects.core' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.effects/jquery.effects.core.js',
                'dependencies' => 'jquery',
        ) ),
-       'jquery.effects.blind' => new ResourceLoaderModule( array(
+       'jquery.effects.blind' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.effects/jquery.effects.blind.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
-       'jquery.effects.bounce' => new ResourceLoaderModule( array(
+       'jquery.effects.bounce' => new ResourceLoaderFileModule( array(
                'scripts' => 
'resources/jquery.effects/jquery.effects.bounce.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
-       'jquery.effects.clip' => new ResourceLoaderModule( array(
+       'jquery.effects.clip' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.effects/jquery.effects.clip.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
-       'jquery.effects.drop' => new ResourceLoaderModule( array(
+       'jquery.effects.drop' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.effects/jquery.effects.drop.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
-       'jquery.effects.explode' => new ResourceLoaderModule( array(
+       'jquery.effects.explode' => new ResourceLoaderFileModule( array(
                'scripts' => 
'resources/jquery.effects/jquery.effects.explode.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
-       'jquery.effects.fold' => new ResourceLoaderModule( array(
+       'jquery.effects.fold' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.effects/jquery.effects.fold.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
-       'jquery.effects.highlight' => new ResourceLoaderModule( array(
+       'jquery.effects.highlight' => new ResourceLoaderFileModule( array(
                'scripts' => 
'resources/jquery.effects/jquery.effects.highlight.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
-       'jquery.effects.pulsate' => new ResourceLoaderModule( array(
+       'jquery.effects.pulsate' => new ResourceLoaderFileModule( array(
                'scripts' => 
'resources/jquery.effects/jquery.effects.pulsate.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
-       'jquery.effects.scale' => new ResourceLoaderModule( array(
+       'jquery.effects.scale' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.effects/jquery.effects.scale.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
-       'jquery.effects.shake' => new ResourceLoaderModule( array(
+       'jquery.effects.shake' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.effects/jquery.effects.shake.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
-       'jquery.effects.slide' => new ResourceLoaderModule( array(
+       'jquery.effects.slide' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/jquery.effects/jquery.effects.slide.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
-       'jquery.effects.transfer' => new ResourceLoaderModule( array(
+       'jquery.effects.transfer' => new ResourceLoaderFileModule( array(
                'scripts' => 
'resources/jquery.effects/jquery.effects.transfer.js',
                'dependencies' => 'jquery.effects.core',
        ) ),
        
        /* MediaWiki */
        
-       'mediawiki' => new ResourceLoaderModule( array(
+       'mediawiki' => new ResourceLoaderFileModule( array(
                'scripts' => 'resources/mediawiki/mediawiki.js',
                'debugScripts' => 'resources/mediawiki/mediawiki.log.js',
        ) ),
        
        /* MediaWiki Utilities */
        
-       'mediawiki.utilities.client' => new ResourceLoaderModule( array(
+       'mediawiki.utilities.client' => new ResourceLoaderFileModule( array(
                'scripts' => 
'resources/mediawiki.util/mediawiki.utilities.client.js',
        ) ),
        
        /* MediaWiki Legacy */
        
-       'mediawiki.legacy.ajax' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.ajax' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/ajax.js',
                'messages' => array( 'watch', 'unwatch', 'watching', 
'unwatching', 'tooltip-ca-watch', 'tooltip-ca-unwatch' ),
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.ajaxwatch' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.ajaxwatch' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/ajaxwatch.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.block' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.block' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/block.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.changepassword' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.changepassword' => new ResourceLoaderFileModule( 
array(
                'scripts' => 'skins/common/changepassword.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.edit' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.edit' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/edit.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.enhancedchanges' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.enhancedchanges' => new ResourceLoaderFileModule( 
array(
                'scripts' => 'skins/common/enhancedchanges.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.config' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.config' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/config.js',
                'styles' => array( 'skins/common/config.css', 
'skins/common/config-cc.css' ),
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.diff' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.diff' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/diff.js',
                'styles' => 'skins/common/diff.css',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.history' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.history' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/history.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.htmlform' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.htmlform' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/htmlform.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.IEFixes' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.IEFixes' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/IEFixes.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.metadata' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.metadata' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/metadata.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.mwsuggest' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.mwsuggest' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/mwsuggest.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.password' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.password' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/password.js',
                'styles' => 'skins/common/password.css',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.prefs' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.prefs' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/prefs.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.preview' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.preview' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/preview.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.protect' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.protect' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/protect.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.rightclickedit' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.rightclickedit' => new ResourceLoaderFileModule( 
array(
                'scripts' => 'skins/common/rightclickedit.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.search' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.search' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/search.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.upload' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.upload' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/upload.js',
                'dependencies' => 'mediawiki',
        ) ),
-       'mediawiki.legacy.wikibits' => new ResourceLoaderModule( array(
+       'mediawiki.legacy.wikibits' => new ResourceLoaderFileModule( array(
                'scripts' => 'skins/common/wikibits.js',
                'dependencies' => 'mediawiki',
                'messages' => array( 'showtoc', 'hidetoc' ),



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to