Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 20th, 2012  |  syntax: None  |  size: 4.02 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. public function outputHeaderItems() {
  2.  
  3.                 $items = $this->getHeaderItems();
  4.  
  5.                 $outputPost = array();
  6.                 $output = array();
  7.  
  8.                 if (ENABLE_ASSET_COMPRESSION == true) {
  9.                         foreach($items as $item) {
  10.                                 if (is_a($item, 'JavaScriptOutputObject')) {
  11.                                         $output['JAVASCRIPT'][dirname($item->file)][] = $item;
  12.                                 } else if (is_a($item, 'CSSOutputObject')) {
  13.                                         $output['CSS'][dirname($item->file)][] = $item;
  14.                                 } else {
  15.                                         $outputPost[] = $item;
  16.                                 }
  17.                         }
  18.                         $html = Loader::helper("html");
  19.                         Loader::library('3rdparty/jsmin');
  20.                         Loader::library('3rdparty/cssmin');
  21.                         $fileh = Loader::helper('file');
  22.                         foreach($output as $type => $item) {
  23.                                 switch($type) {
  24.                                         case 'JAVASCRIPT':
  25.                                                 $cache = DIR_FILES_CACHE;
  26.                                                 $cache2 = REL_DIR_FILES_CACHE;
  27.                                                 $jquery = false;
  28.                                                 $jqueryui = false;
  29.                                                 $swfobject = false;
  30.                                                 $tinymce = false;
  31.                                                 foreach($item as $file) {
  32.                                                         foreach($file as $i) {
  33.                                                                 if (stripos($i->file,"jquery.js")) {
  34.                                                                         $jquery = true;
  35.                                                                 }
  36.                                                                 if (stripos($i->file,"jquery.ui.js")) {
  37.                                                                         $jqueryui = true;
  38.                                                                 }
  39.                                                                 if (stripos($i->file,"swfobject.js")) {
  40.                                                                         $swfobject = true;
  41.                                                                 }
  42.                                                                 if (stripos($i->file,"tiny_mce.js")) {
  43.                                                                         $tinymce = true;
  44.                                                                 }
  45.                                                         }
  46.                                                 }
  47.                                                 if($jquery) {
  48.                                                         echo $html->javascript('https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
  49.                                                         echo PHP_EOL;
  50.                                                 }
  51.                                                 if($jqueryui) {
  52.                                                         echo $html->javascript('https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js');
  53.                                                         echo PHP_EOL;
  54.                                                 }
  55.                                                 if($swfobject) {
  56.                                                         echo $html->javascript('https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js');
  57.                                                         echo PHP_EOL;
  58.                                                 }
  59.                                                 if($tinymce) {
  60.                                                         echo $html->javascript('tiny_mce/tiny_mce.js');
  61.                                                         echo PHP_EOL;
  62.                                                 }
  63.                                                 foreach($outputPost as $file) {
  64.                                                         if (stripos($file,'i18n_js')) {
  65.                                                                 echo $file;
  66.                                                                 echo PHP_EOL;
  67.                                                         }
  68.                                                 }
  69.                                                 foreach($item as $file) {
  70.                                                         foreach($file as $i) {
  71.                                                                 $url = $cache.'/'.md5(APP_VERSION.PASSWORD_SALT).'-'.basename($i->file);
  72.                                                                 $url2 = $cache2.'/'.md5(APP_VERSION.PASSWORD_SALT).'-'.basename($i->file);
  73.                                                                 if(!is_file($url)) {
  74.                                                                         if (stripos($i->file,"jquery.js")) {
  75.                                                                                 continue;
  76.                                                                         }
  77.                                                                         if (stripos($i->file,"jquery.ui.js")) {
  78.                                                                                 continue;
  79.                                                                         }
  80.                                                                         if (stripos($i->file,"swfobject.js")) {
  81.                                                                                 continue;
  82.                                                                         }
  83.                                                                         if (stripos($i->file,"tiny_mce.js")) {
  84.                                                                                 continue;
  85.                                                                         }
  86.                                                                         $js = $fileh->getContents('.'.$i->file);
  87.                                                                         $jsmin = JSMin::minify($js);
  88.                                                                         file_put_contents($url,$jsmin);
  89.                                                                 }
  90.                                                                 echo $html->javascript($url2);
  91.                                                                 echo PHP_EOL;
  92.                                                         }
  93.                                                 }
  94.                                                 foreach($outputPost as $file) {
  95.                                                         if (stripos($file,'type="text/javascript"')&&!stripos($file,'i18n_js')) {
  96.                                                                 echo $file;
  97.                                                                 echo PHP_EOL;
  98.                                                         }
  99.                                                 }
  100.                                                 break;
  101.                                         case 'CSS':
  102.                                                 $cache = DIR_FILES_CACHE;
  103.                                                 $cache2 = REL_DIR_FILES_CACHE;
  104.  
  105.                                                 foreach($item as $file) {
  106.                                                         foreach($file as $i) {
  107. $css = '';
  108.                                                                 $url = $cache.'/'.md5(APP_VERSION.PASSWORD_SALT).'-'.basename($i->file);
  109.                                                                 $url2 = $cache2.'/'.md5(APP_VERSION.PASSWORD_SALT).'-'.basename($i->file);
  110.                                                                 if(!is_file($url)) {
  111.                                                                         $css .= $fileh->getContents('.'.$i->file);
  112.  
  113.                                                 $css = CssMin::minify($css);
  114.                                                 file_put_contents($url,$css);
  115.                                                                 }
  116.                                                         }
  117.                                                 }
  118.  
  119.                                                 echo $html->css($url2);
  120.                                                 echo PHP_EOL;
  121.                                                 foreach($outputPost as $file) {
  122.                                                         if (stripos($file,'type="text/css"')) {
  123.                                                                 echo $file;
  124.                                                                 echo PHP_EOL;
  125.                                                         }
  126.                                                 }
  127.                                                 break;
  128.                                 }
  129.                         }
  130.                         foreach($outputPost as $file) {
  131.                                 if (!stripos($file,'type="text/css"')&&!stripos($file,'type="text/javascript"')) {
  132.                                         echo $file;
  133.                                 }
  134.                         }
  135.                 } else {
  136.                         foreach($items as $hi) {
  137.                                 print $hi; // caled on two seperate lines because of pre php 5.2 __toString issues
  138.                                 print PHP_EOL;
  139.                         }
  140.                 }
  141.         }