/** * override method: get content of css files */ function getJsContents($files, $isCompressed = true, $isYUI = false) { $contents = "/**ICE-ENGINE-JS**/"; foreach ($files as $file) { $subpath = str_replace('/', DS, $file); $fullpath = JPATH_ROOT . DS . $subpath; // $basepath = preg_replace( '/^\//', '', dirname($files2[$key]) ); $contentFile = ''; if (preg_match('/\\.php/', $file)) { $contentFile = @file_get_contents(JURI::base() . str_replace("&", "&", $file)); } else { if (file_exists($fullpath)) { // get Content Of File; $contentFile = @file_get_contents($fullpath); } } if ($contentFile) { $contents .= "/** '.{$subpath}.' **/\t"; $contents .= $contentFile; } } if ($isCompressed) { if ($isYUI) { $app =& JFactory::getApplication(); Minify_YUICompressor::$jarFile = dirname(__FILE__) . DS . 'Minify' . DS . 'yuicompressor-2.4.6.jar'; Minify_YUICompressor::$tempDir = $app->getCfg("tmp_path"); $contents = Minify_YUICompressor::minifyJs($contents, array('nomunge' => true, 'line-break' => 1000)); } else { $contents = JSMin::minify($contents); } } return $contents; }
function yuiJs($js) { require_once 'Minify/YUICompressor.php'; Minify_YUICompressor::$jarFile = dirname(__FILE__) . '/lib/yuicompressor-2.4.2.jar'; Minify_YUICompressor::$tempDir = GLOBAL_ROOT_PATH . $core->sysConfig->path->cache->min; return Minify_YUICompressor::minifyJs($js); }
public static function testJs(&$error) { try { Minify_YUICompressor::minifyJs('alert("ok");'); $error = 'OK'; return true; } catch (Exception $exception) { $error = $exception->getMessage(); return false; } }
/** * @param string $data * @param string $target * * @return string */ public function minifyJsCss($data, $target) { if ($this->isYUICompressEnabled() && $this->isCompressEnabled()) { Minify_YUICompressor::$jarFile = Mage::getBaseDir() . DS . 'lib' . DS . 'yuicompressor' . DS . 'yuicompressor.jar'; Minify_YUICompressor::$tempDir = realpath(sys_get_temp_dir()); } $YUICompressorFailed = false; switch (pathinfo($target, PATHINFO_EXTENSION)) { case 'js': if ($this->isYUICompressEnabled() && $this->isCompressEnabled()) { try { Varien_Profiler::start('Minify_YUICompressor::minifyJs'); $data = Minify_YUICompressor::minifyJs($data); Varien_Profiler::stop('Minify_YUICompressor::minifyJs'); $YUICompressorFailed = false; } catch (Exception $e) { Mage::log(Minify_YUICompressor::$yuiCommand); Mage::logException($e); $YUICompressorFailed = true; } } if (!$this->isYUICompressEnabled() && $this->isCompressEnabled() || $YUICompressorFailed === true && $this->isCompressEnabled()) { Varien_Profiler::start('Minify_JSMin::minify'); $data = Minify_JSMin::minify($data); Varien_Profiler::stop('Minify_JSMin::minify'); } break; case 'css': if ($this->isYUICompressEnabled() && $this->isCompressEnabled()) { try { Varien_Profiler::start('Minify_YUICompressor::minifyCss'); $data = Minify_YUICompressor::minifyCss($data); Varien_Profiler::stop('Minify_YUICompressor::minifyCss'); $YUICompressorFailed = false; } catch (Exception $e) { Mage::log(Minify_YUICompressor::$yuiCommand); Mage::logException($e); $YUICompressorFailed = true; } } if (!$this->isYUICompressEnabled() && $this->isCompressEnabled() || $YUICompressorFailed === true && $this->isCompressEnabled()) { Varien_Profiler::start('Minify_Css_Compressor::process'); $data = Minify_Css_Compressor::process($data); Varien_Profiler::stop('Minify_Css_Compressor::process'); } break; default: return false; } return $data; }
public function minifyJsCss($data, $target) { if ($this->canMinifyCss() || $this->canMinifyJs()) { if ($this->isYUICompressEnabled()) { Minify_YUICompressor::$jarFile = Mage::getBaseDir() . DS . 'bin' . DS . 'yuicompressor-2.4.7.jar'; Minify_YUICompressor::$tempDir = realpath(sys_get_temp_dir()); } switch (pathinfo($target, PATHINFO_EXTENSION)) { case 'js': if ($this->canMinifyJs()) { if ($this->isYUICompressEnabled()) { try { $data = Minify_YUICompressor::minifyJs($data); $YUICompressorFailed = false; } catch (Exception $e) { Mage::logException($e); $YUICompressorFailed = true; } } if (!$this->isYUICompressEnabled() || $YUICompressorFailed) { $data = Minify_JSMin::minify($data); } } break; case 'css': if ($this->canMinifyCss()) { if ($this->isYUICompressEnabled()) { try { $data = Minify_YUICompressor::minifyCss($data); $YUICompressorFailed = false; } catch (Exception $e) { Mage::logException($e); $YUICompressorFailed = true; } } if (!$this->isYUICompressEnabled() || $YUICompressorFailed) { $data = Minify_Css_Compressor::process($data); } } break; default: return false; } } return $data; }
public function minify($js) { try { if ($this->conf->outputfilters->javascriptminifyalgorithm == "jsminplus") { $js = JSMinPlus::minify($js); } else { if ($this->conf->outputfilters->javascriptminifyalgorithm == "yuicompressor") { Minify_YUICompressor::$tempDir = PIMCORE_TEMPORARY_DIRECTORY; Minify_YUICompressor::$jarFile = PIMCORE_PATH . "/lib/Minify/yuicompressor-2.4.2.jar"; $js = Minify_YUICompressor::minifyJs($js); } else { $js = JSMin::minify($js); } } } catch (Exception $e) { Logger::error("Unable to minify javascript"); Logger::error($e); } return $js; }
fclose($fp); } echo "Finished building {$OUTPUT_DIR}{$OUTPUT_FILE} (" . filesize($OUTPUT_DIR . $OUTPUT_FILE) . " bytes): Took " . (microtime_float() - $time_start) . "s\n\n"; fclose($fpOut); echo "Building Compressed File: {$OUTPUT_DIR}{$OUTPUT_FILE_COMPRESSED}\n\r"; $time_start = microtime_float(); Minify_YUICompressor::$jarFile = $YUI_COMPRESSOR_JAR; Minify_YUICompressor::$tempDir = $TMP_DIR; Minify_YUICompressor::$javaExecutable = $JDK_HOME . "/bin/java"; $fp = fopen($OUTPUT_DIR . $OUTPUT_FILE, "r"); $uncompressed = ""; while (!feof($fp)) { $uncompressed .= fgets($fp); } fclose($fp); $compressed = Minify_YUICompressor::minifyJs($uncompressed, array()); $fp = fopen($OUTPUT_DIR . $OUTPUT_FILE_COMPRESSED, "w"); fwrite($fp, $compressed); fclose($fp); echo "Finished building {$OUTPUT_DIR}{$OUTPUT_FILE_COMPRESSED} (" . filesize($OUTPUT_DIR . $OUTPUT_FILE_COMPRESSED) . " bytes): Took " . (microtime_float() - $time_start) . "s\n"; echo "\nCopying Resources to {$OUTPUT_DIR}{$OUTPUT_RESOURCES}\n"; if (!is_dir($OUTPUT_DIR . $OUTPUT_RESOURCES)) { mkdir($OUTPUT_DIR . 'resources'); } copydir($RESOURCES_DIR, $OUTPUT_DIR . $OUTPUT_RESOURCES); echo "\nCopying Documentation to {$OUTPUT_DIR}{$OUTPUT_DOCUMENTATION}\n"; if (!is_dir($OUTPUT_DIR . $OUTPUT_DOCUMENTATION)) { mkdir($OUTPUT_DIR . $OUTPUT_DOCUMENTATION); } copydir($DOCUMENTATION_DIR, $OUTPUT_DIR . $OUTPUT_DOCUMENTATION, '*'); echo "\nCopying Libraries to {$OUTPUT_DIR}{$OUTPUT_LIBS}\n";
protected function _yui_compression_js($script) { if ($this->config->item('output.package.enable') == false) { return $script; } $this->load->library('web_apps/Minify_YUICompressor'); $this->load->library('web_apps/phplock.php'); $lock = $this->phplock; $lock->startLock(); //$lock->lock (); $status = $lock->isLock(); $i = 0; while (!$status && $i < 3) { $this->_wait(); $status = $lock->isLock(); $i++; } $pass = false; while ($pass == false) { try { $packed = Minify_YUICompressor::minifyJs($script); $vm_error = 'Error occurred during initialization of VM'; while (substr($packed, 0, strlen($vm_error)) == $vm_error || $packed == '') { $this->_wait(); $packed = Minify_YUICompressor::minifyJs($script); } $pass = true; } catch (Exception $e) { $this->_wait(); } } $lock->unlock(); $lock->endLock(); return $packed; }
protected function buildScript() { $pkgHandle = FRONTEND_DEVELOPER_PACKAGE_HANDLE; Loader::library("3rdparty/jsminify/JSMin", $pkgHandle); Loader::library("3rdparty/jsminify/Minify/YUICompressor", $pkgHandle); Loader::model('file_list'); $fh = Loader::helper('file'); $files = $this->post("module"); $packType = $this->post("packType"); $output = ""; $pl = new MootoolsPluginList(); foreach ($files as $key => $fID) { $file = File::getByID($fID); $output .= file_get_contents($file->getPath()) . "\n"; } switch ($packType) { case MootoolsPluginBuildFormBlockController::PACKTYPE_JSMin_COMPRESSOR: $output = JSMin::minify($output); break; case MootoolsPluginBuildFormBlockController::PACKTYPE_NO_COMPRESSOR: break; case MootoolsPluginBuildFormBlockController::PACKTYPE_YUI_COMPRESSOR: default: $yui = DIR_PACKAGES . '/' . $pkgHandle . '/' . DIRNAME_LIBRARIES . '/' . '3rdparty/yui/yuicompressor-2.4.2.jar'; $tmp = $fh->getTemporaryDirectory() . '/'; Minify_YUICompressor::$jarFile = $yui; Minify_YUICompressor::$tempDir = $tmp; $output = Minify_YUICompressor::minifyJs($output); } $output = $this->header . "\n" . $output; $file = $this->javascript . ".js"; header("Content-disposition: attachment; filename=" . $file); header("Content-type: application/octet-stream; name=" . $file); echo $output; exit; }
/** * Returns compressed content (done with given compression type, see constants) * @param string $content * @param string $method * @return string */ private function compress($content, $method) { switch ($method) { case self::CSS_MINIFY: require_once t3lib_extMgm::extPath('queo_speedup', 'res/Minify_CSS_Compressor.php'); return Minify_CSS_Compressor::process($content); break; case self::CSS_YIU: require_once t3lib_extMgm::extPath('queo_speedup', 'res/YUICompressor.php'); $this->configureYUI($this->conf); return Minify_YUICompressor::minifyCSS($content, array('nomunge' => true, 'line-break' => 1000)); break; case self::JS_YUI: require_once t3lib_extMgm::extPath('queo_speedup', 'res/YUICompressor.php'); $this->configureYUI($this->conf); return Minify_YUICompressor::minifyJs($content, array('line-break' => 1000)); break; case self::JS_MIN: require_once PATH_typo3 . 'contrib/jsmin/jsmin.php'; return JSMin::minify($content); break; case self::JS_MINPLUS: require_once t3lib_extMgm::extPath('queo_speedup', 'res/JSMinPlus.php'); return JSMinPlus::minify($content); break; default: case self::NO_COMPRESSION: //unknown compression type return $content; break; } }