public function getScript(ResourceLoaderContext $context) { global $wgHooks; // add mwEmebdSupport to startup module: $wgHooks['ResourceLoaderGetStartupModules'][] = 'MwEmbedResourceLoaderStartUpModule::getStartupModules'; $out = parent::getScript($context); return $out; }
/** * Defines the ResourceLoader modules that should be added to the skin * It is recommended that skins wishing to override call parent::getDefaultModules() * and substitute out any modules they wish to change by using a key to look them up * @return array Array of modules with helper keys for easy overriding */ public function getDefaultModules() { global $wgUseAjax, $wgEnableAPI, $wgEnableWriteAPI; $out = $this->getOutput(); $user = $out->getUser(); $modules = array('content' => array('mediawiki.page.ready'), 'legacy' => ResourceLoaderStartUpModule::getLegacyModules(), 'search' => array(), 'watch' => array(), 'user' => array()); // Add various resources if required if ($wgUseAjax && $wgEnableAPI) { if ($wgEnableWriteAPI && $user->isLoggedIn() && $user->isAllowedAll('writeapi', 'viewmywatchlist', 'editmywatchlist') && $this->getRelevantTitle()->canExist()) { $modules['watch'][] = 'mediawiki.page.watch.ajax'; } $modules['search'][] = 'mediawiki.searchSuggest'; } if ($user->getBoolOption('editsectiononrightclick')) { $modules['user'][] = 'mediawiki.action.view.rightClickEdit'; } // Crazy edit-on-double-click stuff if ($out->isArticle() && $user->getOption('editondblclick')) { $modules['user'][] = 'mediawiki.action.view.dblClickEdit'; } return $modules; }
/** * @return array */ public function get() { $requestContext = RequestContext::getMain(); $resourceLoaderContext = new ResourceLoaderContext(new ResourceLoader(), new FauxRequest(array('skin' => $requestContext->getSkin()->getSkinName()))); return parent::getConfig($resourceLoaderContext); }
/** * @dataProvider provideRegistrations */ public function testRegistrationsUnminified($modules) { $context = $this->getResourceLoaderContext(); $rl = $context->getResourceLoader(); $rl->register($modules); $module = new ResourceLoaderStartUpModule(); $out = 'mw.loader.addSource( { "local": "/w/load.php" } ); mw.loader.register( [ [ "test.blank", "{blankVer}" ], [ "test.min", "{blankVer}", [ 0 ], null, null, "return !!( window.JSON \\u0026\\u0026 JSON.parse \\u0026\\u0026 JSON.stringify);" ] ] );'; $this->assertEquals(self::expandPlaceholders($out), $module->getModuleRegistrations($context), 'Unminified output'); }