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 |