/** * Inserts the scripts in the head section. * @param string $output the output to be inserted with scripts. */ public function renderHead(&$output) { $this->filterScripts(); $this->reorderFiles(); $this->processFiles(); parent::renderHead($output); }
/** * Inserts the scripts in the head section. * @param string $output the output to be inserted with scripts. */ public function renderHead(&$output) { if ($this->packScriptFiles && $this->enableJavaScript) { $this->packScriptFiles(self::POS_HEAD); } parent::renderHead($output); }
public function renderHead(&$output) { $cssFilesOrdered = array(); $currentCssFiles = $this->cssFiles; if (!empty($this->priority)) { # assign 0 to anything without a specific priority # can't do this in the register method because not every CSS file that ends up here used it $cssFilesWithPrioritySet = array_keys($this->priority); foreach ($currentCssFiles as $path => $v) { if (!in_array($path, $cssFilesWithPrioritySet)) { $this->priority[$path] = 0; } } asort($this->priority); foreach ($this->priority as $path => $id) { $cssFilesOrdered[$path] = $currentCssFiles[$path]; unset($currentCssFiles[$path]); } # add any remaining CSS files that didn't have an order specified $cssFilesOrdered += $currentCssFiles; } if (!empty($cssFilesOrdered)) { $this->cssFiles = $cssFilesOrdered; } parent::renderHead($output); }
/** * Extension of default {@link CClientScript::renderHead} that creates a big combo of minified CSS and compiled CSSP files. */ public function renderHead(&$output) { $html = ''; $origCssFiles = $this->cssFiles; $files_per_midia = array(); foreach ($origCssFiles as $css => $media) { foreach ($this->excludeFromCompiling as $regexp) { if (preg_match($regexp, $css)) { continue 2; } } if (!isset($files_per_midia[$media])) { $files_per_midia[$media] = array(); } $files_per_midia[$media][] = preg_replace('/^\\/assets\\//', '../assets/', $css); unset($this->cssFiles[$css]); } foreach ($files_per_midia as $media => $files) { $html .= $this->compile($files, $media) . "\n"; } if ($html !== '') { $count = 0; $output = preg_replace('/(<title\\b[^>]*>|<\\/head\\s*>)/is', '<###head###>$1', $output, 1, $count); if ($count) { $output = str_replace('<###head###>', $html, $output); } else { $output = $html . $output; } } parent::renderHead($output); $this->cssFiles = $origCssFiles; }
public function renderHead(&$output) { $cssFiles = array(); if (!empty($this->cssFiles)) { foreach ($this->cssFiles as $url => $media) { $cssFiles[$media][] = $url; } $this->cssFiles = array(); foreach ($cssFiles as $media => $urls) { $this->cssFiles[$this->minifyController . "/" . $this->md5Group($urls, "css")] = $media; } } if ($this->enableJavaScript) { if (isset($this->scriptFiles[self::POS_HEAD])) { $this->scriptFiles[self::POS_HEAD] = array($this->minifyController . "/" . $this->md5Group($this->scriptFiles[self::POS_HEAD], "js")); } } parent::renderHead($output); }
public function renderHead(&$output) { $folder = 'frontend.tmp'; $path = Yii::getPathOfAlias($folder); $root = Yii::getPathOfAlias('webroot'); $filePath = $root . '/../../Makefile'; $fullPaths = array(); $cssPaths = array(); foreach ($this->scriptFiles[0] as $from => $to) { $fullPaths[] = $root . $to; } foreach ($this->cssFiles as $path => $media) { $cssPaths[] = $root . $path; } $makefileTemplate = file_get_contents($root . '/../../Makefile.template'); $makefile = str_replace('{{jsFiles}}', implode(" \\\n", $fullPaths), $makefileTemplate); $makefile = str_replace('{{cssFiles}}', implode(" \\\n", $cssPaths), $makefile); file_put_contents($filePath, $makefile); parent::renderHead($output); }
/** * Inserts the scripts in the head section (overrides parent method). * @param string $output the output to be inserted with scripts. * @since 2.0 */ public function renderHead(&$output) { $this->_minScriptProcessor('scripts', self::POS_HEAD); $this->_minScriptProcessor('css'); parent::renderHead($output); }
/** * Will combine/compress JS and CSS if wanted/needed, and will continue with original * renderHead afterwards * * @param <type> $output */ public function renderHead(&$output) { if ($this->combineFiles) { $this->combineJs = $this->combineCss = true; } $this->renderJs($output, parent::POS_HEAD); if ($this->combineCss) { if (count($this->cssFiles) !== 0) { // old code - mixa, 2012 05 07 /*foreach ($this->cssFiles as $url => $media) if(! $this->isRemoteFile($url)) $cssFiles[$media][$url] = $url; // Exclude remote files */ // code from forum: $cssFiles = array(); foreach ($this->cssFiles as $url => $media) { $file_arr = pathinfo($url); if (!empty($this->excludeCssFiles) && in_array($file_arr['basename'], $this->excludeCssFiles) || $this->isRemoteFile($url)) { // excluding files } else { $cssFiles[$media][$url] = $url; } } /* // my code - mixa, 2012 05 07 $cssFiles = array(); foreach ($this->cssFiles as $url => $media) { if($this->isRemoteFile($url)) continue; $cont = false; if (!empty($this->excludeFiles)) foreach($this->excludeFiles AS $excludeFile) if (strpos($url, $excludeFile) !== false) {$cont = true; break; } if ($cont) continue; $cssFiles[$media][$url] = $url; // Exclude remote files } // -- end new code */ foreach ($cssFiles as $media => $url) { $this->combineAndCompress('css', $url, $media); } } } parent::renderHead($output); }
/** * Will combine/compress JS and CSS if wanted/needed, and will continue with original * renderHead afterwards * * @param <type> $output */ public function renderHead(&$output) { if ($this->combineFiles) { if (isset($this->scriptFiles[parent::POS_HEAD]) && count($this->scriptFiles[parent::POS_HEAD]) !== 0) { $jsFiles = $this->scriptFiles[parent::POS_HEAD]; if (!empty($this->excludeFiles)) { foreach ($jsFiles as &$fileName) (in_array($fileName, $this->excludeFiles)) AND $fileName = false; $jsFiles = array_filter($jsFiles); } $this->combineAndCompress('js',$jsFiles,parent::POS_HEAD); } if (count($this->cssFiles) !== 0) { foreach ($this->cssFiles as $url => $media) $cssFiles[$media][$url] = $url; foreach ($cssFiles as $media => $url) $this->combineAndCompress('css',$url, $media); } } parent::renderHead($output); }
/** * Will combine/compress JS and CSS if wanted/needed, and will continue with original * renderHead afterwards * * @param <type> $output */ public function renderHead(&$output) { if ($this->combineFiles) { $this->combineJs = $this->combineCss = true; } $this->renderJs($output, parent::POS_HEAD); if ($this->combineCss) { if (count($this->cssFiles) !== 0) { foreach ($this->cssFiles as $url => $media) { if (!$this->isRemoteFile($url)) { $cssFiles[$media][$url] = $url; } } // Exclude remote files foreach ($cssFiles as $media => $url) { $this->combineAndCompress('css', $url, $media); } } } parent::renderHead($output); }
/** * Inserts the scripts in the head section. * @param string $output the output to be inserted with scripts. */ public function renderHead(&$output) { //do sort by order $this->sortCssFiles(); $this->sortCss(); $this->sortScriptFiles(self::POS_HEAD); $this->sortScripts(self::POS_HEAD); parent::renderHead($output); }
/** * @param string the output to be inserted with scripts. */ public function renderHead(&$output) { // combine css files if (count($this->cssFiles) > 0) { $cssFiles = array(); foreach ($this->cssFiles as $url => $media) { if (!($this->excludeAssets && $this->isAsset($url)) && !in_array(basename($url), $this->excludeFiles)) { $cssFiles[$media ? strtolower($media) : $this->_defaultCssMedia][] = $url; } } foreach ($cssFiles as $media => $urls) { $outfile = $this->combineFiles('css', $urls); foreach ($urls as $url) { $this->scriptMap[basename($url)] = $this->getCoreScriptUrl() . '/' . $outfile; } } } // combine js files if ($this->enableJavaScript) { foreach ($this->getPositions() as $p) { if (isset($this->scriptFiles[$p])) { $combine = array(); foreach ($this->scriptFiles[$p] as $url) { if (!($this->excludeAssets && $this->isAsset($url)) && !in_array(basename($url), $this->excludeFiles)) { $combine[] = $url; } } if ($combine) { $outfile = $this->combineFiles('js', $combine); foreach ($combine as $url) { $this->scriptMap[basename($url)] = $this->getCoreScriptUrl() . '/' . $outfile; } } } } } $this->remapScripts(); parent::renderHead($output); }
/** * Combine css files and script files before renderHead. * * @param string the output to be inserted with scripts. */ public function renderHead(&$output) { $this->onBeforeOptimization('css', self::POS_HEAD); $this->onOptimization('css', self::POS_HEAD); $this->onAfterOptimization('css', self::POS_HEAD); $this->onBeforeOptimization('js', self::POS_HEAD); $this->onOptimization('js', self::POS_HEAD); $this->onAfterOptimization('js', self::POS_HEAD); parent::renderHead($output); }
/** * Combines the CSS files and the scripts at the head position * @param string $output */ public function renderHead(&$output) { if ($this->combineStyles) { $combiner = new CSSCombiner($this->combinedCssPrefix, $this->getPathResolver()); $this->cssFiles = $combiner->combine($this->cssFiles); } if ($this->combineScripts) { $this->combineScripts(self::POS_HEAD); } parent::renderHead($output); }
/** * Combine css files and script files before renderHead. * @param string the output to be inserted with scripts. */ public function renderHead(&$output) { if ($this->combineCssFiles) { $this->combineCssFiles(); } if ($this->combineScriptFiles && $this->enableJavaScript) { $this->combineScriptFiles(self::POS_HEAD); } parent::renderHead($output); }
public function renderHead(&$output) { $this->_putnlscode(); //merging if ($this->mergeJs) { $this->_mergeJs(self::POS_HEAD); } if ($this->mergeCss) { $this->_mergeCss(); } parent::renderHead($output); }
/** * Inserts the scripts in the head section. * @param string $output the output to be inserted with scripts. */ public function renderHead(&$output) { // If YII_DEBUG is set we don't want to minify the assets if (YII_DEBUG === false) { if (is_dir($this->_minifyPath) === false) { mkdir($this->_minifyPath, 0775, true); } $this->minifyCss(); if ($this->enableJavaScript) { foreach ($this->_minifyJsPositions as $position) { $this->minifyScriptFileByPosition($position); } } else { $this->scriptFiles = $this->scripts = null; } // We have to force the copy of the folder, since it might be possible // that another process copies some of the files in the folder first // and new ones will not be copied over the assets. $forceCopy = $this->_shouldForceCopy($this->_minifyPath); Yii::app()->assetManager->publish($this->_minifyPath, true, -1, $forceCopy); } parent::renderHead($output); }