Commit 24e503bfb85ba1f1c33518caac073661c7a1bd2c

Authored by Edmar Moretti
1 parent b21964fa

Remoção do programa admin/php/conexao.php

Showing 62 changed files with 127 additions and 1385 deletions   Show diff stats
admin/php/conexao.php
@@ -1,107 +0,0 @@ @@ -1,107 +0,0 @@
1 -<?php  
2 -/*  
3 -Title: conexao.php  
4 -  
5 -Define a conex&atilde;o com o banco de dados que cont&eacute;m as tabelas do sistema de administra&ccedil;&atilde;o do i3geo.  
6 -  
7 -Verifique se sua instala&ccedil;&atilde;o do PHP suporta o uso da biblioteca PDO com sqlite  
8 -  
9 -Por padr&atilde;o, a conex&atilde;o &eacute; feita com o banco de dados SQLITE i3geo/admin/admin.db mas vc pode usar outro banco de dados  
10 -  
11 -Voc&ecirc; pode alterar a conex&atilde;o PDO modificando a vari&aacute;vel de configuara&ccedil;&atilde;o $conexaoadmin no i3geo/ms_configura.php  
12 -  
13 -O programa define duas vari&aacute;veis que s&atilde;o usadas no acesso ao banco  
14 -  
15 -dbhw - objeto PDO com a conex&atilde;o para leitura e escrita  
16 -  
17 -dbh - objeto PDO com a conex&atilde;o para leitura  
18 -  
19 -Licen&ccedil;a:  
20 -  
21 -GPL2  
22 -  
23 -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet  
24 -  
25 -Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil  
26 -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com  
27 -  
28 -Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo  
29 -e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral  
30 -GNU conforme publicada pela Free Software Foundation;  
31 -  
32 -Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,  
33 -por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita  
34 -de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.  
35 -Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.  
36 -Voc&ecirc; deve ter recebido uma c�pia da Licen&ccedil;a P&uacute;blica Geral do  
37 - GNU junto com este programa; se n&atilde;o, escreva para a  
38 -Free Software Foundation, Inc., no endere&ccedil;o  
39 -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.  
40 -  
41 -Arquivo: i3geo/admin/php/conexao.php  
42 -  
43 -*/  
44 -if(isset($locaplic) && $locaplic != ""){  
45 - include($locaplic."/ms_configura.php");  
46 -}  
47 -else{  
48 - include(dirname(__FILE__)."/../../ms_configura.php");  
49 -}  
50 -if(!isset($conexaoadmin)){  
51 - $conexaoadmin = "";  
52 -}  
53 -if(!isset($esquemaadmin)){  
54 - $esquemaadmin = "";  
55 -}  
56 -if($esquemaadmin != ""){  
57 - $esquemaadmin = str_replace(".","",$esquemaadmin).".";  
58 -}  
59 -if(!isset($logTransacoes)){  
60 - $logTransacoes = false;  
61 -}  
62 -//  
63 -//indica se deve ser feita a convers&atilde;o para UTF8 ao gravar os dados  
64 -//  
65 -$convUTF = true;  
66 -if($conexaoadmin == ""){  
67 - $arquivosqlite = $locaplic."/admin/admin.db";  
68 - //chmod($arquivosqlite,0774);  
69 - //echo $arquivosqlite;exit;  
70 - if(!file_exists($arquivosqlite)){  
71 - echo "O arquivo admin.db n&atilde;o existe. Utilize i3geo/admin/criabanco.php para criar o banco de dados SQLITE.";  
72 - exit;  
73 - }  
74 - $conAdmin = "sqlite:$arquivosqlite";  
75 - $conAdminw = "sqlite:$arquivosqlite";  
76 - if(!extension_loaded("PDO")){  
77 - echo "<span style=color:red >A extensao do PHP 'PDO' nao esta instalada.";  
78 - exit;  
79 - }  
80 - if (!extension_loaded( "pdo_sqlite")){  
81 - echo "<span style=color:red >Problema: n&atilde;o est&aacute; instalado a pdo_sqlite<br></span>";  
82 - exit;  
83 - }  
84 - if (!extension_loaded( "SQLite") && !extension_loaded( "sqlite3")){  
85 - echo "<span style=color:red >Problema: n&atilde;o est&aacute; instalado a SQLite<br></span>";  
86 - exit;  
87 - }  
88 - try {  
89 - //para escrita  
90 - $dbhw = new PDO($conAdminw);  
91 - //para leitura  
92 - $dbh = new PDO($conAdmin);  
93 - }  
94 - catch (PDOException $e) {  
95 - print "Erro ao criar o objeto PDO!: <br/> Talvez exista alguma incompatibilidade entre o PHP e o banco admin.db. Vc pode apagar o arquivo menutemas/admin.db e recria-lo com admin/php/criasqlite.php";  
96 - die();  
97 - }  
98 -}  
99 -else {  
100 - if(file_exists($conexaoadmin)){  
101 - include($conexaoadmin);  
102 - } else {  
103 - echo "Arquivo de conexao nao existe";  
104 - exit;  
105 - }  
106 -}  
107 -?>  
admin/php/xxxclasse_arvore.php
@@ -1,1268 +0,0 @@ @@ -1,1268 +0,0 @@
1 -<?php  
2 -/*  
3 -Title: classe_arvore.php  
4 -  
5 -Fun&ccedil;&otilde;es para montagem da &aacute;rvore de temas  
6 -  
7 -Licenca:  
8 -  
9 -GPL2  
10 -  
11 -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet  
12 -  
13 -Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil  
14 -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com  
15 -  
16 -Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo  
17 -e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral  
18 -GNU conforme publicada pela Free Software Foundation;  
19 -  
20 -Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,  
21 -por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita  
22 -de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.  
23 -Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.  
24 -Voc&ecirc; deve ter recebido uma c�pia da Licen&ccedil;a P&uacute;blica Geral do  
25 - GNU junto com este programa; se n&atilde;o, escreva para a  
26 -Free Software Foundation, Inc., no endere&ccedil;o  
27 -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.  
28 -  
29 -Arquivo:  
30 -  
31 -i3geo/classesphp/classe_arvore.php  
32 -*/  
33 -/*  
34 -Classe: Arvore  
35 -  
36 -Classe utilizada para compor a &aacute;rvore de temas ou obter dados espec&iacute;ficos da &aacute;rvore.  
37 -  
38 -&Eacute; utilizada por v&aacute;rias opera&ccedil;&otilde;es do i3Geo, principalmente pela <classe_menutemas>  
39 -*/  
40 -class Arvore  
41 -{  
42 - //temas com acesso restrito e que nao podem ser acessados pelo usuario que esta logado  
43 - public $temassindevidos;  
44 - protected $locaplic;  
45 - //subgrupos que tem pelo menos um tema  
46 - //public $sql_subgrupos = "select i3geoadmin_subgrupos.nome_subgrupo,i3geoadmin_n2.id_n2,i3geoadmin_n2.publicado,i3geoadmin_n2.n2_perfil from i3geoadmin_n2 LEFT JOIN i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo ";  
47 - //grupos que tem pelo menos um sub-grupo  
48 - //public $sql_grupos = "select i3geoadmin_grupos.nome_grupo,id_n1,id_menu,i3geoadmin_n1.publicado,n1_perfil from i3geoadmin_n1 LEFT JOIN i3geoadmin_grupos ON i3geoadmin_n1.id_grupo = i3geoadmin_grupos.id_grupo ";  
49 - //nomes de todos os grupos  
50 - public $sql_todosgrupos = "select * from i3geoadmin_grupos ";  
51 - //tipo de filtro  
52 - //ogc|download|""  
53 - public $filtro;  
54 - //temas na raiz  
55 - //public $sql_temasraiz = "select id_raiz,i3geoadmin_raiz.id_tema,nome_tema,tipoa_tema FROM i3geoadmin_raiz LEFT JOIN i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema ";  
56 - //todos os temas  
57 - //public $sql_temas = "select * from i3geoadmin_temas ";  
58 - //temas de um subgrupo  
59 - //public $sql_temasSubgrupo = "select i3geoadmin_temas.tipoa_tema, i3geoadmin_temas.codigo_tema,i3geoadmin_temas.tags_tema,i3geoadmin_n3.id_n3,i3geoadmin_temas.nome_tema,i3geoadmin_n3.publicado,i3geoadmin_n3.n3_perfil,i3geoadmin_n3.id_tema,i3geoadmin_temas.download_tema,i3geoadmin_temas.ogc_tema from i3geoadmin_n3 LEFT JOIN i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema ";  
60 - /*  
61 - Function: __construct  
62 -  
63 - Cria um objeto Arvore  
64 -  
65 - Parametros:  
66 -  
67 - locaplic {string} - localiza&ccedil;&atilde;o do i3geo no sistema de arquivos  
68 -  
69 - idioma {string} - default = "pt"  
70 - */  
71 - function __construct($locaplic,$idioma="pt",$filtro="")  
72 - {  
73 - $this->locaplic = $locaplic;  
74 - $this->filtro = $filtro;  
75 - $dbh = "";  
76 - //error_reporting(0);  
77 -  
78 - include($locaplic."/classesphp/conexao.php");  
79 -  
80 - $this->esquemaadmin = $esquemaadmin;  
81 - $this->convUTF = $convUTF;  
82 - $this->dbh = $dbh;  
83 -  
84 - $this->idioma = $idioma;  
85 - if($idioma == "pt"){  
86 - $coluna = "nome_grupo";  
87 - }  
88 - else{  
89 - $coluna = $idioma;  
90 - }  
91 - $this->sql_grupos = "select CASE i3geoadmin_grupos.$coluna WHEN '' THEN nome_grupo ELSE i3geoadmin_grupos.$coluna END as nome_grupo,i3geoadmin_grupos.id_grupo, id_n1,id_menu,i3geoadmin_n1.publicado,n1_perfil,ordem from ".$this->esquemaadmin."i3geoadmin_n1 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_grupos ON i3geoadmin_n1.id_grupo = i3geoadmin_grupos.id_grupo ";  
92 - if($filtro === "ogc" || $filtro === "download"){  
93 - //esse sql retorna tambem os grupos dos temas que estao na raiz do grupo  
94 - $this->sql_grupos = "select DISTINCT * from (select CASE grupos.$coluna WHEN '' THEN nome_grupo ELSE grupos.$coluna END as nome_grupo,gr.id_n1,gr.id_menu,gr.publicado,gr.n1_perfil, 0 as ordem from ".$this->esquemaadmin."i3geoadmin_grupos as grupos, ".$this->esquemaadmin."i3geoadmin_n1 as gr, ".$this->esquemaadmin."i3geoadmin_n2 as sg, ".$this->esquemaadmin."i3geoadmin_n3 as t, ".$this->esquemaadmin."i3geoadmin_temas as temas where gr.id_grupo = grupos.id_grupo AND sg.id_n1 = gr.id_n1 AND t.id_n2 = sg.id_n2 AND t.id_tema = temas.id_tema AND (temas.ogc_tema NOT IN ('NAO','nao') OR temas.download_tema NOT IN ('NAO','nao') ) UNION select c.nome_grupo as nome_grupo,a.id_nivel as id_n1,a.id_menu,'SIM' as publicado,a.perfil as n1_perfil, 0 as ordem from ".$this->esquemaadmin."i3geoadmin_raiz as a, ".$this->esquemaadmin."i3geoadmin_temas as b, ".$this->esquemaadmin."i3geoadmin_grupos as c, ".$this->esquemaadmin."i3geoadmin_n1 as d where nivel = 1 AND a.id_tema = b.id_tema AND a.id_nivel = d.id_n1 AND d.id_grupo = c.id_grupo) as s ";  
95 - }  
96 -  
97 - if($idioma == "pt"){  
98 - $coluna = "nome_subgrupo";  
99 - }  
100 - else{  
101 - $coluna = $idioma;  
102 - }  
103 - $this->sql_subgrupos = "select CASE i3geoadmin_subgrupos.$coluna WHEN '' THEN nome_subgrupo ELSE i3geoadmin_subgrupos.$coluna END as nome_subgrupo,i3geoadmin_subgrupos.id_subgrupo,i3geoadmin_n2.id_n2,i3geoadmin_n2.publicado,i3geoadmin_n2.n2_perfil from ".$this->esquemaadmin."i3geoadmin_n2 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo ";  
104 -  
105 - if($idioma == "pt"){  
106 - $coluna = "nome_tema";  
107 - }  
108 - else{  
109 - $coluna = $idioma;  
110 - }  
111 -  
112 - $this->sql_temasraiz = "select id_nivel,ordem,codigo_tema,id_raiz,i3geoadmin_raiz.id_tema,CASE $coluna WHEN '' THEN nome_tema ELSE $coluna END as nome_tema,tipoa_tema,perfil, ogc_tema, download_tema, link_tema FROM ".$this->esquemaadmin."i3geoadmin_raiz LEFT JOIN ".$this->esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema ";  
113 - $this->sql_temasSubgrupo = "select i3geoadmin_temas.tipoa_tema, i3geoadmin_temas.codigo_tema,i3geoadmin_temas.tags_tema,i3geoadmin_n3.id_n3,CASE i3geoadmin_temas.$coluna WHEN '' THEN nome_tema ELSE i3geoadmin_temas.$coluna END as nome_tema,i3geoadmin_n3.publicado,i3geoadmin_n3.n3_perfil,i3geoadmin_n3.id_tema,i3geoadmin_temas.download_tema,i3geoadmin_temas.ogc_tema from ".$this->esquemaadmin."i3geoadmin_n3 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema ";  
114 -  
115 - //$this->sql_temas = "select kmz_tema,nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,$coluna as nome_tema,codigo_tema from i3geoadmin_temas ";  
116 -  
117 - $this->sql_temas = "select kmz_tema,b.soma as nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,CASE $coluna WHEN '' THEN nome_tema ELSE $coluna END as nome_tema,codigo_tema from ".$this->esquemaadmin."i3geoadmin_temas as a,(SELECT c.codigo_tema codigo_soma,sum( r.nacessos) as soma FROM ".$this->esquemaadmin."i3geoadmin_temas c LEFT JOIN ".$this->esquemaadmin."i3geoadmin_acessostema r ON (c.codigo_tema = r.codigo_tema) group by c.codigo_tema) as b WHERE a.codigo_tema = b.codigo_soma ";  
118 - $this->sql_temas_combo = "select id_tema,CASE $coluna WHEN '' THEN nome_tema ELSE $coluna END as nome_tema,codigo_tema from ".$this->esquemaadmin."i3geoadmin_temas as a,(SELECT c.codigo_tema codigo_soma,sum( r.nacessos) as soma FROM ".$this->esquemaadmin."i3geoadmin_temas c LEFT JOIN ".$this->esquemaadmin."i3geoadmin_acessostema r ON (c.codigo_tema = r.codigo_tema) group by c.codigo_tema) as b WHERE a.codigo_tema = b.codigo_soma ";  
119 - //  
120 - //verifica se o ip atual est&aacute; cadastrado como um dos editores  
121 - //editores podem ver as coisas marcadas como n&atilde;o publicado  
122 - //no sistema de administra&ccedil;&atilde;o  
123 - //  
124 - $this->editor = false;  
125 - $this->editor = $this->verificaOperacaoSessao("admin/php/classe_arvore/editor");  
126 - $this->pubsql = " (publicado != 'NAO' or publicado is null) and ";  
127 - if($this->editor){  
128 - $this->pubsql = "";  
129 - }  
130 - if(!function_exists("listaTemasIndevidos")){  
131 - include_once(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php");  
132 - }  
133 - $this->temasindevidos = listaTemasIndevidos();  
134 - }  
135 - function __destruct()  
136 - {  
137 - $this->dbh = null;  
138 - $this->dbhw = null;  
139 - }  
140 - /*  
141 - Function: validaTemas  
142 -  
143 - Remove de um array os temas que nao sao permitidos ao usuario atualmente logado  
144 - */  
145 - function validaTemas($linhas,$id){  
146 - $res = array();  
147 - foreach($linhas as $l){  
148 - if(!in_array($l[$id],$this->temasindevidos)){  
149 - array_push($res,$l);  
150 - }  
151 - }  
152 - return $res;  
153 - }  
154 - /*  
155 - Function: pegaListaDeMenus  
156 -  
157 - Retorna a lista de menus  
158 -  
159 - Parametros:  
160 -  
161 - perfil {string} - considera apenas esse perfil  
162 -  
163 - Return:  
164 -  
165 - {array}  
166 - */  
167 - function pegaListaDeMenus($perfil="",$filtraOgc="nao",$filtraDown="nao")  
168 - {  
169 - if($this->idioma == "pt"){  
170 - $coluna = "nome_menu";  
171 - }  
172 - else{  
173 - $coluna = $this->idioma;  
174 - }  
175 - if($this->editor == true)  
176 - {  
177 - $perfil = "";  
178 - $sql = "SELECT publicado_menu,'' as perfil_menu,aberto,desc_menu,id_menu,CASE $coluna WHEN '' THEN nome_menu ELSE $coluna END as nome_menu from ".$this->esquemaadmin."i3geoadmin_menus order by nome_menu";  
179 - }  
180 - else{  
181 - $sql = "SELECT publicado_menu,perfil_menu,aberto,desc_menu,id_menu,CASE $coluna WHEN '' THEN nome_menu ELSE $coluna END as nome_menu from ".$this->esquemaadmin."i3geoadmin_menus where publicado_menu != 'NAO' or publicado_menu is null order by nome_menu";  
182 - }  
183 - $regs = $this->execSQL($sql);  
184 - $resultado = array();  
185 - foreach($regs as $reg){  
186 - $a = $reg["perfil_menu"];  
187 - $a = str_replace(" ",",",$a);  
188 - if ($this->verificaOcorrencia($perfil,explode(",",$a)))  
189 - {  
190 - $status = "fechado";  
191 - if(strtolower($reg["aberto"]) == "sim")  
192 - $status = "aberto";  
193 - $url = "";  
194 - $resultado[] = array("desc"=>$this->converte($reg["desc_menu"]),"publicado"=>$reg["publicado_menu"],"nomemenu"=>$this->converte($reg["nome_menu"]),"idmenu"=>$reg["id_menu"],"arquivo"=>"","status"=>$status,"url"=>$url);  
195 - }  
196 - }  
197 - return $resultado;  
198 - }  
199 - /*  
200 - Function: pegaListaDeTiposGrupos  
201 -  
202 - Retorna a lista de grupos de um menu  
203 -  
204 - Parametros:  
205 -  
206 - id_menu {string}  
207 -  
208 - Return:  
209 -  
210 - {array}  
211 - */  
212 - function pegaListaDeTiposGrupos(){  
213 - if($this->idioma == "pt"){  
214 - $coluna = "nome_grupo";  
215 - }  
216 - else{  
217 - $coluna = $this->idioma;  
218 - }  
219 - $sql = "select CASE i3geoadmin_grupos.$coluna WHEN '' THEN nome_grupo ELSE i3geoadmin_grupos.$coluna END as nome_grupo, id_grupo from ".$this->esquemaadmin."i3geoadmin_grupos ORDER by nome_grupo ";  
220 - $grupos = $this->execSQL($sql);  
221 - return $grupos;  
222 - }  
223 - /*  
224 - Function: pegaListaDeTiposSubGrupos  
225 -  
226 - Retorna a lista de grupos de um menu  
227 -  
228 - Parametros:  
229 -  
230 - id_menu {string}  
231 -  
232 - Return:  
233 -  
234 - {array}  
235 - */  
236 - function pegaListaDeTiposSubGrupos(){  
237 - if($this->idioma == "pt"){  
238 - $coluna = "nome_subgrupo";  
239 - }  
240 - else{  
241 - $coluna = $this->idioma;  
242 - }  
243 - $sql = "select CASE i3geoadmin_subgrupos.$coluna WHEN '' THEN nome_subgrupo ELSE i3geoadmin_subgrupos.$coluna END as nome_subgrupo, id_subgrupo from ".$this->esquemaadmin."i3geoadmin_subgrupos ORDER by nome_subgrupo ";  
244 - $subgrupos = $this->execSQL($sql);  
245 - return $subgrupos;  
246 - }  
247 - /*  
248 - Function: procuraTemas  
249 -  
250 - Localiza temas conforme uma palavra de busca  
251 -  
252 - Parametros:  
253 -  
254 - procurar {string} - palavra de busca  
255 -  
256 - perfil {string} - considera apenas esse perfil  
257 -  
258 - Return:  
259 -  
260 - {array}  
261 - */  
262 - function procuraTemas ($procurar,$perfil)  
263 - {  
264 - if($procurar != "")  
265 - {  
266 - $procurar = $this->removeAcentos($procurar);  
267 - }  
268 - $menus = $this->pegaListaDeMenus($perfil);  
269 - $resultado = array();  
270 - $subgrupo = array();  
271 - $final = array();  
272 - foreach($menus as $menu)  
273 - {  
274 - $grupos = $this->pegaGruposMenu($menu["idmenu"]);  
275 - foreach($grupos["grupos"] as $grupo)  
276 - {  
277 - $a = $grupo["n1_perfil"];  
278 - $a = str_replace(" ",",",$a);  
279 - if($this->verificaOcorrencia($perfil,explode(",",$a)))  
280 - {  
281 - $sgrupos = $this->pegaSubgruposGrupo($menu["idmenu"],$grupo["id_n1"]);  
282 - $temasRaizGrupo = array();  
283 - $temasR = $this->pegaTemasRaizGrupo($menu["idmenu"],$grupo["id_n1"]);  
284 - foreach($temasR as $tema)  
285 - {  
286 - $a = $tema["perfil"];  
287 - $a = str_replace(" ",",",$a);  
288 - if($this->verificaOcorrencia($perfil,explode(",",$a)))  
289 - {  
290 - $t = $this->pegaTema($tema["id_tema"]);  
291 - $t = $t[0];  
292 - $nome = $this->removeAcentos($tema["nome_tema"]);  
293 - $tags = $this->removeAcentos($tema["tags_tema"]);  
294 - $tags1 = $this->removeAcentos(mb_convert_encoding($tema["tags_tema"],"ISO-8859-1","UTF-8"));  
295 - $nome1 = $this->removeAcentos(mb_convert_encoding($tema["nome_tema"],"ISO-8859-1","UTF-8"));  
296 - $miniatura = "nao";  
297 - if(file_exists($this->locaplic."/temas/miniaturas/".$t["codigo_tema"].".map.mini.png"))  
298 - {  
299 - $miniatura = "sim";  
300 - }  
301 - $down = "sim";  
302 - if (strtolower($t["download_tema"]) == "nao")  
303 - {  
304 - $down = "nao";  
305 - }  
306 - $texto = array("codigo_tema"=>$t["codigo_tema"],"miniatura"=>$miniatura,"tid"=>$t["codigo_tema"],"nome"=>$this->converte($tema["nome_tema"]),"link"=>$t["link_tema"],"download"=>$down);  
307 - if($procurar == "")  
308 - {  
309 - $temasRaizGrupo[] = $texto;  
310 - }  
311 - else  
312 - {  
313 - if (stristr($nome,$procurar) || stristr($nome1,$procurar))  
314 - {  
315 - $temasRaizGrupo[] = $texto;  
316 - }  
317 - else  
318 - {  
319 - if (stristr($tags,$procurar) || stristr($tags1,$procurar))  
320 - {  
321 - $temasRaizGrupo[] = $texto;  
322 - }  
323 - }  
324 - }  
325 - }  
326 - }  
327 - foreach($sgrupos["subgrupos"] as $sgrupo)  
328 - {  
329 - $a = $sgrupo["n2_perfil"];  
330 - $a = str_replace(" ",",",$a);  
331 - if($this->verificaOcorrencia($perfil,explode(",",$a)))  
332 - {  
333 - $temas = $this->pegaTemasSubGrupo($sgrupo["id_n2"]);  
334 - foreach ($temas as $tema)  
335 - {  
336 - $a = $tema["n3_perfil"];  
337 - $a = str_replace(" ",",",$a);  
338 - if($this->verificaOcorrencia($perfil,explode(",",$a)))  
339 - {  
340 - $t = $this->pegaTema($tema["id_tema"]);  
341 - $t = $t[0];  
342 - $nome = $this->removeAcentos($tema["nome_tema"]);  
343 - $tags = $this->removeAcentos($tema["tags_tema"]);  
344 - $tags1 = $this->removeAcentos(mb_convert_encoding($tema["tags_tema"],"ISO-8859-1","UTF-8"));  
345 - $nome1 = $this->removeAcentos(mb_convert_encoding($tema["nome_tema"],"ISO-8859-1","UTF-8"));  
346 - $miniatura = "nao";  
347 - if(file_exists($this->locaplic."/temas/miniaturas/".$tema["codigo_tema"].".map.mini.png"))  
348 - {  
349 - $miniatura = "sim";  
350 - }  
351 - $down = "sim";  
352 - if (strtolower($t["download_tema"]) == "nao")  
353 - {  
354 - $down = "nao";  
355 - }  
356 - $texto = array("codigo_tema"=>$tema["codigo_tema"],"miniatura"=>$miniatura,"tid"=>$tema["codigo_tema"],"nome"=>$this->converte($tema["nome_tema"]),"link"=>$t["link_tema"],"download"=>$down);  
357 - if($procurar == "")  
358 - {  
359 - $resultado[] = $texto;  
360 - }  
361 - else  
362 - {  
363 - if (stristr($nome,$procurar) || stristr($nome1,$procurar))  
364 - {  
365 - $resultado[] = $texto;  
366 - }  
367 - else  
368 - {  
369 - if (stristr($tags,$procurar) || stristr($tags1,$procurar))  
370 - {  
371 - $resultado[] = $texto;  
372 - }  
373 - }  
374 - }  
375 - }  
376 - }  
377 - }  
378 - if (count($resultado) > 0)  
379 - {  
380 - $subgrupo[] = array("subgrupo"=>$this->converte($sgrupo["nome_subgrupo"]),"temas"=>$resultado);  
381 - }  
382 - $resultado = array();  
383 - }  
384 - }  
385 - if (count($subgrupo) > 0 || count($temasRaizGrupo) > 0)  
386 - {  
387 - $final[] = array("grupo"=>$this->converte($grupo["nome_grupo"]),"temas"=>$temasRaizGrupo,"subgrupos"=>$subgrupo);  
388 - }  
389 - $subgrupo = array();  
390 - }  
391 - }  
392 - return $final;  
393 - }  
394 - /*  
395 - Function: procuraTemasEstrela  
396 -  
397 - Localiza temas que t&ecirc;m um determinado n&uacute;mero (n&iacute;vel) de estrelas  
398 -  
399 - Parametros:  
400 -  
401 - nivel {numeric} - n&uacute;mero de estrelas  
402 -  
403 - perfil {string} - considera apenas esse perfil  
404 -  
405 - Return:  
406 -  
407 - {array}  
408 - */  
409 - function procuraTemasEstrela($nivel,$fatorestrela,$perfil)  
410 - {  
411 - $menus = $this->pegaListaDeMenus($perfil);  
412 -  
413 - $resultado = array();  
414 - $subgrupo = array();  
415 - $final = array();  
416 - foreach($menus as $menu)  
417 - {  
418 - $grupos = $this->pegaGruposMenu($menu["idmenu"]);  
419 - foreach($grupos["grupos"] as $grupo)  
420 - {  
421 - $a = $grupo["n1_perfil"];  
422 - $a = str_replace(" ",",",$a);  
423 - if($this->verificaOcorrencia($perfil,explode(",",$a)))  
424 - {  
425 - $sgrupos = $this->pegaSubgruposGrupo($menu["idmenu"],$grupo["id_n1"]);  
426 - $temasRaizGrupo = array();  
427 - $temasR = $this->pegaTemasRaizGrupo($menu["idmenu"],$grupo["id_n1"]);  
428 - foreach($temasR as $tema)  
429 - {  
430 - $a = $tema["perfil"];  
431 - $a = str_replace(" ",",",$a);  
432 - if($this->verificaOcorrencia($perfil,explode(",",$a)))  
433 - {  
434 - $t = $this->pegaTema($tema["id_tema"]);  
435 - $t = $t[0];  
436 - $nome = $this->removeAcentos($tema["nome_tema"]);  
437 - $tags = $this->removeAcentos($tema["tags_tema"]);  
438 - $tags1 = $this->removeAcentos(mb_convert_encoding($tema["tags_tema"],"ISO-8859-1","UTF-8"));  
439 - $nome1 = $this->removeAcentos(mb_convert_encoding($tema["nome_tema"],"ISO-8859-1","UTF-8"));  
440 - $miniatura = "nao";  
441 - if(file_exists($this->locaplic."/temas/miniaturas/".$t["codigo_tema"].".map.mini.png"))  
442 - {  
443 - $miniatura = "sim";  
444 - }  
445 - $down = "sim";  
446 - if (strtolower($t["download_tema"]) == "nao")  
447 - {  
448 - $down = "nao";  
449 - }  
450 - $texto = array("codigo_tema"=>$t["codigo_tema"],"miniatura"=>$miniatura,"tid"=>$t["codigo_tema"],"nome"=>$this->converte($tema["nome_tema"]),"link"=>$t["link_tema"],"download"=>$down);  
451 - $n = intval($t["nacessos"] / $fatorestrela);  
452 - if($n >= 5){  
453 - $n = 5;  
454 - }  
455 -  
456 - if ($n == $nivel)  
457 - {  
458 - $temasRaizGrupo[] = $texto;  
459 - }  
460 - }  
461 - }  
462 - foreach($sgrupos["subgrupos"] as $sgrupo)  
463 - {  
464 - $a = $sgrupo["n2_perfil"];  
465 - $a = str_replace(" ",",",$a);  
466 - if($this->verificaOcorrencia($perfil,explode(",",$a)))  
467 - {  
468 - $temas = $this->pegaTemasSubGrupo($sgrupo["id_n2"]);  
469 - foreach ($temas as $tema)  
470 - {  
471 - $a = $tema["n3_perfil"];  
472 - $a = str_replace(" ",",",$a);  
473 - if($this->verificaOcorrencia($perfil,explode(",",$a)))  
474 - {  
475 - $t = $this->pegaTema($tema["id_tema"]);  
476 - $t = $t[0];  
477 - $nome = $this->removeAcentos($tema["nome_tema"]);  
478 - $tags = $this->removeAcentos($tema["tags_tema"]);  
479 - $tags1 = $this->removeAcentos(mb_convert_encoding($tema["tags_tema"],"ISO-8859-1","UTF-8"));  
480 - $nome1 = $this->removeAcentos(mb_convert_encoding($tema["nome_tema"],"ISO-8859-1","UTF-8"));  
481 - $miniatura = "nao";  
482 - if(file_exists($this->locaplic."/temas/miniaturas/".$tema["codigo_tema"].".map.mini.png"))  
483 - {  
484 - $miniatura = "sim";  
485 - }  
486 - $down = "sim";  
487 - if (strtolower($t["download_tema"]) == "nao")  
488 - {  
489 - $down = "nao";  
490 - }  
491 - $texto = array("codigo_tema"=>$tema["codigo_tema"],"miniatura"=>$miniatura,"tid"=>$tema["codigo_tema"],"nome"=>$this->converte($tema["nome_tema"]),"link"=>$t["link_tema"],"download"=>$down);  
492 - $n = abs($t["nacessos"] / $fatorestrela);  
493 - if($n >= 5){  
494 - $n = 5;  
495 - }  
496 - if ($n == $nivel)  
497 - {  
498 - $resultado[] = $texto;  
499 - }  
500 - }  
501 - }  
502 - }  
503 - if (count($resultado) > 0)  
504 - {  
505 - $subgrupo[] = array("subgrupo"=>$this->converte($sgrupo["nome_subgrupo"]),"temas"=>$resultado);  
506 - }  
507 - $resultado = array();  
508 - }  
509 - }  
510 - if (count($subgrupo) > 0 || count($temasRaizGrupo) > 0)  
511 - {  
512 - $final[] = array("grupo"=>$this->converte($grupo["nome_grupo"]),"temas"=>$temasRaizGrupo,"subgrupos"=>$subgrupo);  
513 - }  
514 - $subgrupo = array();  
515 - }  
516 - }  
517 - return $final;  
518 - }  
519 - /*  
520 - Function: pegaGruposMenu  
521 -  
522 - Retorna a lista de grupos de um menu  
523 -  
524 - Parametros:  
525 -  
526 - id_menu {string}  
527 -  
528 - Return:  
529 -  
530 - {array}  
531 - */  
532 - function pegaGruposMenu($id_menu,$ordenaNome="nao"){  
533 - if($ordenaNome == "sim"){  
534 - $ordem = "nome_grupo";  
535 - }  
536 - else{  
537 - $ordem = "ordem";  
538 - }  
539 - $sqlgrupos = $this->sql_grupos."where ".$this->pubsql." id_menu='$id_menu' order by $ordem";  
540 - $sqlraiz = $this->sql_temasraiz."where i3geoadmin_raiz.id_menu='$id_menu' and i3geoadmin_raiz.nivel = 0 order by ordem";  
541 - $grupos = $this->execSQL($sqlgrupos);  
542 - $raiz = $this->execSQL($sqlraiz);  
543 - $raiz = $this->validaTemas($raiz,"codigo_tema");  
544 - return array("raiz"=>$raiz,"grupos"=>$grupos);  
545 - }  
546 - /*  
547 - Function: pegaSubgruposGrupo  
548 -  
549 - Retorna a lista de subgrupos de um grupo  
550 -  
551 - Parametros:  
552 -  
553 - id_menu {string}  
554 -  
555 - id_n1 {string} - id do grupo  
556 -  
557 - Return:  
558 -  
559 - {array}  
560 - */  
561 - function pegaSubgruposGrupo($id_menu,$id_n1,$ordenaNome="nao",$filtraOgc="nao",$filtraDown="nao")  
562 - {  
563 - if($ordenaNome == "sim"){  
564 - $ordem = "nome_subgrupo";  
565 - }  
566 - else{  
567 - $ordem = "ordem";  
568 - }  
569 - $f = "";  
570 - if($filtraOgc == "sim" || $filtraDown == "sim"){  
571 - $ff = array();  
572 - if($filtraOgc == "sim"){  
573 - $ff[] = " i3geoadmin_temas.ogc_tema = 'SIM' ";  
574 - }  
575 - if($filtraDown == "sim"){  
576 - $ff[] = " i3geoadmin_temas.download_tema = 'SIM' ";  
577 - }  
578 - $f = implode(" AND ",$ff) . " AND ";  
579 - }  
580 - $subgrupos = $this->execSQL($this->sql_subgrupos."where ".$this->pubsql." i3geoadmin_n2.id_n1='$id_n1' order by $ordem");  
581 - $raiz = $this->execSQL($this->sql_temasraiz."where $f i3geoadmin_raiz.nivel = 1 and i3geoadmin_raiz.id_nivel = $id_n1 order by ordem");  
582 - $raiz = $this->validaTemas($raiz,"codigo_tema");  
583 - return array("raiz"=>$raiz,"subgrupos"=>$subgrupos);  
584 - }  
585 - /*  
586 - Function: pegaTemasRaizMenu  
587 -  
588 - Retorna a lista de temas da raiz de um menu  
589 -  
590 - Parametros:  
591 -  
592 - id_menu {string}  
593 -  
594 - Return:  
595 -  
596 - {array}  
597 - */  
598 - function pegaTemasRaizMenu($id_menu)  
599 - {  
600 - $raiz = $this->execSQL($this->sql_temasraiz."where i3geoadmin_raiz.id_menu='$id_menu' and i3geoadmin_raiz.nivel = 0 order by ordem");  
601 - $raiz = $this->validaTemas($raiz,"codigo_tema");  
602 - return $raiz;  
603 - }  
604 - /*  
605 - Function: pegaTemasRaizGrupo  
606 -  
607 - Retorna a lista de temas da raiz de um grupo  
608 -  
609 - Parametros:  
610 -  
611 - id_menu {string}  
612 -  
613 - id_n1 {string} - id do grupo  
614 -  
615 - Return:  
616 -  
617 - {array}  
618 - */  
619 - function pegaTemasRaizGrupo($id_menu,$id_n1,$filtraOgc="nao",$filtraDown="nao")  
620 - {  
621 - $f = "";  
622 - if($filtraOgc == "sim" || $filtraDown == "sim"){  
623 - $ff = array();  
624 - if($filtraOgc == "sim"){  
625 - $ff[] = " i3geoadmin_temas.ogc_tema = 'SIM' ";  
626 - }  
627 - if($filtraDown == "sim"){  
628 - $ff[] = " i3geoadmin_temas.download_tema = 'SIM' ";  
629 - }  
630 - $f = implode(" AND ",$ff) . " AND ";  
631 - }  
632 - if($id_n1 == ""){  
633 - $raiz = $this->execSQL($this->sql_temasraiz."where $f i3geoadmin_raiz.nivel = 1 and i3geoadmin_raiz.id_nivel > 0 order by ordem");  
634 - }  
635 - else {  
636 - $raiz = $this->execSQL($this->sql_temasraiz."where $f i3geoadmin_raiz.nivel = 1 and i3geoadmin_raiz.id_nivel = $id_n1 order by ordem");  
637 - }  
638 - $raiz = $this->validaTemas($raiz,"codigo_tema");  
639 - return $raiz;  
640 - }  
641 - /*  
642 - Function: pegaTodosTemas  
643 -  
644 - Retorna os dados de todos os temas  
645 -  
646 - Return:  
647 -  
648 - {array}  
649 - */  
650 - function pegaTodosTemas($combo=false)  
651 - {  
652 - if($combo == true){  
653 - $q = $this->execSQL($this->sql_temas_combo." ORDER BY nome_tema ASC");  
654 - }  
655 - else{  
656 - $q = $this->execSQL($this->sql_temas." ORDER BY nome_tema ASC");  
657 - }  
658 - if($q){  
659 - $q = $this->validaTemas($q,"codigo_tema");  
660 - return $q;  
661 - }  
662 - }  
663 - /*  
664 - Function: pegaTema  
665 -  
666 - Retorna os dados de um tema  
667 -  
668 - Parametros:  
669 -  
670 - id_tema {string}  
671 -  
672 - Return:  
673 -  
674 - {array}  
675 - */  
676 - function pegaTema($id_tema)  
677 - {  
678 - $q = $this->execSQL($this->sql_temas." and id_tema = '$id_tema' ");  
679 - if($q){  
680 - return $q;  
681 - }  
682 - else{  
683 - //caso de banco de dados antigo  
684 - $sql = "select kmz_tema,'0' as nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,nome_tema,codigo_tema from ".$this->esquemaadmin."i3geoadmin_temas ";  
685 - $q = $this->execSQL($sql." where id_tema = '$id_tema' ");  
686 - return $q;  
687 - }  
688 - }  
689 - /*  
690 - Function: pegaTemaPorCodigo  
691 -  
692 - Retorna os dados de um tema buscando por codigo  
693 -  
694 - Parametros:  
695 -  
696 - codigo_tema {string}  
697 -  
698 - Return:  
699 -  
700 - {array}  
701 - */  
702 - function pegaTemaPorCodigo($codigo_tema)  
703 - {  
704 - $q = $this->execSQL($this->sql_temas." and codigo_tema = '$codigo_tema' ");  
705 - if($q){  
706 - return $q;  
707 - }  
708 - else{  
709 - //caso de banco de dados antigo  
710 - $sql = "select kmz_tema,'0' as nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,nome_tema,codigo_tema from ".$this->esquemaadmin."i3geoadmin_temas ";  
711 - $q = $this->execSQL($sql." where codigo_tema = '$codigo_tema' ");  
712 - return $q;  
713 - }  
714 - }  
715 - /*  
716 - Function: pegaTemasSubGrupo  
717 -  
718 - Retorna os temas de um subgrupo  
719 -  
720 - Parametros:  
721 -  
722 - id_n2 {string} - id do subgrupo  
723 -  
724 - Return:  
725 -  
726 - {array}  
727 - */  
728 - function pegaTemasSubGrupo($id_n2,$filtraOgc="nao",$filtraDown="nao")  
729 - {  
730 - $f = "";  
731 - if($filtraOgc == "sim" || $filtraDown == "sim"){  
732 - $ff = array();  
733 - if($filtraOgc == "sim"){  
734 - $ff[] = " i3geoadmin_temas.ogc_tema = 'SIM' ";  
735 - }  
736 - if($filtraDown == "sim"){  
737 - $ff[] = " i3geoadmin_temas.download_tema = 'SIM' ";  
738 - }  
739 - $f = implode(" AND ",$ff) . " AND ";  
740 - }  
741 - $temas = $this->execSQL($this->sql_temasSubgrupo."where $f ".$this->pubsql." i3geoadmin_n3.id_n2='$id_n2' order by ordem");  
742 - $temas = $this->validaTemas($temas,"codigo_tema");  
743 - return $temas;  
744 - }  
745 - /*  
746 - Function: formataMenus  
747 -  
748 - Retorna os menus e temas na raiz de um menu, formatados no padr&atilde;o da &aacute;rvore  
749 -  
750 - Return:  
751 -  
752 - {array}  
753 - */  
754 - function formataMenus(){  
755 - }  
756 - /*  
757 - Function: formataGruposMenu  
758 -  
759 - Retorna os grupos e temas na raiz de um menu, formatados no padr&atilde;o da &aacute;rvore  
760 -  
761 - Parametros:  
762 -  
763 - id_menu {string}  
764 -  
765 - perfil {string}  
766 -  
767 - listasgrupos {string} - sim|nao  
768 -  
769 - Return:  
770 -  
771 - {array}  
772 - */  
773 - function formataGruposMenu ($id_menu,$perfil,$listasgrupos,$ordenaNome="nao",$filtraOgc="nao",$filtraDown="nao")  
774 - {  
775 - //error_reporting(0);  
776 - $dados = $this->pegaGruposMenu($id_menu,$ordenaNome);  
777 - $resultado = array();  
778 - $temasraiz = array();  
779 - foreach($dados["raiz"] as $temar){  
780 - $temasraiz[] = $this->formataTema($temar["id_tema"]);  
781 - }  
782 - if(count($dados["grupos"]) == 0){  
783 - $grupos[] = array();  
784 - }  
785 - $raizgrupos = $this->pegaTemasRaizGrupo($id_menu,"",$filtraOgc,$filtraDown);  
786 - //var_dump($raizgrupos);exit;  
787 - foreach($dados["grupos"] as $grupo) {  
788 - $a = $grupo["n1_perfil"];  
789 - $a = str_replace(" ",",",$a);  
790 - if($this->verificaOcorrencia($perfil,explode(",",$a)) == true)  
791 - {  
792 - $temas = array();  
793 - //$raizgrupo = $this->pegaTemasRaizGrupo($id_menu,$grupo["id_n1"],$filtraOgc,$filtraDown);  
794 - $grupodown = "nao";  
795 - $grupoogc = "nao";  
796 - foreach($raizgrupos as $tema){  
797 - if($tema["id_nivel"] == $grupo["id_n1"]){  
798 - $temas[] = $this->formataTema($tema["id_tema"]);  
799 - }  
800 - }  
801 - if($temas > 0){  
802 - $grupodown = "sim";  
803 - $grupoogc = "sim";  
804 - }  
805 - $subgrupos = array();  
806 - if($listasgrupos=="sim"){  
807 - $dadossubgrupos = $this->pegaSubgruposGrupo($id_menu,$grupo["id_n1"],$ordenaNome,$filtraOgc,$filtraDown);  
808 - foreach($dadossubgrupos["subgrupos"] as $sgrupo){  
809 - $a = $sgrupo["n2_perfil"];  
810 - $a = str_replace(" ",",",$a);  
811 - if($this->verificaOcorrencia($perfil,explode(",",$a))){  
812 - //verifica se existem temas que podem receber download  
813 - $down = "nao";  
814 - $ogc = "nao";  
815 - $listaT = $this->pegaTemasSubGrupo($sgrupo["id_n2"],$filtraOgc,$filtraDown);  
816 - foreach($listaT as $tema){  
817 - if(strtolower($tema["tipoa_tema"]) != "wms")  
818 - {  
819 - if (strtolower($tema["download_tema"]) != "nao")  
820 - {  
821 - $down = "sim";$grupodown = "sim";  
822 - }  
823 -  
824 - if (strtolower($tema["ogc_tema"]) != "nao")  
825 - {  
826 - $ogc = "sim";$grupoogc = "sim";  
827 - }  
828 - }  
829 - }  
830 - if(count($listaT) > 0){  
831 - $subgrupos[] = array("id_n2"=>$sgrupo["id_n2"],"publicado"=>($sgrupo["publicado"]),"nome"=>$this->converte($sgrupo["nome_subgrupo"]),"download"=>$down,"ogc"=>$ogc);  
832 - }  
833 - }  
834 - }  
835 - }  
836 - //evita ocorrencias vazias quando for aplicado um filtro  
837 - if($filtraOgc == "sim" || $filtraDown == "sim"){  
838 - if(count($subgrupos) > 0 || count($temas) > 0){  
839 - $grupos[] = array("publicado"=>($grupo["publicado"]),"id_n1"=>($grupo["id_n1"]),"nome"=>$this->converte($grupo["nome_grupo"]),"ogc"=>$grupoogc,"download"=>$grupodown,"subgrupos"=>$subgrupos,"temasgrupo"=>$temas);  
840 - }  
841 - }  
842 - else{  
843 - $grupos[] = array("publicado"=>($grupo["publicado"]),"id_n1"=>($grupo["id_n1"]),"nome"=>$this->converte($grupo["nome_grupo"]),"ogc"=>$grupoogc,"download"=>$grupodown,"subgrupos"=>$subgrupos,"temasgrupo"=>$temas);  
844 - }  
845 - }  
846 - }  
847 - $grupos[] = array("temasraiz"=>$temasraiz);  
848 - //pega os sistemas checando os perfis  
849 - $sistemas = array();  
850 - $grupos[] = array("idmenu"=>$id_menu);  
851 - $grupos[] = array("sistemas"=>"");  
852 - return($grupos);  
853 - }  
854 - /*  
855 - Function: formataSubgruposGrupo  
856 -  
857 - Retorna os subgrupos e temas na raiz de um grupo, formatados no padr&atilde;o da &aacute;rvore  
858 -  
859 - Parametros:  
860 -  
861 - id_menu {string}  
862 -  
863 - id_n1 {string} - id do grupo  
864 -  
865 - perfil {string}  
866 -  
867 - Return:  
868 -  
869 - {array}  
870 - */  
871 - function formataSubgruposGrupo ($id_menu,$id_n1,$perfil)  
872 - {  
873 - $dados = $this->pegaSubgruposGrupo($id_menu,$id_n1);  
874 - $resultado = array();  
875 - $temasraiz = array();  
876 - foreach($dados["raiz"] as $temar)  
877 - {  
878 - $temasraiz[] = $this->formataTema($temar["id_tema"]);  
879 - }  
880 - if(count($dados["subgrupos"]) == 0)  
881 - {  
882 - $sgrupos[] = array();  
883 - }  
884 - $subgrupos = array();  
885 - foreach($dados["subgrupos"] as $sgrupo)  
886 - {  
887 - $a = $sgrupo["n2_perfil"];  
888 - $a = str_replace(" ",",",$a);  
889 - if ($this->verificaOcorrencia($perfil,explode(",",$a)))  
890 - {  
891 - $listaT = $this->pegaTemasSubGrupo($sgrupo["id_n2"]);  
892 - $down = "nao";  
893 - $ogc = "nao";  
894 - foreach($listaT as $tema)  
895 - {  
896 - if(strtolower($tema["tipoa_tema"]) != "wms")  
897 - {  
898 - if (strtolower($tema["download_tema"]) != "nao")  
899 - {  
900 - $down = "sim";  
901 - }  
902 - if (strtolower($tema["ogc_tema"]) != "nao")  
903 - {  
904 - $ogc = "sim";  
905 - }  
906 - }  
907 - }  
908 - if(count($listaT) > 0)  
909 - {  
910 - $subgrupos[] = array("publicado"=>($sgrupo["publicado"]),"id_n2"=>($sgrupo["id_n2"]),"nome"=>$this->converte($sgrupo["nome_subgrupo"]),"download"=>$down,"ogc"=>$ogc,"temas"=>$listaT);  
911 - }  
912 - }  
913 - }  
914 - return (array("subgrupo"=>$subgrupos,"temasgrupo"=>$temasraiz));  
915 - }  
916 - /*  
917 - Function: formataTemasSubgrupo  
918 -  
919 - Retorna os temas de um subgrupo, formatados no padr&atilde;o da &aacute;rvore  
920 -  
921 - Parametros:  
922 -  
923 - id_n2 {string} - id do subgrupo  
924 -  
925 - perfil {string}  
926 -  
927 - Return:  
928 -  
929 - {array}  
930 - */  
931 - function formataTemasSubgrupo($id_n2,$perfil)  
932 - {  
933 - $dados = $this->pegaTemasSubGrupo($id_n2);  
934 - $temas = array();  
935 - foreach($dados as $tema)  
936 - {  
937 - $a = $tema["n3_perfil"];  
938 - $a = str_replace(" ",",",$a);  
939 - if($this->verificaOcorrencia($perfil,explode(",",$a)))  
940 - {  
941 - $temas[] = $this->formataTema($tema["id_tema"],$tema["publicado"]);  
942 - }  
943 - }  
944 - return $temas;  
945 - }  
946 - /*  
947 - Function: formataTema  
948 -  
949 - Retorna os dados de um tema, formatados no padr&atilde;o da &aacute;rvore  
950 -  
951 - Parametros:  
952 -  
953 - id_tema {string}  
954 -  
955 - publicado {string} - SIM|NAO valor do &iacute;ndice "publicado" que ser&aacute; inclu&iacute;do no array de retorno  
956 -  
957 - Return:  
958 -  
959 - {array}  
960 - */  
961 - function formataTema($id_tema,$publicado="SIM")  
962 - {  
963 - $recordset = $this->pegaTema($id_tema);  
964 - $recordset = $recordset[0];  
965 - $down = "sim";  
966 - $ogc = "sim";  
967 - $link = " ";  
968 - $kmz = "nao";  
969 - if (strtolower($recordset["download_tema"]) == "nao")  
970 - {  
971 - $down = "nao";  
972 - }  
973 - if (strtolower($recordset["ogc_tema"]) == "nao")  
974 - {  
975 - $ogc = "nao";  
976 - }  
977 - if(strtolower($recordset["tipoa_tema"]) == "wms")  
978 - {  
979 - $down = "nao";  
980 - $ogc = "nao";  
981 - }  
982 - if ($recordset["link_tema"] != "")  
983 - {  
984 - $link = $recordset["link_tema"];  
985 - }  
986 - if (strtolower($recordset["kmz_tema"]) == "sim")  
987 - {  
988 - $kmz = "sim";  
989 - }  
990 - //codigo_tema para fins de compatibilidade  
991 - return array("codigo_tema"=>($recordset["codigo_tema"]),"tipoa_tema"=>$recordset["tipoa_tema"],"publicado"=>$publicado,"nacessos"=>($recordset["nacessos"]),"tid"=>($recordset["codigo_tema"]),"nome"=>$this->converte($recordset["nome_tema"]),"link"=>$link,"download"=>$down,"ogc"=>$ogc,"kmz"=>$kmz);  
992 - }  
993 - /*  
994 - Function: execSQL  
995 -  
996 - Executa um SQL no banco de administra&ccedil;&atilde;o  
997 -  
998 - Parametros:  
999 -  
1000 - sql {string}  
1001 -  
1002 - Return:  
1003 -  
1004 - {array}  
1005 - */  
1006 - function execSQL($sql)  
1007 - {  
1008 - //echo "<br>".$sql;  
1009 - //error_reporting(0);  
1010 - $sql = str_ireplace(array("update","delete","insert","--","drop",";"),"",$sql);  
1011 - $q = $this->dbh->query($sql,PDO::FETCH_ASSOC);  
1012 - if($q)  
1013 - {  
1014 - return $q->fetchAll();  
1015 - }  
1016 - else  
1017 - {return false;  
1018 - }  
1019 - }  
1020 - /*  
1021 - Verifica se uma string ocorre em um array  
1022 - */  
1023 - function verificaOcorrencia($procurar,$em)  
1024 - {  
1025 - if(count($em) == 1 && $em[0] == "")  
1026 - {  
1027 - $em = "";  
1028 - }  
1029 - if($procurar == "" && $em == "")  
1030 - {  
1031 - return true;  
1032 - }  
1033 - if($em == "")  
1034 - {  
1035 - return true;  
1036 - }  
1037 - $resultado = false;  
1038 - if($procurar != "" && $em != "")  
1039 - {  
1040 - foreach($em as $e)  
1041 - {  
1042 - $e = trim($e);  
1043 - foreach($procurar as $p)  
1044 - {  
1045 - $p = trim($p);  
1046 - if($p == $e)  
1047 - {  
1048 - $resultado = true;  
1049 - }  
1050 - }  
1051 - }  
1052 - }  
1053 - return $resultado;  
1054 - }  
1055 - function seems_utf8($Str) { # by bmorel at ssi dot fr  
1056 - $length = strlen($Str);  
1057 - for ($i = 0; $i < $length; $i++) {  
1058 - if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb  
1059 - elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n = 1; # 110bbbbb  
1060 - elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n = 2; # 1110bbbb  
1061 - elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n = 3; # 11110bbb  
1062 - elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n = 4; # 111110bb  
1063 - elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n = 5; # 1111110b  
1064 - else return false; # Does not match any model  
1065 - for ($j = 0; $j < $n; $j++) { # n bytes matching 10bbbbbb follow ?  
1066 - if ((++$i == $length) || ((ord($Str[$i]) & 0xC0) != 0x80))  
1067 - return false;  
1068 - }  
1069 - }  
1070 - return true;  
1071 - }  
1072 - /**  
1073 - *  
1074 - * TODO Verificar ao fechar versao - verificar a acentuacao das palavras nessa funcao  
1075 - */  
1076 - function removeAcentos($s)  
1077 - {  
1078 - $s = ereg_replace("[&aacute;à&acirc;&atilde;]","a",$s);  
1079 - $s = ereg_replace("[&Aacute;À&Acirc;&Atilde;]","A",$s);  
1080 - $s = ereg_replace("[&eacute;è&ecirc;]","e",$s);  
1081 - $s = ereg_replace("[&iacute;]","i",$s);  
1082 - $s = ereg_replace("[&Iacute;]","I",$s);  
1083 - $s = ereg_replace("[&Eacute;È&Ecirc;]","E",$s);  
1084 - $s = ereg_replace("[óò&ocirc;&otilde;]","o",$s);  
1085 - $s = ereg_replace("[ÓÒ&Ocirc;&Otilde;]","O",$s);  
1086 - $s = ereg_replace("[&uacute;ùû]","u",$s);  
1087 - $s = ereg_replace("[&Uacute;ÙÛ]","U",$s);  
1088 - $s = str_replace("&ccedil;","c",$s);  
1089 - $s = str_replace("&Ccedil;","C",$s);  
1090 - //$str = htmlentities($s);  
1091 - $str = preg_replace("/(&)([a-z])([a-z]+;)/i", '$2', $s);  
1092 - $str = preg_replace("/[^A-Z0-9]/i", ' ', $str);  
1093 - $string = preg_replace("/\s+/i", ' ', $str);  
1094 -  
1095 - if (!preg_match('/[\x80-\xff]/', $string)){  
1096 - return $string;  
1097 - }  
1098 - if ($this->seems_utf8($string)) {  
1099 - $chars = array(  
1100 - // Decompositions for Latin-1 Supplement  
1101 - chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',  
1102 - chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',  
1103 - chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',  
1104 - chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',  
1105 - chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',  
1106 - chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',  
1107 - chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',  
1108 - chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',  
1109 - chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',  
1110 - chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',  
1111 - chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',  
1112 - chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',  
1113 - chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',  
1114 - chr(195).chr(159) => 's', chr(195).chr(160) => 'a',  
1115 - chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',  
1116 - chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',  
1117 - chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',  
1118 - chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',  
1119 - chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',  
1120 - chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',  
1121 - chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',  
1122 - chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',  
1123 - chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',  
1124 - chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',  
1125 - chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',  
1126 - chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',  
1127 - chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',  
1128 - chr(195).chr(191) => 'y',  
1129 - // Decompositions for Latin Extended-A  
1130 - chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',  
1131 - chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',  
1132 - chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',  
1133 - chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',  
1134 - chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',  
1135 - chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',  
1136 - chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',  
1137 - chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',  
1138 - chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',  
1139 - chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',  
1140 - chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',  
1141 - chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',  
1142 - chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',  
1143 - chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',  
1144 - chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',  
1145 - chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',  
1146 - chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',  
1147 - chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',  
1148 - chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',  
1149 - chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',  
1150 - chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',  
1151 - chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',  
1152 - chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',  
1153 - chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',  
1154 - chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',  
1155 - chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',  
1156 - chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',  
1157 - chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',  
1158 - chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',  
1159 - chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',  
1160 - chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',  
1161 - chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',  
1162 - chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',  
1163 - chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',  
1164 - chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',  
1165 - chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',  
1166 - chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',  
1167 - chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',  
1168 - chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',  
1169 - chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',  
1170 - chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',  
1171 - chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',  
1172 - chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',  
1173 - chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',  
1174 - chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',  
1175 - chr(197).chr(154) => 'S',chr(197).chr(155) => 's',  
1176 - chr(197).chr(156) => 'S',chr(197).chr(157) => 's',  
1177 - chr(197).chr(158) => 'S',chr(197).chr(159) => 's',  
1178 - chr(197).chr(160) => 'S', chr(197).chr(161) => 's',  
1179 - chr(197).chr(162) => 'T', chr(197).chr(163) => 't',  
1180 - chr(197).chr(164) => 'T', chr(197).chr(165) => 't',  
1181 - chr(197).chr(166) => 'T', chr(197).chr(167) => 't',  
1182 - chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',  
1183 - chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',  
1184 - chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',  
1185 - chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',  
1186 - chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',  
1187 - chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',  
1188 - chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',  
1189 - chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',  
1190 - chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',  
1191 - chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',  
1192 - chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',  
1193 - chr(197).chr(190) => 'z', chr(197).chr(191) => 's',  
1194 - // Euro Sign  
1195 - chr(226).chr(130).chr(172) => 'E',  
1196 - // GBP (Pound) Sign  
1197 - chr(194).chr(163) => '');  
1198 - $string = strtr($string, $chars);  
1199 - } else {  
1200 - // Assume ISO-8859-1 if not UTF-8  
1201 - $chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158)  
1202 - .chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194)  
1203 - .chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202)  
1204 - .chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210)  
1205 - .chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218)  
1206 - .chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227)  
1207 - .chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235)  
1208 - .chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243)  
1209 - .chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251)  
1210 - .chr(252).chr(253).chr(255);  
1211 - $chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";  
1212 - $string = strtr($string, $chars['in'], $chars['out']);  
1213 - $double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254));  
1214 - $double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th');  
1215 - $string = str_replace($double_chars['in'], $double_chars['out'], $string);  
1216 - }  
1217 - return $string;  
1218 - }  
1219 - function converte($texto){  
1220 - if($this->convUTF == true)  
1221 - $texto = mb_convert_encoding($texto,mb_detect_encoding($texto),"UTF-8");  
1222 - else  
1223 - $texto = mb_convert_encoding($texto,mb_detect_encoding($texto),"ISO-8859-1");  
1224 - return $texto;  
1225 - }  
1226 - function verificaPapelSessao($id_papel){  
1227 - if(!empty($_COOKIE["i3geocodigologin"])){  
1228 - session_write_close();  
1229 - session_name("i3GeoLogin");  
1230 - session_id($_COOKIE["i3geocodigologin"]);  
1231 - session_start();  
1232 - //var_dump($_SESSION);exit;  
1233 - if($_SESSION["usuario"] != $_COOKIE["i3geousuariologin"]){  
1234 - return false;  
1235 - }  
1236 - foreach($_SESSION["papeis"] as $p){  
1237 - if($p == 1 || $p == $id_papel){  
1238 - return true;  
1239 - }  
1240 - }  
1241 - }  
1242 - else{//caso nao exista, retorna um erro  
1243 - return false;  
1244 - }  
1245 - }  
1246 - function verificaOperacaoSessao($operacao){  
1247 - if($_COOKIE["i3geocodigologin"] != ""){  
1248 - session_write_close();  
1249 - session_name("i3GeoLogin");  
1250 - session_id($_COOKIE["i3geocodigologin"]);  
1251 - session_start();  
1252 - $resultado = false;  
1253 - //verifica se e administrador  
1254 - foreach($_SESSION["papeis"] as $p){  
1255 - if($p == 1){  
1256 - return true;  
1257 - }  
1258 - }  
1259 - if(!empty($_SESSION["operacoes"][$operacao])){  
1260 - $resultado = true;  
1261 - }  
1262 - return $resultado;  
1263 - } else {  
1264 - return false;  
1265 - }  
1266 - }  
1267 -}  
1268 -?>  
1269 \ No newline at end of file 0 \ No newline at end of file
admin/php/xxxconexao.php 0 → 100755
@@ -0,0 +1,107 @@ @@ -0,0 +1,107 @@
  1 +<?php
  2 +/*
  3 +Title: conexao.php
  4 +
  5 +Define a conex&atilde;o com o banco de dados que cont&eacute;m as tabelas do sistema de administra&ccedil;&atilde;o do i3geo.
  6 +
  7 +Verifique se sua instala&ccedil;&atilde;o do PHP suporta o uso da biblioteca PDO com sqlite
  8 +
  9 +Por padr&atilde;o, a conex&atilde;o &eacute; feita com o banco de dados SQLITE i3geo/admin/admin.db mas vc pode usar outro banco de dados
  10 +
  11 +Voc&ecirc; pode alterar a conex&atilde;o PDO modificando a vari&aacute;vel de configuara&ccedil;&atilde;o $conexaoadmin no i3geo/ms_configura.php
  12 +
  13 +O programa define duas vari&aacute;veis que s&atilde;o usadas no acesso ao banco
  14 +
  15 +dbhw - objeto PDO com a conex&atilde;o para leitura e escrita
  16 +
  17 +dbh - objeto PDO com a conex&atilde;o para leitura
  18 +
  19 +Licen&ccedil;a:
  20 +
  21 +GPL2
  22 +
  23 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  24 +
  25 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  26 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  27 +
  28 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  29 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  30 +GNU conforme publicada pela Free Software Foundation;
  31 +
  32 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  33 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  34 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  35 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  36 +Voc&ecirc; deve ter recebido uma c�pia da Licen&ccedil;a P&uacute;blica Geral do
  37 + GNU junto com este programa; se n&atilde;o, escreva para a
  38 +Free Software Foundation, Inc., no endere&ccedil;o
  39 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  40 +
  41 +Arquivo: i3geo/admin/php/conexao.php
  42 +
  43 +*/
  44 +if(isset($locaplic) && $locaplic != ""){
  45 + include($locaplic."/ms_configura.php");
  46 +}
  47 +else{
  48 + include(dirname(__FILE__)."/../../ms_configura.php");
  49 +}
  50 +if(!isset($conexaoadmin)){
  51 + $conexaoadmin = "";
  52 +}
  53 +if(!isset($esquemaadmin)){
  54 + $esquemaadmin = "";
  55 +}
  56 +if($esquemaadmin != ""){
  57 + $esquemaadmin = str_replace(".","",$esquemaadmin).".";
  58 +}
  59 +if(!isset($logTransacoes)){
  60 + $logTransacoes = false;
  61 +}
  62 +//
  63 +//indica se deve ser feita a convers&atilde;o para UTF8 ao gravar os dados
  64 +//
  65 +$convUTF = true;
  66 +if($conexaoadmin == ""){
  67 + $arquivosqlite = $locaplic."/admin/admin.db";
  68 + //chmod($arquivosqlite,0774);
  69 + //echo $arquivosqlite;exit;
  70 + if(!file_exists($arquivosqlite)){
  71 + echo "O arquivo admin.db n&atilde;o existe. Utilize i3geo/admin/criabanco.php para criar o banco de dados SQLITE.";
  72 + exit;
  73 + }
  74 + $conAdmin = "sqlite:$arquivosqlite";
  75 + $conAdminw = "sqlite:$arquivosqlite";
  76 + if(!extension_loaded("PDO")){
  77 + echo "<span style=color:red >A extensao do PHP 'PDO' nao esta instalada.";
  78 + exit;
  79 + }
  80 + if (!extension_loaded( "pdo_sqlite")){
  81 + echo "<span style=color:red >Problema: n&atilde;o est&aacute; instalado a pdo_sqlite<br></span>";
  82 + exit;
  83 + }
  84 + if (!extension_loaded( "SQLite") && !extension_loaded( "sqlite3")){
  85 + echo "<span style=color:red >Problema: n&atilde;o est&aacute; instalado a SQLite<br></span>";
  86 + exit;
  87 + }
  88 + try {
  89 + //para escrita
  90 + $dbhw = new PDO($conAdminw);
  91 + //para leitura
  92 + $dbh = new PDO($conAdmin);
  93 + }
  94 + catch (PDOException $e) {
  95 + print "Erro ao criar o objeto PDO!: <br/> Talvez exista alguma incompatibilidade entre o PHP e o banco admin.db. Vc pode apagar o arquivo menutemas/admin.db e recria-lo com admin/php/criasqlite.php";
  96 + die();
  97 + }
  98 +}
  99 +else {
  100 + if(file_exists($conexaoadmin)){
  101 + include($conexaoadmin);
  102 + } else {
  103 + echo "Arquivo de conexao nao existe";
  104 + exit;
  105 + }
  106 +}
  107 +?>
classesphp/xml.php
@@ -71,7 +71,7 @@ function geraXmlSistemas($perfil=&quot;&quot;,$locaplic=&quot;&quot;,$editores=&quot;&quot;) @@ -71,7 +71,7 @@ function geraXmlSistemas($perfil=&quot;&quot;,$locaplic=&quot;&quot;,$editores=&quot;&quot;)
71 $perfil = str_replace(","," ",$perfil); 71 $perfil = str_replace(","," ",$perfil);
72 $perfil = explode(" ",$perfil); 72 $perfil = explode(" ",$perfil);
73 $dbh = ""; 73 $dbh = "";
74 - include($locaplic."/admin/php/conexao.php"); 74 + include($locaplic."/classesphp/conexao.php");
75 if($convUTF) 75 if($convUTF)
76 $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">"; 76 $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
77 else 77 else
@@ -239,7 +239,7 @@ Retorno: @@ -239,7 +239,7 @@ Retorno:
239 239
240 RSS 240 RSS
241 */ 241 */
242 -function geraXmlWS($locaplic,$output) 242 +function geraXmlWS($locaplic,$output="xml")
243 { 243 {
244 global $esquemaadmin; 244 global $esquemaadmin;
245 $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'WS' and nome_ws <> ''"; 245 $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'WS' and nome_ws <> ''";
@@ -471,7 +471,7 @@ function geraXmlRSS($locaplic,$sql,$descricao,$output=&quot;xml&quot;) @@ -471,7 +471,7 @@ function geraXmlRSS($locaplic,$sql,$descricao,$output=&quot;xml&quot;)
471 } 471 }
472 //var_dump($_SERVER);exit; 472 //var_dump($_SERVER);exit;
473 $dbh = ""; 473 $dbh = "";
474 - include($locaplic."/admin/php/conexao.php"); 474 + include($locaplic."/classesphp/conexao.php");
475 if($convUTF){ 475 if($convUTF){
476 $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">"; 476 $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
477 } else { 477 } else {
@@ -507,7 +507,11 @@ function geraXmlRSS($locaplic,$sql,$descricao,$output=&quot;xml&quot;) @@ -507,7 +507,11 @@ function geraXmlRSS($locaplic,$sql,$descricao,$output=&quot;xml&quot;)
507 $xml .= "<author>".xmlTexto_prepara($row["autor_ws"])."</author>\n"; 507 $xml .= "<author>".xmlTexto_prepara($row["autor_ws"])."</author>\n";
508 $xml .= "<nacessos></nacessos>\n"; 508 $xml .= "<nacessos></nacessos>\n";
509 $xml .= "<nacessosok></nacessosok>\n"; 509 $xml .= "<nacessosok></nacessosok>\n";
  510 + if(!isset($row["id_ws"])){
  511 + $row["id_ws"] = "";
  512 + }
510 $xml .= "<id>".xmlTexto_prepara($row["id_ws"])."</id>\n"; 513 $xml .= "<id>".xmlTexto_prepara($row["id_ws"])."</id>\n";
  514 +
511 $xml .= "<tipo>".$row["tipo_ws"]."</tipo>\n"; 515 $xml .= "<tipo>".$row["tipo_ws"]."</tipo>\n";
512 $xml .= "</item>\n"; 516 $xml .= "</item>\n";
513 $jsonItems[] = array( 517 $jsonItems[] = array(
@@ -535,7 +539,7 @@ function geraXmlAtlas($locaplic,$editores) @@ -535,7 +539,7 @@ function geraXmlAtlas($locaplic,$editores)
535 global $esquemaadmin; 539 global $esquemaadmin;
536 //error_reporting(0); 540 //error_reporting(0);
537 $dbh = ""; 541 $dbh = "";
538 - include($locaplic."/admin/php/conexao.php"); 542 + include($locaplic."/classesphp/conexao.php");
539 543
540 if($convUTF) 544 if($convUTF)
541 $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">"; 545 $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
@@ -587,7 +591,7 @@ function geraXmlIdentifica($perfil,$locaplic,$editores=&quot;&quot;) @@ -587,7 +591,7 @@ function geraXmlIdentifica($perfil,$locaplic,$editores=&quot;&quot;)
587 $perfil = str_replace(","," ",$perfil); 591 $perfil = str_replace(","," ",$perfil);
588 $perfil = explode(" ",$perfil); 592 $perfil = explode(" ",$perfil);
589 $dbh = ""; 593 $dbh = "";
590 - include($locaplic."/admin/php/conexao.php"); 594 + include($locaplic."/classesphp/conexao.php");
591 if($convUTF) 595 if($convUTF)
592 $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">"; 596 $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
593 else 597 else
@@ -672,7 +676,7 @@ function geraXmlMapas($perfil,$locaplic,$editores) @@ -672,7 +676,7 @@ function geraXmlMapas($perfil,$locaplic,$editores)
672 $xml .= " <OUTROS><![CDATA[".$outros."]]></OUTROS>\n"; 676 $xml .= " <OUTROS><![CDATA[".$outros."]]></OUTROS>\n";
673 $linkdireto = xmlTexto_prepara($row["linkdireto_mapa"]); 677 $linkdireto = xmlTexto_prepara($row["linkdireto_mapa"]);
674 if(empty($linkdireto)){ 678 if(empty($linkdireto)){
675 - $linkdireto = $url."/ms_criamapa.php?mapext=".$extensao."&perfil=".$perfil."&temasa=".$temas."&layers=".$ligados.$row["outros_mapa"]; 679 + $linkdireto = $url."/ms_criamapa.php?mapext=".$extensao."&perfil=".$perfil."&temasa=".$row["temas_mapa"]."&layers=".$row["ligados_mapa"].$row["outros_mapa"];
676 $linkdireto = xmlTexto_prepara($linkdireto); 680 $linkdireto = xmlTexto_prepara($linkdireto);
677 } 681 }
678 $xml .= " <LINKDIRETO><![CDATA[".$linkdireto."]]></LINKDIRETO>\n"; 682 $xml .= " <LINKDIRETO><![CDATA[".$linkdireto."]]></LINKDIRETO>\n";
@@ -693,7 +697,7 @@ function geraXmlMapas($perfil,$locaplic,$editores) @@ -693,7 +697,7 @@ function geraXmlMapas($perfil,$locaplic,$editores)
693 return $xml; 697 return $xml;
694 } 698 }
695 //mostra apenas os mapas que possuem outros_mapa definido, o que e tipico do sistema de metadados estatisticos 699 //mostra apenas os mapas que possuem outros_mapa definido, o que e tipico do sistema de metadados estatisticos
696 -function geraRSSmapas($locaplic,$output) 700 +function geraRSSmapas($locaplic,$output="xml")
697 { 701 {
698 global $esquemaadmin; 702 global $esquemaadmin;
699 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); 703 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
@@ -725,7 +729,7 @@ function geraXmlMenutemas($perfil,$id_menu,$tipo,$locaplic) @@ -725,7 +729,7 @@ function geraXmlMenutemas($perfil,$id_menu,$tipo,$locaplic)
725 global $esquemaadmin; 729 global $esquemaadmin;
726 xml_testaNum([$id_menu]); 730 xml_testaNum([$id_menu]);
727 $dbh = ""; 731 $dbh = "";
728 - include($locaplic."/admin/php/conexao.php"); 732 + include($locaplic."/classesphp/conexao.php");
729 if (!isset($perfil)){$perfil = "";} 733 if (!isset($perfil)){$perfil = "";}
730 $perfil = str_replace(","," ",$perfil); 734 $perfil = str_replace(","," ",$perfil);
731 $perfil = explode(" ",$perfil); 735 $perfil = explode(" ",$perfil);
css/i3geo7.css.php 100644 → 100755
ferramentas/comentarios/index.php
@@ -68,7 +68,7 @@ function formularioInsere() @@ -68,7 +68,7 @@ function formularioInsere()
68 function listaComentarios() 68 function listaComentarios()
69 { 69 {
70 $locaplic = "../.."; 70 $locaplic = "../..";
71 - include(dirname(__FILE__)."/../../admin/php/conexao.php"); 71 + include(dirname(__FILE__)."/../../classesphp/conexao.php");
72 if(!empty($esquemaadmin)){ 72 if(!empty($esquemaadmin)){
73 $esquemaadmin = str_replace(".","",$esquemaadmin)."."; 73 $esquemaadmin = str_replace(".","",$esquemaadmin).".";
74 } 74 }
@@ -100,7 +100,7 @@ function listaComentarios() @@ -100,7 +100,7 @@ function listaComentarios()
100 function gravaComentario() 100 function gravaComentario()
101 { 101 {
102 //necess&aacute;rio para os includes do admin.php 102 //necess&aacute;rio para os includes do admin.php
103 - include_once(dirname(__FILE__)."/../../admin/php/conexao.php"); 103 + include_once(dirname(__FILE__)."/../../classesphp/conexao.php");
104 if(!empty($esquemaadmin)){ 104 if(!empty($esquemaadmin)){
105 $esquemaadmin = str_replace(".","",$esquemaadmin)."."; 105 $esquemaadmin = str_replace(".","",$esquemaadmin).".";
106 } 106 }
ferramentas/editorgm/editorgm_compacto.js 100644 → 100755
ferramentas/editorol/editorol_compacto.js 100644 → 100755
js/compactados/ajuda_compacto.js 100644 → 100755
js/compactados/analise_compacto.js 100644 → 100755
js/compactados/arvoredecamadas_compacto.js 100644 → 100755
js/compactados/arvoredetemas_compacto.js 100644 → 100755
js/compactados/base64_compacto.js 100644 → 100755
js/compactados/busca_compacto.js 100644 → 100755
js/compactados/caixaDeFerramentas_compacto.js 100644 → 100755
js/compactados/calculo_compacto.js 100644 → 100755
js/compactados/catalogoDir_compacto.js 100644 → 100755
js/compactados/catalogoEstrelas_compacto.js 100644 → 100755
js/compactados/catalogoInde_compacto.js 100644 → 100755
js/compactados/catalogoMapas_compacto.js 100644 → 100755
js/compactados/catalogoMenus_compacto.js 100644 → 100755
js/compactados/catalogoMetaestat_compacto.js 100644 → 100755
js/compactados/catalogoOgc_compacto.js 100644 → 100755
js/compactados/catalogoRegioes_compacto.js 100644 → 100755
js/compactados/catalogoSistemas_compacto.js 100644 → 100755
js/compactados/configura_compacto.js 100644 → 100755
js/compactados/coordenadas_compacto.js 100644 → 100755
js/compactados/desenho_compacto.js 100644 → 100755
js/compactados/dicionario_ajuda_compacto.js 100644 → 100755
js/compactados/dicionario_compacto.js 100644 → 100755
js/compactados/editor_compacto.js 100644 → 100755
js/compactados/eventos_compacto.js 100644 → 100755
js/compactados/guias_compacto.js 100644 → 100755
js/compactados/idioma_compacto.js 100644 → 100755
js/compactados/ini_i3geo_compacto.js 100644 → 100755
js/compactados/interface_compacto.js 100644 → 100755
js/compactados/janela_compacto.js 100644 → 100755
js/compactados/legenda_compacto.js 100644 → 100755
js/compactados/login_compacto.js 100644 → 100755
js/compactados/mapa_compacto.js 100644 → 100755
js/compactados/maparef_compacto.js 100644 → 100755
js/compactados/marcador_compacto.js 100644 → 100755
js/compactados/mustache.js 100644 → 100755
js/compactados/navega_compacto.js 100644 → 100755
js/compactados/php_compacto.js 100644 → 100755
js/compactados/plugini3geo_compacto.js 100644 → 100755
js/compactados/proj4js.js 100644 → 100755
js/compactados/social_compacto.js 100644 → 100755
js/compactados/tema_compacto.js 100644 → 100755
js/compactados/util_compacto.js 100644 → 100755
js/compactados/wicket.js 100644 → 100755
js/i3geo_tudo_compacto7.js.php 100644 → 100755
pacotes/cpaint/cpaint2_compacto.inc.js 100644 → 100755
pacotes/mobileesp/mdetect_compacto.js 100644 → 100755
pacotes/yui290/build/carousel/carousel_compacto.js 100644 → 100755
pacotes/yui290/build/container/container_compacto.js 100644 → 100755
pacotes/yui290/build/container/container_core_compacto.js 100644 → 100755
pacotes/yui290/build/resize/resize_compacto.js 100644 → 100755
pacotes/yui290/build/treeview/treeview_compacto.js 100644 → 100755
pacotes/yui290/build/utilities/utilities_compacto.js 100644 → 100755
rss/xmlmapas.php
@@ -43,5 +43,8 @@ if(!isset($_GET[&quot;perfil&quot;])){ @@ -43,5 +43,8 @@ if(!isset($_GET[&quot;perfil&quot;])){
43 $_GET["perfil"] = ""; 43 $_GET["perfil"] = "";
44 } 44 }
45 echo header("Content-type: application/xml"); 45 echo header("Content-type: application/xml");
  46 +if(!isset($_GET["editores"])){
  47 + $_GET["editores"] = "";
  48 +}
46 echo geraXmlMapas($_GET["perfil"],$locaplic,$_GET["editores"]); 49 echo geraXmlMapas($_GET["perfil"],$locaplic,$_GET["editores"]);
47 ?> 50 ?>
rss/xmlsistemas.php
@@ -43,5 +43,8 @@ if(!isset($_GET[&quot;perfil&quot;])){ @@ -43,5 +43,8 @@ if(!isset($_GET[&quot;perfil&quot;])){
43 $_GET["perfil"] = ""; 43 $_GET["perfil"] = "";
44 } 44 }
45 echo header("Content-type: application/xml"); 45 echo header("Content-type: application/xml");
  46 +if(!isset($_GET["editores"])){
  47 + $_GET["editores"] = "";
  48 +}
46 echo geraXmlSistemas($_GET["perfil"],$locaplic,$_GET["editores"]); 49 echo geraXmlSistemas($_GET["perfil"],$locaplic,$_GET["editores"]);
47 ?> 50 ?>