Commit 327a7c19a8837cd4e0c72d5e4bac604ca528771e
1 parent
395fb368
Exists in
master
and in
7 other branches
--no commit message
Showing
1 changed file
with
226 additions
and
0 deletions
Show diff stats
| ... | ... | @@ -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 | ... | ... |