private function setAssets($type = 'live') { global $wgOut; $jsHeadGroups = ['venus_head_js']; $jsHeadFiles = ''; $jsBodyGroups = ['venus_body_js']; $jsBodyFiles = ''; $cssGroups = ['venus_css']; $cssLinks = ''; if ($type == 'preview') { $cssGroups[] = 'article_scss'; $jsPreviewFiles = ''; foreach ($this->assetsManager->getURL(['venus_preview_js']) as $src) { $jsPreviewFiles .= "<script src='{$src}'></script>"; } $this->jsPreviewFiles = $jsPreviewFiles; } else { // let extensions manipulate the asset packages (e.g. ArticleComments, // this is done to cut down the number or requests) $this->app->runHook('VenusAssetsPackages', [&$jsHeadGroups, &$jsBodyGroups, &$cssGroups]); } // SASS files requested via VenusAssetsPackages hook $sassFiles = []; foreach ($this->assetsManager->getURL($cssGroups) as $src) { if ($this->assetsManager->checkAssetUrlForSkin($src, $this->skin)) { $sassFiles[] = $src; } } // try to fetch all SASS files using a single request (CON-1487) // "WikiaSkin::getStylesWithCombinedSASS: combined 9 SASS files" $cssLinks .= $this->skin->getStylesWithCombinedSASS($sassFiles); foreach ($this->assetsManager->getURL($jsHeadGroups) as $src) { if ($this->assetsManager->checkAssetUrlForSkin($src, $this->skin)) { $jsHeadFiles .= "<script src='{$src}'></script>"; } } // try to fetch all AM groups in a single JS request (CON-1772) // "WikiaSkin::getScriptsWithCombinedGroups: combined 8 JS groups" $jsBodyFiles = $this->skin->getScriptsWithCombinedGroups($jsBodyGroups); // global variables from ResourceLoaderStartUpModule $res = new ResourceVariablesGetter(); $vars = WikiaSkin::makeInlineVariablesScript($res->get()); // is it used anywhere? // set variables $this->cssLinks = $cssLinks; $this->jsBodyFiles = $jsBodyFiles; $this->jsHeadScripts = $wgOut->getHeadScripts() . $jsHeadFiles; }