function stylesheet_include_tag($file, $prefix = null) { $includes = array(); $files = Helper::includeAsset($file, 'css'); $prefix = rtrim($prefix, DIRECTORY_SEPARATOR); foreach ($files as $file) { array_push($includes, "<link href='{$prefix}{$file}' media='screen' rel='stylesheet'/>"); } return $includes; }
public static function cleanupTmp(InputInterface $input, OutputInterface $output) { self::_initConfig($input); $serverRootPath = Config::getServerRootPath(); $tmpDir = $serverRootPath . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'assets'; if (is_dir($tmpDir) === false) { return true; } $files = array(); foreach (scandir($tmpDir) as $file) { if ($file !== '.' && $file !== '..') { array_push($files, $tmpDir . DIRECTORY_SEPARATOR . $file); } } if (empty($files)) { return true; } $precompileFiles = Config::getPrecompile(); if (empty($precompileFiles)) { return true; } $usefulFiles = array(); foreach ($precompileFiles as $precompileFile) { $parts = explode('.', $precompileFile); if (count($parts) < 2) { continue; } $type = strtolower($parts[1]); if ($type !== 'js' && $type !== 'css') { continue; } $compiledFiles = Helper::loadCompiledFiles($parts[0], $type); if (empty($compiledFiles)) { continue; } $uglifyClass = '\\Assets\\Uglify\\' . ucfirst($type); foreach ($compiledFiles as $compiledFile) { $compiledFile = $serverRootPath . $compiledFile; if (file_exists($compiledFile)) { array_push($usefulFiles, $compiledFile); } } } $unusefulFiles = array_diff($files, $usefulFiles); foreach ($unusefulFiles as $unusefulFile) { if (unlink($unusefulFile)) { $output->writeln('<info>Remove unuseful file</info> : ' . $unusefulFile); } } }
private static function _loadSrcFiles($file) { $compiledFiles = Helper::loadCompiledFiles($file, static::$_type); if (empty($compiledFiles)) { return array(); } $serverRootPath = Config::getServerRootPath(); $result = array('files' => array(), 'hashes' => array()); foreach ($compiledFiles as $compiledFile) { $compiledFile = "{$serverRootPath}{$compiledFile}"; array_push($result['files'], $compiledFile); array_push($result['hashes'], filemtime($compiledFile)); } return $result; }
protected static function _urlCompile($file, $srcFileDirPath) { $contents = file_get_contents($file); $matches = array(); preg_match_all('/(image-url|font-url|url)\\s*\\(\\s*(\'|\\")?\\s*([^"\'\\)]*)\\s*(\'|\\")?\\s*\\)\\s*/mi', $contents, $matches); if (empty($matches[0])) { return true; } $replace = array(); foreach ($matches[0] as $index => $match) { if (strpos($match, 'image-url') === 0) { $url = Helper::imageUrl($matches[3][$index]); } else { if (strpos($match, 'font-url') === 0) { $url = Helper::fontUrl($matches[3][$index]); } else { if (strpos($matches[3][$index], './') === 0) { $url = ltrim($matches[3][$index], './'); } else { $url = ltrim($matches[3][$index], DIRECTORY_SEPARATOR); } $parts = array(); preg_match_all('/^(\\.{2}\\/)*/', $url, $parts); if (!empty($parts[0][0])) { $url = str_replace($parts[0][0], '', $url); $baseDir = realpath($srcFileDirPath . DIRECTORY_SEPARATOR . $parts[0][0]); } else { $baseDir = $srcFileDirPath; } $url = Helper::assetUrl($url, $baseDir); if ($url === false) { $url = $matches[3][$index]; } } } array_push($replace, 'url("' . $url . '")'); } $contents = str_replace($matches[0], $replace, $contents); if (file_put_contents($file, $contents) === false) { unlink($file); return false; } return true; }