loader request or generating HTML output.
&$resourceLoader: ResourceLoader object
+'ResourceLoaderGetStartupModules': Run once the startup module is being generated. This allows you
+to add modules to the startup module. This hook should be used sparingly since any module added here
+will be loaded on all pages. This hook is useful if you want to make code available to module loader
+scripts.
+
'RawPageViewBeforeOutput': Right before the text is blown out in action=raw
&$obj: RawPage object
&$text: The text that's going to be the output
$out = file_get_contents( "$IP/resources/startup.js" );
if ( $context->getOnly() === 'scripts' ) {
- // Build load query for jquery and mediawiki modules
+
+ // The core modules:
+ $modules = array( 'jquery', 'mediawiki' );
+ wfRunHooks( 'ResourceLoaderGetStartupModules', array( &$modules ) );
+
+ // Get the latest version
+ $version = 0;
+ foreach ( $modules as $moduleName ) {
+ $version = max( $version,
+ $context->getResourceLoader()->getModule( $moduleName )->getModifiedTime( $context )
+ );
+ }
+ // Build load query for StartupModules
$query = array(
- 'modules' => implode( '|', array( 'jquery', 'mediawiki' ) ),
+ 'modules' => implode( '|', $modules ),
'only' => 'scripts',
'lang' => $context->getLanguage(),
'skin' => $context->getSkin(),
'debug' => $context->getDebug() ? 'true' : 'false',
- 'version' => wfTimestamp( TS_ISO_8601_BASIC, max(
- $context->getResourceLoader()->getModule( 'jquery' )->getModifiedTime( $context ),
- $context->getResourceLoader()->getModule( 'mediawiki' )->getModifiedTime( $context )
- ) )
+ 'version' => wfTimestamp( TS_ISO_8601_BASIC, round( $version, -2 ) )
);
// Ensure uniform query order
ksort( $query );