/** * Get the stylesheet of the MediaWiki skin. * * @return string */ public function getCSS() { global $wgStyleDirectory; $moduleNames = array('mediawiki.legacy.shared', 'mediawiki.skinning.interface'); if (file_exists("{$wgStyleDirectory}/Vector/Vector.php")) { // Force loading Vector skin if available as a fallback skin // for whatever ResourceLoader wants to have as the default. // Include instead of require, as this will work without it, it will just look bad. // We need the 'global' statement for $wgResourceModules because the Vector skin adds the // definitions for its RL modules there that we use implicitly below. // @codingStandardsIgnoreStart global $wgResourceModules; // This is NOT UNUSED! // @codingStandardsIgnoreEnd include_once "{$wgStyleDirectory}/Vector/Vector.php"; $moduleNames[] = 'skins.vector.styles'; } $moduleNames[] = 'mediawiki.legacy.config'; $resourceLoader = new ResourceLoader(); $rlContext = new ResourceLoaderContext($resourceLoader, new FauxRequest(array('debug' => 'true', 'lang' => $this->getLanguageCode(), 'only' => 'styles'))); $styles = array(); foreach ($moduleNames as $moduleName) { /** @var ResourceLoaderFileModule $module */ $module = $resourceLoader->getModule($moduleName); // Based on: ResourceLoaderFileModule::getStyles (without the DB query) $styles = array_merge($styles, ResourceLoader::makeCombinedStyles($module->readStyleFiles($module->getStyleFiles($rlContext), $module->getFlip($rlContext)))); } return implode("\n", $styles); }
/** * Get the stylesheet of the MediaWiki skin. * * @return string */ public function getCSS() { global $wgStyleDirectory; $moduleNames = array('mediawiki.legacy.shared', 'mediawiki.skinning.interface'); $resourceLoader = new ResourceLoader(); if (file_exists("{$wgStyleDirectory}/Vector/skin.json")) { // Force loading Vector skin if available as a fallback skin // for whatever ResourceLoader wants to have as the default. $registry = new ExtensionRegistry(); $data = $registry->readFromQueue(array("{$wgStyleDirectory}/Vector/skin.json" => 1)); if (isset($data['globals']['wgResourceModules'])) { $resourceLoader->register($data['globals']['wgResourceModules']); } $moduleNames[] = 'skins.vector.styles'; } $moduleNames[] = 'mediawiki.legacy.config'; $rlContext = new ResourceLoaderContext($resourceLoader, new FauxRequest(array('debug' => 'true', 'lang' => $this->getLanguageCode(), 'only' => 'styles'))); $styles = array(); foreach ($moduleNames as $moduleName) { /** @var ResourceLoaderFileModule $module */ $module = $resourceLoader->getModule($moduleName); if (!$module) { // T98043: Don't fatal, but it won't look as pretty. continue; } // Based on: ResourceLoaderFileModule::getStyles (without the DB query) $styles = array_merge($styles, ResourceLoader::makeCombinedStyles($module->readStyleFiles($module->getStyleFiles($rlContext), $module->getFlip($rlContext)))); } return implode("\n", $styles); }