コード例 #1
0
ファイル: CssAsset.php プロジェクト: mainio/c5_asset_pipeline
 /**
  * {@inheritDoc}
  */
 public static function process($assets)
 {
     if ($directory = self::getOutputDirectory()) {
         $relativeDirectory = self::getRelativeOutputDirectory();
         $filename = '';
         $sourceFiles = array();
         for ($i = 0; $i < count($assets); $i++) {
             $asset = $assets[$i];
             $filename .= $asset->getAssetHashKey();
             $sourceFiles[] = $asset->getAssetURL();
         }
         $filename = sha1($filename);
         $app = Facade::getFacadeApplication();
         $ah = $app->make('helper/assets');
         $paths = array();
         foreach ($assets as $asset) {
             $paths[] = $asset->getAssetPath();
         }
         $relativePath = $ah->javascriptPath($paths, array('name' => $filename, 'skipDigest' => true));
         $assetDir = Config::get('concrete.cache.directory');
         $asset = new CssAsset();
         $asset->setAssetURL($relativePath);
         $asset->setAssetPath($assetDir . $relativePath);
         $asset->setCombinedAssetSourceFiles($sourceFiles);
         return array($asset);
     }
     return $assets;
 }
コード例 #2
0
ファイル: CssAsset.php プロジェクト: ceko/concrete5-1
 /**
  * @param Asset[] $assets
  *
  * @return Asset[]
  */
 public static function process($assets)
 {
     if ($directory = self::getOutputDirectory()) {
         $relativeDirectory = self::getRelativeOutputDirectory();
         $filename = '';
         $sourceFiles = array();
         for ($i = 0; $i < count($assets); $i++) {
             $asset = $assets[$i];
             $filename .= $asset->getAssetHashKey();
             $sourceFiles[] = $asset->getAssetURL();
         }
         $filename = sha1($filename);
         $cacheFile = $directory . '/' . $filename . '.css';
         if (!file_exists($cacheFile)) {
             $css = '';
             foreach ($assets as $asset) {
                 $contents = $asset->getAssetContents();
                 if (isset($contents)) {
                     $contents = CssAsset::changePaths($contents, $asset->getAssetURLPath(), $relativeDirectory);
                     if ($asset->assetSupportsMinification()) {
                         $contents = \CssMin::minify($contents);
                     }
                     $css .= $contents . "\n\n";
                 }
             }
             @file_put_contents($cacheFile, $css);
         }
         $asset = new CssAsset();
         $asset->setAssetURL($relativeDirectory . '/' . $filename . '.css');
         $asset->setAssetPath($directory . '/' . $filename . '.css');
         $asset->setCombinedAssetSourceFiles($sourceFiles);
         return array($asset);
     }
     return $assets;
 }