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 | ... | ... |