- public function outputHeaderItems() {
- $items = $this->getHeaderItems();
- $outputPost = array();
- $output = array();
- if (ENABLE_ASSET_COMPRESSION == true) {
- foreach($items as $item) {
- if (is_a($item, 'JavaScriptOutputObject')) {
- $output['JAVASCRIPT'][dirname($item->file)][] = $item;
- } else if (is_a($item, 'CSSOutputObject')) {
- $output['CSS'][dirname($item->file)][] = $item;
- } else {
- $outputPost[] = $item;
- }
- }
- $html = Loader::helper("html");
- Loader::library('3rdparty/jsmin');
- Loader::library('3rdparty/cssmin');
- $fileh = Loader::helper('file');
- foreach($output as $type => $item) {
- switch($type) {
- case 'JAVASCRIPT':
- $cache = DIR_FILES_CACHE;
- $cache2 = REL_DIR_FILES_CACHE;
- $jquery = false;
- $jqueryui = false;
- $swfobject = false;
- $tinymce = false;
- foreach($item as $file) {
- foreach($file as $i) {
- if (stripos($i->file,"jquery.js")) {
- $jquery = true;
- }
- if (stripos($i->file,"jquery.ui.js")) {
- $jqueryui = true;
- }
- if (stripos($i->file,"swfobject.js")) {
- $swfobject = true;
- }
- if (stripos($i->file,"tiny_mce.js")) {
- $tinymce = true;
- }
- }
- }
- if($jquery) {
- echo $html->javascript('https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
- echo PHP_EOL;
- }
- if($jqueryui) {
- echo $html->javascript('https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js');
- echo PHP_EOL;
- }
- if($swfobject) {
- echo $html->javascript('https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js');
- echo PHP_EOL;
- }
- if($tinymce) {
- echo $html->javascript('tiny_mce/tiny_mce.js');
- echo PHP_EOL;
- }
- foreach($outputPost as $file) {
- if (stripos($file,'i18n_js')) {
- echo $file;
- echo PHP_EOL;
- }
- }
- foreach($item as $file) {
- foreach($file as $i) {
- $url = $cache.'/'.md5(APP_VERSION.PASSWORD_SALT).'-'.basename($i->file);
- $url2 = $cache2.'/'.md5(APP_VERSION.PASSWORD_SALT).'-'.basename($i->file);
- if(!is_file($url)) {
- if (stripos($i->file,"jquery.js")) {
- continue;
- }
- if (stripos($i->file,"jquery.ui.js")) {
- continue;
- }
- if (stripos($i->file,"swfobject.js")) {
- continue;
- }
- if (stripos($i->file,"tiny_mce.js")) {
- continue;
- }
- $js = $fileh->getContents('.'.$i->file);
- $jsmin = JSMin::minify($js);
- file_put_contents($url,$jsmin);
- }
- echo $html->javascript($url2);
- echo PHP_EOL;
- }
- }
- foreach($outputPost as $file) {
- if (stripos($file,'type="text/javascript"')&&!stripos($file,'i18n_js')) {
- echo $file;
- echo PHP_EOL;
- }
- }
- break;
- case 'CSS':
- $cache = DIR_FILES_CACHE;
- $cache2 = REL_DIR_FILES_CACHE;
- foreach($item as $file) {
- foreach($file as $i) {
- $css = '';
- $url = $cache.'/'.md5(APP_VERSION.PASSWORD_SALT).'-'.basename($i->file);
- $url2 = $cache2.'/'.md5(APP_VERSION.PASSWORD_SALT).'-'.basename($i->file);
- if(!is_file($url)) {
- $css .= $fileh->getContents('.'.$i->file);
- $css = CssMin::minify($css);
- file_put_contents($url,$css);
- }
- }
- }
- echo $html->css($url2);
- echo PHP_EOL;
- foreach($outputPost as $file) {
- if (stripos($file,'type="text/css"')) {
- echo $file;
- echo PHP_EOL;
- }
- }
- break;
- }
- }
- foreach($outputPost as $file) {
- if (!stripos($file,'type="text/css"')&&!stripos($file,'type="text/javascript"')) {
- echo $file;
- }
- }
- } else {
- foreach($items as $hi) {
- print $hi; // caled on two seperate lines because of pre php 5.2 __toString issues
- print PHP_EOL;
- }
- }
- }