/**
  * @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;
 }
Пример #3
0
 /**
  * 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;
 }
Пример #4
0
 /**
  * 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;
 }