Example #1
0
 public function getSkinUrl($file = null, array $params = array())
 {
     $fileExtension = pathinfo($file, PATHINFO_EXTENSION);
     if (self::$cacheImages === false or in_array($fileExtension, array('gif', 'jpg', 'jpeg', 'png', 'bmp', 'svg')) === false) {
         return parent::getSkinUrl($file, $params);
     }
     Varien_Profiler::start(__METHOD__);
     if (empty($params['_type'])) {
         $params['_type'] = 'skin';
     }
     if (empty($params['_default'])) {
         $params['_default'] = false;
     }
     $this->updateParamDefaults($params);
     if (!empty($file)) {
         $result = $this->_fallback($file, $params, array(array(), array('_theme' => $this->getFallbackTheme()), array('_theme' => self::DEFAULT_THEME)));
     }
     $sourceFile = $this->getSkinBaseFile($params) . (empty($file) ? '' : $file);
     if (file_exists($sourceFile) === false) {
         return parent::getSkinUrl($file, $params);
     }
     $fileName = substr(md5($sourceFile), 0, 6);
     $file = self::getCacheMediaDir() . DS . dechex(ceil(hexdec($fileName[0] . $fileName[1] . $fileName[2]) / 16)) . DS . $fileName[3] . DS . pathinfo($sourceFile, PATHINFO_FILENAME) . '.' . pathinfo($sourceFile, PATHINFO_EXTENSION);
     if (self::$checkFilemtime === true) {
         if (@filemtime($sourceFile) >= @filemtime($file)) {
             if (@filemtime($file) > 0) {
                 @unlink($file);
             }
         }
     }
     if (file_exists($file) === false) {
         if (!is_dir(dirname($file))) {
             Extendware_EWCore_Helper_File::mkdir(dirname($file));
         }
         copy($sourceFile, $file);
         if (Mage::helper('ewimageopt/config')->isSkinImageOptimizingEnabled() === true) {
             if (Mage::helper('ewimageopt/config')->getOptimizerMode() == 'realtime') {
                 if (Mage::helper('ewimageopt')->lock('optimizer.lock') === true) {
                     Mage::helper('ewimageopt')->optimizeImage($file, false);
                     Mage::helper('ewimageopt')->unlock('optimizer.lock');
                 }
             }
         }
     }
     $baseDir = self::getCacheMediaDir();
     $path = str_replace($baseDir . DS, '', $file);
     $result = $this->getBaseUrl() . Mage::helper('ewimageopt/config')->getSlugCustomPath() . '/media/skin/' . str_replace(DS, '/', $path);
     Varien_Profiler::stop(__METHOD__);
     return $result;
 }
Example #2
0
 public function mediaDirective($construction)
 {
     if (!$this instanceof Mage_Widget_Model_Template_Filter) {
         return parent::mediaDirective($construction);
     }
     if (self::$cacheImages === true) {
         $params = $this->_getIncludeParameters($construction[2]);
         $sourceFile = Mage::getConfig()->getOptions()->getMediaDir() . DS . $params['url'];
         if (file_exists($sourceFile) === false) {
             return parent::mediaDirective($construction);
         }
         $fileName = substr(md5($sourceFile), 0, 6);
         $file = self::getCacheMediaDir() . DS . dechex(ceil(hexdec($fileName[0] . $fileName[1] . $fileName[2]) / 16)) . DS . $fileName[3] . DS . pathinfo($sourceFile, PATHINFO_FILENAME) . '.' . pathinfo($sourceFile, PATHINFO_EXTENSION);
         if (self::$checkFilemtime === true) {
             if (@filemtime($sourceFile) >= @filemtime($file)) {
                 if (@filemtime($file) > 0) {
                     @unlink($file);
                 }
             }
         }
         if (file_exists($file) === false) {
             if (!is_dir(dirname($file))) {
                 Extendware_EWCore_Helper_File::mkdir(dirname($file));
             }
             copy($sourceFile, $file);
             if (Mage::helper('ewimageopt/config')->isSkinImageOptimizingEnabled() === true) {
                 if (Mage::helper('ewimageopt/config')->getOptimizerMode() == 'realtime') {
                     if (Mage::helper('ewimageopt')->lock('optimizer.lock') === true) {
                         Mage::helper('ewimageopt')->optimizeImage($file, false);
                         Mage::helper('ewimageopt')->unlock('optimizer.lock');
                     }
                 }
             }
         }
         $baseDir = self::getCacheMediaDir();
         $path = str_replace($baseDir . DS, '', $file);
         return $this->getBaseUrl() . Mage::helper('ewimageopt/config')->getSlugCustomPath() . '/media/template/' . str_replace(DS, '/', $path);
     }
     return parent::mediaDirective($construction);
 }
Example #3
0
 private function createCachedFiles($type, $name, $contents)
 {
     $cacheDirectory = $this->getMinifyCacheDirectory() . DS . $type;
     if (is_dir($cacheDirectory) === false) {
         Extendware_EWCore_Helper_File::mkdir($cacheDirectory);
     }
     self::createHtaccessFile();
     $contentType = $type == 'js' ? 'application/x-javascript' : 'text/css';
     $typeMap = '';
     $contentLength = strlen($contents);
     @self::filePutContents($cacheDirectory . DS . $name, $contents, LOCK_EX);
     $typeMap .= self::getTypeMapSection($name, $contentType, null, 0.001);
     if (function_exists('gzdeflate')) {
         $compressedContents = gzdeflate($contents, 9);
         @self::filePutContents($cacheDirectory . DS . $name . '.zd', $compressedContents, LOCK_EX);
         $typeMap .= self::getTypeMapSection($name . '.zd', $contentType, 'deflate', $this->getQualityScore($contentLength, strlen($compressedContents)));
     }
     if (function_exists('gzencode')) {
         $compressedContents = gzencode($contents, 9);
         @self::filePutContents($cacheDirectory . DS . $name . '.zg', $compressedContents, LOCK_EX);
         $typeMap .= self::getTypeMapSection($name . '.zg', $contentType, 'x-gzip', $this->getQualityScore($contentLength, strlen($compressedContents)));
     }
     if (function_exists('gzcompress')) {
         $compressedContents = gzcompress($contents, 9);
         @self::filePutContents($cacheDirectory . DS . $name . '.zc', $compressedContents, LOCK_EX);
         $typeMap .= self::getTypeMapSection($name . '.zc', $contentType, 'x-compress', $this->getQualityScore($contentLength, strlen($compressedContents)));
     }
     @self::filePutContents($cacheDirectory . DS . $name . '.var', $typeMap, LOCK_EX);
     return $this;
 }