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 @@ | @@ -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 | \ No newline at end of file | 227 | \ No newline at end of file |