Commit 327a7c19a8837cd4e0c72d5e4bac604ca528771e

Authored by Edmar Moretti
1 parent 395fb368

--no commit message

Showing 1 changed file with 226 additions and 0 deletions   Show diff stats
classesjs/compactajs.php 0 → 100644
... ... @@ -0,0 +1,226 @@
  1 +<?php
  2 +/*
  3 +Title: compactajs.js
  4 +
  5 +Compacta os arquivos js e css utilizados pelo I3Geo.
  6 +
  7 +Deve ser executado sempre que forem feitas alterações nos arquivos javascript existentes em classesjs ou nos arquivos de estilo existentes em css.
  8 +
  9 +About: Licença
  10 +
  11 +I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  12 +
  13 +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
  14 +Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
  15 +
  16 +Este programa é software livre; você pode redistribuí-lo
  17 +e/ou modificá-lo sob os termos da Licença Pública Geral
  18 +GNU conforme publicada pela Free Software Foundation;
  19 +tanto a versão 2 da Licença.
  20 +Este programa é distribuído na expectativa de que seja útil,
  21 +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
  22 +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
  23 +Consulte a Licença Pública Geral do GNU para mais detalhes.
  24 +Você deve ter recebido uma cópia da Licença Pública Geral do
  25 +GNU junto com este programa; se não, escreva para a
  26 +Free Software Foundation, Inc., no endereço
  27 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  28 +
  29 +File: i3geo/classesjs/compactajs.php
  30 +
  31 +19/7/2007
  32 +
  33 +*/
  34 +//
  35 +//compacta os arquivos do richdraw
  36 +//
  37 +packer("../pacotes/richdraw/richdraw.js","../pacotes/richdraw/richdraw_compacto.js","Normal");
  38 +packer("../pacotes/richdraw/svgrenderer.js","../pacotes/richdraw/svgrenderer_compacto.js","Normal");
  39 +packer("../pacotes/richdraw/vmlrenderer.js","../pacotes/richdraw/vmlrenderer_compacto.js","Normal");
  40 +$s = inicia("../pacotes/richdraw/prototype.js");
  41 +$abre = fopen("../pacotes/richdraw/prototype_compacto.js", "wt");
  42 +$escreve = fwrite ($abre,$s);
  43 +$fecha = fclose ($abre);
  44 +$jsfiles = array(
  45 +"../pacotes/richdraw/richdraw_compacto.js",
  46 +"../pacotes/richdraw/svgrenderer_compacto.js",
  47 +"../pacotes/richdraw/vmlrenderer_compacto.js"
  48 +);
  49 +$buffer = "";
  50 +salvatudojs($jsfiles,$buffer,"../pacotes/richdraw/richdraw_tudo_compacto.js","js");
  51 +//
  52 +//compacta os arquivos do i3geo
  53 +//gera um arquivo compactado para cada um
  54 +//
  55 +packer("configura.js","compactados/configura_compacto.js","Normal");
  56 +packer("redesenho.js","compactados/redesenho_compacto.js","Normal");
  57 +packer("iniciamma.js","compactados/iniciamma_compacto.js","Normal");
  58 +packer("ferramentas.js","compactados/ferramentas_compacto.js","Normal");
  59 +packer("funcoes.js","compactados/funcoes_compacto.js","Normal");
  60 +packer("menususpenso.js","compactados/menususpenso_compacto.js","Normal");
  61 +packer("../pacotes/jsobjects/jsUI-Treeview/component_i3geo.js","../pacotes/jsobjects/jsUI-Treeview/component_compacto.js","Normal");
  62 +packer("../pacotes/jsobjects/jsUI-Global/uiCommon.js","../pacotes/jsobjects/jsUI-Global/uiCommon_compacto.js","Normal");
  63 +packer("../pacotes/jsobjects/jsUI-Global/common.js","../pacotes/jsobjects/jsUI-Global/common_compacto.js","Normal");
  64 +packer("../pacotes/yui231/build/yahoo/yahoo-min.js","../pacotes/yui231/build/yahoo/yahoo-min_packer.js","Normal");
  65 +packer("../pacotes/yui231/build/yahoo-dom-event/yahoo-dom-event.js","../pacotes/yui231/build/yahoo-dom-event/yahoo-dom-event_packer.js","None");
  66 +packer("../pacotes/yui231/build/utilities/utilities.js","../pacotes/yui231/build/utilities/utilities_packer.js");
  67 +//
  68 +//gera um único js para a inicialização do I3Geo
  69 +//
  70 +$jsfiles = array(
  71 +"../pacotes/yui231/build/yahoo/yahoo-min_packer.js",
  72 +"../pacotes/yui231/build/yahoo-dom-event/yahoo-dom-event_packer.js",
  73 +"../pacotes/yui231/build/dom/dom-min.js",
  74 +"../pacotes/yui231/build/container/container_core-min.js",
  75 +"../pacotes/yui231/build/menu/menu-min.js",
  76 +"../pacotes/yui231/build/logger/logger-min.js",
  77 +"../pacotes/yui231/build/dragdrop/dragdrop-min.js",
  78 +"../pacotes/yui231/build/slider/slider-min.js",
  79 +"../pacotes/yui231/build/animation/animation-min.js",
  80 +"../pacotes/yui231/build/container/container-min.js",
  81 +"../pacotes/yui231/build/element/element-beta-min.js",
  82 +"../pacotes/yui231/build/tabview/tabview-min.js",
  83 +"../pacotes/yui231/build/utilities/utilities_packer.js",
  84 +"../pacotes/yui231/build/autocomplete/autocomplete-min.js",
  85 +"../pacotes/cpaint/cpaint2.inc.compressed.js",
  86 +"../pacotes/jsobjects/jsUI-Global/common_compacto.js",
  87 +"../pacotes/jsobjects/jsUI-Global/uiCommon_compacto.js",
  88 +"../pacotes/jsobjects/jsUI-Treeview/component_compacto.js",
  89 +"../pacotes/richdraw/richdraw_tudo_compacto.js",
  90 +"compactados/funcoes_compacto.js",
  91 +"compactados/configura_compacto.js",
  92 +"compactados/ferramentas_compacto.js",
  93 +"compactados/redesenho_compacto.js",
  94 +"compactados/iniciamma_compacto.js",
  95 +"compactados/menususpenso_compacto.js"
  96 +);
  97 +$buffer .= "\$i = function(id){return document.getElementById(id);};\n";
  98 +salvatudojs($jsfiles,$buffer,"i3geo_tudo_compacto.js","js");
  99 +//
  100 +//gera um único css
  101 +//
  102 +$cssfiles = array(
  103 +"../css/geral.css",
  104 +"../css/botoes.css",
  105 +"../css/documentation.css",
  106 +"../css/fonts.css",
  107 +"../css/reset.css",
  108 +"../css/grids.css",
  109 +"../css/menu.css",
  110 +"../pacotes/yui231/build/autocomplete/assets/skins/sam/autocomplete.css",
  111 +"../pacotes/yui231/build/container/assets/skins/sam/container.css",
  112 +"../pacotes/yui231/build/tabview/assets/skins/sam/tabview.css",
  113 +"../pacotes/yui231/build/menu/assets/skins/sam/menu-skin.css",
  114 +"../pacotes/jsobjects/jsUI-Treeview/default.css"
  115 +);
  116 +$buffer = "";
  117 +salvatudojs($cssfiles,$buffer,"../css/i3geo.css","css");
  118 +
  119 +//
  120 +//compacta o ferramentas/funcoes.js
  121 +//
  122 +$s = inicia("../ferramentas/funcoes.js");
  123 +$abre = fopen("../ferramentas/funcoes_compacto.js", "wt");
  124 +$escreve = fwrite ($abre,$s);
  125 +$fecha = fclose ($abre);
  126 +$jsfiles = array(
  127 +"../ferramentas/funcoes_compacto.js",
  128 +"../pacotes/yui231/build/yahoo-dom-event/yahoo-dom-event.js",
  129 +"../pacotes/yui231/build/element/element-beta.js",
  130 +"../pacotes/yui231/build/button/button-beta.js",
  131 +"../pacotes/yui231/build/tabview/tabview.js",
  132 +"../pacotes/yui231/build/animation/animation-min.js",
  133 +"../pacotes/yui231/build/autocomplete/autocomplete-min.js",
  134 +"../pacotes/cpaint/cpaint2.inc.compressed.js"
  135 +);
  136 +$buffer = "\$i = function(id){return document.getElementById(id);}\n";
  137 +salvatudojs($jsfiles,$buffer,"../ferramentas/i3geo_tudo_compacto.js","js");
  138 +
  139 +function inicia($arquivo)
  140 +{
  141 + $abre = fopen($arquivo, "r");
  142 + while (!feof($abre))
  143 + {
  144 + $buffer = fgets($abre);
  145 + $maparray[] = $buffer."kkkk";
  146 + }
  147 + fclose($abre);
  148 + $c = compress(implode("",$maparray));
  149 + $c = str_replace("kkkk","\n",$c);
  150 + $c = str_replace("kkk","",$c);
  151 + $c = str_replace(";\n",";",$c);
  152 + $c = str_replace("{\n","{",$c);
  153 + $c = str_replace("\n}","}",$c);
  154 + $c = str_replace(")\n",")",$c);
  155 + $c = str_replace(" \n","",$c);
  156 + $c = str_replace("\n}","}\n",$c);
  157 + return $c;
  158 +}
  159 +function compress($code)
  160 +{ // Remove multiline comment
  161 +$mlcomment = '/\/\*(?!-)[\x00-\xff]*?\*\//';
  162 +$code = preg_replace($mlcomment,"",$code);
  163 +
  164 +// Remove single line comment
  165 +$slcomment = '/[^:]\/\/.*/';
  166 +$code = preg_replace($slcomment,"",$code);
  167 +
  168 +// Remove extra spaces
  169 +$extra_space = '/\s+/';
  170 +$code = preg_replace($extra_space," ",$code);
  171 +
  172 +// Remove spaces that can be removed
  173 +$removable_space = '/\s?([\{\};\=\(\)\\\/\+\*-])\s?/';
  174 +$code = preg_replace('/\s?([\{\};\=\(\)\/\+\*-])\s?/',"\\1",$code);
  175 +return $code;
  176 +}
  177 +function packer($src,$out,$tipo="None")
  178 +{
  179 + //packer
  180 + //$src = 'temp.js';
  181 + //$out = 'i3geo_tudo_compacto.js';
  182 + require_once '../pacotes/packer/class.JavaScriptPacker.php';
  183 + $script = file_get_contents($src);
  184 + $t1 = microtime(true);
  185 + $packer = new JavaScriptPacker($script, $tipo, true, false);
  186 + $packed = $packer->pack();
  187 + $t2 = microtime(true);
  188 + $time = sprintf('%.4f', ($t2 - $t1) );
  189 + echo 'script ', $src, ' packed in ' , $out, ', in ', $time, ' s.', "\n";
  190 + file_put_contents($out, $packed);
  191 + chmod($out,0777);
  192 +}
  193 +function salvatudojs($jsfiles,$buffer,$final,$tipo)
  194 +{
  195 + //junta todos os js em um unico
  196 + foreach ($jsfiles as $f)
  197 + {
  198 + echo $f;
  199 + $abre = fopen($f, "r");
  200 + while (!feof($abre))
  201 + {$buffer .= fgets($abre);}
  202 + fclose($abre);
  203 + $buffer .= "\n";
  204 + }
  205 + $abre = fopen($final, "wt");
  206 + $escreve = fwrite ($abre,$buffer);
  207 + $fecha = fclose ($abre);
  208 + chmod($final,0777);
  209 + //gzip
  210 + $abre = fopen($final, "r");
  211 + if ($tipo == "js")
  212 + $buffer = "<?php if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header(\"Content-type: text/javascript\"); ?>";
  213 + else
  214 + $buffer = "<?php if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header(\"Content-type: text/css\"); ?>";
  215 +
  216 + while (!feof($abre))
  217 + {$buffer .= fgets($abre);}
  218 + fclose($abre);
  219 + $buffer .= "\n";
  220 + $buffer .= "<?php if(extension_loaded('zlib')){ob_end_flush();}?>";
  221 + $abre = fopen($final.".php", "wt");
  222 + $escreve = fwrite ($abre,$buffer);
  223 + $fecha = fclose ($abre);
  224 + chmod($final.".php",0777);
  225 +}
  226 +?>
0 227 \ No newline at end of file
... ...