. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ /** * Class Helper * @author Erik Amaru Ortiz. * @package gulliver.system * @access public */ class Helper { public $content; public $gzipEnabled; public $minified; public $gzipModuleEnabled; public $contentType; public function __construct() { $this->content = ''; $this->gzipEnabled = true; $this->minified = true; $this->gzipModuleEnabled = false; $this->contentType = 'text/html'; } public function addFile($file) { if (is_file($file)) { $this->content .= file_get_contents($file); } } public function addContent($content) { $this->content = $content; } public function setContentType($ctype) { $this->contentType = $ctype; } public function init() { header("Content-type: {$this->contentType}"); header('Pragma: cache'); header('Cache-Control: public'); if ($this->gzipEnabled && extension_loaded('zlib')) { $this->gzipModuleEnabled = true; ob_start('ob_gzhandler'); } else { ob_start(); } } public function minify() { if ($this->contentType != 'text/css') { $this->content = JSMin::minify($this->content); } } public function flush() { if ($this->minified) { $this->minify(); } print($this->content); ob_end_flush(); } public function serve($type = null) { if (isset($type)) { $this->setContentType($ctype); } $this->init(); $this->flush(); } } /* function minify($buffer) { return G::removeComments($buffer); } */