/** * @param $context ResourceLoaderContext * @return array */ protected function getConfig($context) { global $wgLoadScript, $wgScript, $wgStylePath, $wgScriptExtension, $wgArticlePath, $wgScriptPath, $wgServer, $wgContLang, $wgVariantArticlePath, $wgActionPaths, $wgUseAjax, $wgVersion, $wgEnableAPI, $wgEnableWriteAPI, $wgDBname, $wgEnableMWSuggest, $wgSitename, $wgFileExtensions, $wgExtensionAssetsPath, $wgCookiePrefix, $wgResourceLoaderMaxQueryLength; $mainPage = Title::newMainPage(); /** * Namespace related preparation * - wgNamespaceIds: Key-value pairs of all localized, canonical and aliases for namespaces. * - wgCaseSensitiveNamespaces: Array of namespaces that are case-sensitive. */ $namespaceIds = $wgContLang->getNamespaceIds(); $caseSensitiveNamespaces = array(); foreach (MWNamespace::getCanonicalNamespaces() as $index => $name) { $namespaceIds[$wgContLang->lc($name)] = $index; if (!MWNamespace::isCapitalized($index)) { $caseSensitiveNamespaces[] = $index; } } // Build list of variables $vars = array('wgLoadScript' => $wgLoadScript, 'debug' => $context->getDebug(), 'skin' => $context->getSkin(), 'stylepath' => $wgStylePath, 'wgUrlProtocols' => wfUrlProtocols(), 'wgArticlePath' => $wgArticlePath, 'wgScriptPath' => $wgScriptPath, 'wgScriptExtension' => $wgScriptExtension, 'wgScript' => $wgScript, 'wgVariantArticlePath' => $wgVariantArticlePath, 'wgActionPaths' => (object) $wgActionPaths, 'wgServer' => $wgServer, 'wgUserLanguage' => $context->getLanguage(), 'wgContentLanguage' => $wgContLang->getCode(), 'wgVersion' => $wgVersion, 'wgEnableAPI' => $wgEnableAPI, 'wgEnableWriteAPI' => $wgEnableWriteAPI, 'wgDefaultDateFormat' => $wgContLang->getDefaultDateFormat(), 'wgMonthNames' => $wgContLang->getMonthNamesArray(), 'wgMonthNamesShort' => $wgContLang->getMonthAbbreviationsArray(), 'wgMainPageTitle' => $mainPage ? $mainPage->getPrefixedText() : null, 'wgFormattedNamespaces' => $wgContLang->getFormattedNamespaces(), 'wgNamespaceIds' => $namespaceIds, 'wgSiteName' => $wgSitename, 'wgFileExtensions' => array_values($wgFileExtensions), 'wgDBname' => $wgDBname, 'wgFileCanRotate' => BitmapHandler::canRotate(), 'wgAvailableSkins' => Skin::getSkinNames(), 'wgExtensionAssetsPath' => $wgExtensionAssetsPath, 'wgCookiePrefix' => $wgCookiePrefix, 'wgResourceLoaderMaxQueryLength' => $wgResourceLoaderMaxQueryLength, 'wgCaseSensitiveNamespaces' => $caseSensitiveNamespaces, 'wgSassParams' => SassUtil::getSassSettings()); if ($wgUseAjax && $wgEnableMWSuggest) { $vars['wgMWSuggestTemplate'] = SearchEngine::getMWSuggestTemplate(); } wfRunHooks('ResourceLoaderGetConfigVars', array(&$vars)); return $vars; }
public static function onResourceLoaderMakeQuery($modules, &$query) { // PER-58: append CB value to RL query global $wgStyleVersion; if (!empty($query['version'])) { $query['version'] = $wgStyleVersion . "-" . $query['version']; } else { $query['cb'] = $wgStyleVersion; } $only = isset($query['only']) ? $query['only'] : null; if (empty($only) || $only == 'styles') { $resourceLoaderInstance = self::getResourceLoaderInstance(); $requireSass = false; foreach ($modules as $moduleName) { $module = $resourceLoaderInstance->getModule($moduleName); if ($module->getFlag('sass')) { $requireSass = true; break; } } if ($requireSass) { $sassParams = SassUtil::getSassSettings(); foreach ($sassParams as $key => $value) { $query['sass_' . $key] = (string) $value; } } } return true; }
/** * Generates a valid SASS URL with all the required commandline parameters for Oasis * * @author Federico "Lox" Lucignano <federico(at)wikia-inc.com> * * @param string $scssFilePath * @param string $prefix * @param bool $minify * * @return string the generated URL */ private function getSassURL($scssFilePath, $prefix, $minify = null, $params = null) { wfProfileIn(__METHOD__); if (!is_array($params)) { $params = SassUtil::getSassSettings(); if ($minify !== null ? !$minify : !$this->mMinify) { $params['minify'] = false; } else { unset($params['minify']); } } $url = $prefix . $this->getAMLocalURL('sass', $scssFilePath, $params); // apply domain sharding $url = wfReplaceAssetServer($url); wfProfileOut(__METHOD__); return $url; }
/** * Get a default for custom Sass variables. * Currently returns Sass variables associated with current wiki. * * @return array Array of Sass variables */ protected static function getDefaultSassVariables() { return SassUtil::getSassSettings(); }
public static function onResourceLoaderMakeQuery($modules, &$query) { $only = isset($query['only']) ? $query['only'] : null; if (empty($only) || $only == 'styles') { $resourceLoaderInstance = self::getResourceLoaderInstance(); $requireSass = false; foreach ($modules as $moduleName) { $module = $resourceLoaderInstance->getModule($moduleName); if ($module->getFlag('sass')) { $requireSass = true; break; } } if ($requireSass) { $sassParams = SassUtil::getSassSettings(); foreach ($sassParams as $key => $value) { $query['sass_' . $key] = (string) $value; } } } return true; }