Commit 3165a2e64342ddd5e6ef7084a80bd4ea5b77265c

Authored by Edmar Moretti
1 parent e8a7526b

Revisão da página RSS e reorganização dos programas que geram as listagens em XM…

…L e RSS dos principais dados do sistema de administração
admin/php/xml.php
... ... @@ -1,971 +0,0 @@
1   -<?php
2   -/*
3   -Title: xml.php
4   -
5   -Conjunto de fun&ccedil;&otilde;es que geram arquivos na estrutura XML conforme os dados cadastrados no sistema de administra&ccedil;&atilde;o.
6   -
7   -Permite a gera&ccedil;&atilde;o de XML no padr&atilde;o RSS e outros. &Eacute; utilizado por fun&ccedil;&otilde;es internas do i3Geo e por programas
8   -utilit&aacute;rios que fornecem dados no formato RSS para outros fins.
9   -
10   -Licenca:
11   -
12   -GPL2
13   -
14   -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
15   -
16   -Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
17   -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
18   -
19   -Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
20   -e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
21   -GNU conforme publicada pela Free Software Foundation;
22   -
23   -Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
24   -por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
25   -de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
26   -Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
27   -Voc&ecirc; deve ter recebido uma copia da Licen&ccedil;a P&uacute;blica Geral do
28   -GNU junto com este programa; se n&atilde;o, escreva para a
29   -Free Software Foundation, Inc., no endere&ccedil;o
30   -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
31   -
32   -Arquivo:
33   -
34   -i3geo/admin/php/xml.php
35   -*/
36   -//
37   -//processa a vari&aacute;vel $esquemaadmin definida em ms_configura.php
38   -//essa vari&aacute;vel precisa ter um . no final quando n&atilde;o for vazia, evitando erros na inclus&atilde;o dentro dos SQLs
39   -//
40   -
41   -if (!isset($esquemaadmin)){
42   - include_once(dirname(__FILE__)."/../../ms_configura.php");
43   -}
44   -if(!empty($esquemaadmin)){
45   - $esquemaadmin = str_replace(".","",$esquemaadmin).".";
46   -}
47   -
48   -/*
49   -Function: geraXmlSistemas (depreciado)
50   -
51   -Parametros:
52   -
53   -perfil {string} - perfil que ser&aacute; considerado na gera&ccedil;&atilde;o do XML
54   -
55   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
56   -
57   -editores {array} - lista de editores cadastrados em ms_configura.php
58   -
59   -Retorno:
60   -
61   -String na estrutura XML
62   -*/
63   -function geraXmlSistemas($perfil="",$locaplic="",$editores="")
64   -{
65   - global $esquemaadmin;
66   - if(empty($locaplic)){
67   - return;
68   - }
69   - $editor = "nao";//verificaEditores($editores);
70   - if (!isset($perfil)){$perfil = "";}
71   - $perfil = str_replace(","," ",$perfil);
72   - $perfil = explode(" ",$perfil);
73   - $dbh = "";
74   - include($locaplic."/admin/php/conexao.php");
75   - if($convUTF)
76   - $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
77   - else
78   - $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
79   - $xml .= "\n<SISTEMAS>\n";
80   - $q = "select * from ".$esquemaadmin."i3geoadmin_sistemas";
81   - $qatlas = $dbh->query($q);
82   - foreach($qatlas as $row)
83   - {
84   - if($row["perfil_sistema"] == "")
85   - $mostra = true;
86   - else
87   - {
88   - $perfilS = explode(" ",str_replace(","," ",$row["perfil_sistema"]));
89   - $mostra = array_in_array($perfil,$perfilS);
90   - }
91   - if(strtolower($row["publicado_sistema"] == "nao"))
92   - {$mostra = false;}
93   - if($editor)
94   - {$mostra = true;}
95   - if($mostra)
96   - {
97   - $xml .= "<SISTEMA>\n";
98   - $xml .= " <PERFIL>".$row["perfil_sistema"]."</PERFIL>\n";
99   - $xml .= " <PUBLICADO>".$row["publicado_sistema"]."</PUBLICADO>\n";
100   - $xml .= " <NOMESIS>".xmlTexto_prepara($row["nome_sistema"])."</NOMESIS>\n";
101   - $xml = geraXmlSistemas_pegafuncoes($perfil,$xml,$row["id_sistema"],$dbh);
102   - $xml .= "</SISTEMA>\n";
103   - }
104   - }
105   - $xml .= "</SISTEMAS>\n";
106   - $dbh = null;
107   - $dbhw = null;
108   - return $xml;
109   -}
110   -/*
111   -Function: geraRSScomentariosTemas
112   -
113   -RSS com os comentarios sobre um ou todos os temas
114   -
115   -Parametros:
116   -
117   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
118   -
119   -id_tema {numeric} - (opcional) id do tema para mostrar apenas os coment&aacute;rios de um tema
120   -
121   -Retorno:
122   -
123   -RSS
124   -*/
125   -function geraRSScomentariosTemas($locaplic,$id_tema=""){
126   - global $esquemaadmin;
127   - xml_testaNum([$id_tema]);
128   - $sql = "select '' as tipo_ws, b.nome_tema||' '||a.data as nome_ws,a.openidnome||' '||a.openidurl||' &lt;br&gt;'||a.comentario as desc_ws, a.openidnome as autor_ws, b.link_tema as link_ws from ".$esquemaadmin."i3geoadmin_comentarios as a,".$esquemaadmin."i3geoadmin_temas as b where a.id_tema = b.id_tema ";
129   - if($id_tema != ""){
130   - $sql .= " and a.id_tema = $id_tema ";
131   - }
132   - return geraXmlRSS($locaplic,$sql,"Lista de comentarios");
133   -}
134   -/*
135   -Function: geraRSStemas
136   -
137   -RSS com os temas cadastrados
138   -
139   -Parametros:
140   -
141   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
142   -
143   -id_n2 {string} - c�digo do subgrupo do sistema de administra&ccedil;&atilde;o
144   -
145   -Retorno:
146   -
147   -RSS
148   -*/
149   -function geraRSStemas($locaplic,$id_n2,$output="xml")
150   -{
151   - global $esquemaadmin;
152   - xml_testaNum([$id_n2]);
153   - $sql = "
154   - select '' as tipo_ws, i3geoadmin_temas.codigo_tema as id_ws,i3geoadmin_temas.nome_tema as nome_ws,'' as desc_ws,'php/parsemapfile.php?id='||i3geoadmin_temas.codigo_tema as link_ws,i3geoadmin_temas.link_tema as autor_ws
155   - from ".$esquemaadmin."i3geoadmin_n3 as n3
156   - LEFT JOIN ".$esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = n3.id_tema
157   - LEFT JOIN ".$esquemaadmin."i3geousr_grupotema ON n3.id_tema = i3geousr_grupotema.id_tema
158   - where i3geousr_grupotema.id_grupo is null and i3geoadmin_temas.id_tema = n3.id_tema and n3.id_n2 = '$id_n2' and n3.n3_perfil = '' and n3.publicado != 'NAO' order by nome_ws";
159   - return geraXmlRSS($locaplic,$sql,"Lista de temas",$output);
160   -}
161   -/*
162   -Function: geraRSStemasRaiz
163   -
164   -RSS com os temas localizados na raiz de um n&iacute;vel
165   -
166   -Parametros:
167   -
168   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
169   -
170   -id {string} - codigo do no
171   -
172   -nivel {string} - n&iacute;vel do no
173   -
174   -Retorno:
175   -
176   -RSS
177   -*/
178   -function geraRSStemasRaiz($locaplic,$id,$nivel)
179   -{
180   - global $esquemaadmin;
181   - xml_testaNum([$id,$nivel]);
182   - $sql = "
183   - select '' as tipo_ws, i3geoadmin_temas.codigo_tema as id_ws,i3geoadmin_temas.nome_tema as nome_ws,'' as desc_ws,'php/parsemapfile.php?id='||i3geoadmin_temas.codigo_tema as link_ws,i3geoadmin_temas.link_tema as autor_ws
184   - from ".$esquemaadmin."i3geoadmin_raiz as r
185   - LEFT JOIN ".$esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = r.id_tema
186   - LEFT JOIN ".$esquemaadmin."i3geousr_grupotema ON r.id_tema = i3geousr_grupotema.id_tema
187   - where i3geousr_grupotema.id_grupo is null and i3geoadmin_temas.id_tema = r.id_tema and r.nivel = '$nivel' and r.id_nivel = '$id' order by nome_ws";
188   - return geraXmlRSS($locaplic,$sql,"Temas na raiz");
189   -}
190   -/*
191   -Function: geraRSSsubgrupos
192   -
193   -RSS com os subgrupos cadastrados
194   -
195   -Parametros:
196   -
197   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
198   -
199   -id_n1 {string} - c�digo do grupo do sistema de administra&ccedil;&atilde;o
200   -
201   -Retorno:
202   -
203   -RSS
204   -*/
205   -function geraRSSsubgrupos($locaplic,$id_n1,$output="json")
206   -{
207   - global $esquemaadmin;
208   - xml_testaNum([$id_n1]);
209   - $sql = "select '' as tipo_ws, n2.id_n2 as id_ws,g.nome_subgrupo as nome_ws,'' as desc_ws,'rsstemas.php?id='||n2.id_n2 as link_ws,'' as autor_ws from ".$esquemaadmin."i3geoadmin_n2 as n2,".$esquemaadmin."i3geoadmin_subgrupos as g ";
210   - $sql .= " where g.id_subgrupo = n2.id_subgrupo and n2.id_n1 = '$id_n1' and n2.n2_perfil = '' and n2.publicado != 'NAO' order by nome_ws";
211   - return geraXmlRSS($locaplic,$sql,"Lista de sub-grupos",$output);
212   -}
213   -/*
214   -Function: geraRSSgrupos
215   -
216   -RSS com os grupos cadastrados
217   -
218   -Parametros:
219   -
220   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
221   -
222   -Retorno:
223   -
224   -RSS
225   -*/
226   -function geraRSSgrupos($locaplic,$output="xml")
227   -{
228   - global $esquemaadmin;
229   - $sql = "select '' as tipo_ws, n1.id_n1 as id_ws, g.nome_grupo as nome_ws,'rsstemasraiz.php?nivel=1&id='||n1.id_n1 as desc_ws,'rsssubgrupos.php?id='||n1.id_n1 as link_ws,'' as autor_ws ";
230   - $sql .= "from ".$esquemaadmin."i3geoadmin_n1 as n1,".$esquemaadmin."i3geoadmin_grupos as g ";
231   - $sql .= "where g.id_grupo = n1.id_grupo and n1.n1_perfil = '' and n1.publicado != 'NAO' group by id_ws,tipo_ws,nome_ws,desc_ws,link_ws,autor_ws order by nome_ws";
232   - return geraXmlRSS($locaplic,$sql,"Lista de grupos",$output);
233   -}
234   -/*
235   -Function: geraXmlDownload
236   -
237   -RSS com os links para sistemas de download
238   -
239   -Parametros:
240   -
241   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
242   -
243   -Retorno:
244   -
245   -RSS
246   -*/
247   -function geraXmlDownload($locaplic)
248   -{
249   - global $esquemaadmin;
250   - $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'DOWNLOAD' and nome_ws <> ''";
251   - return geraXmlRSS($locaplic,$sql,"Enderecos para download");
252   -}
253   -/*
254   -Function: geraXmlWS
255   -
256   -RSS com a lista de WS cadastrados
257   -
258   -Parametros:
259   -
260   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
261   -
262   -Retorno:
263   -
264   -RSS
265   -*/
266   -function geraXmlWS($locaplic,$output)
267   -{
268   - global $esquemaadmin;
269   - $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'WS' and nome_ws <> ''";
270   - return geraXmlRSS($locaplic,$sql,"Web services",$output);
271   -}
272   -/*
273   -Function: geraXmlKmlrss
274   -
275   -RSS com a lista de KML cadastrados
276   -
277   -Parametros:
278   -
279   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
280   -
281   -Retorno:
282   -
283   -RSS
284   -*/
285   -function geraXmlKmlrss($locaplic)
286   -{
287   - global $esquemaadmin;
288   - $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'KML' and nome_ws <> ''";
289   - return geraXmlRSS($locaplic,$sql,"Web services");
290   -}
291   -/*
292   -Function: geraXmlWMS
293   -
294   -RSS com a lista de WMS cadastrados
295   -
296   -Parametros:
297   -
298   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
299   -
300   -Retorno:
301   -
302   -RSS
303   -*/
304   -function geraXmlWMS($locaplic,$output)
305   -{
306   - global $esquemaadmin;
307   - $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where (tipo_ws = 'WMS' or tipo_ws = 'WMS-Tile') and nome_ws <> '' order by nome_ws";
308   - return geraXmlRSS($locaplic,$sql,"Web services WMS-OGC",$output);
309   -}
310   -/*
311   -Function: geraXmlWMSmetaestat
312   -
313   -RSS com a lista de WMS das variaveis cadastradas no sistema de metadados estatisticos
314   -
315   -Parametros:
316   -
317   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
318   -
319   -Retorno:
320   -
321   -RSS
322   -*/
323   -function geraXmlWMSmetaestat($locaplic)
324   -{
325   - global $esquemaadmin;
326   - $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
327   - $c = "/admin/php/xml.php";
328   - if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){
329   - $c = "\admin\php\xml.php";
330   - }
331   - $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__)));
332   - $sql = "select DISTINCT b.id_medida_variavel as id_ws, 'WMSMETAESTAT' as tipo_ws,'".$url."/ogc.php?id_medida_variavel='||b.id_medida_variavel as link_ws,a.nome||' -> '||b.nomemedida as nome_ws,a.descricao as desc_ws, '' as autor_ws from i3geoestat_variavel as a ,i3geoestat_medida_variavel as b WHERE a.codigo_variavel = b.codigo_variavel ORDER BY a.nome";
333   - return geraXmlRSS($locaplic,$sql,"Web services WMS-TIME OGC");
334   -}
335   -/*
336   -Function: geraXmlGeorss
337   -
338   -RSS com a lista de GEORSS cadastrados
339   -
340   -Parametros:
341   -
342   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
343   -
344   -Retorno:
345   -
346   -RSS
347   -*/
348   -function geraXmlGeorss($locaplic,$output)
349   -{
350   - global $esquemaadmin;
351   - $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'GEORSS' and nome_ws <> ''";
352   - return geraXmlRSS($locaplic,$sql,"Georss",$output);
353   -}
354   -/*
355   -Function: geraRSStemasDownload
356   -
357   -RSS com a lista de temas para download
358   -
359   -Parametros:
360   -
361   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
362   -
363   -Retorno:
364   -
365   -RSS
366   -*/
367   -function geraRSStemasDownload($locaplic)
368   -{
369   - global $esquemaadmin;
370   - $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
371   - $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'].(str_replace("/admin/rsstemasdownload.php","",$_SERVER['PHP_SELF']));
372   - $sql = "select '' as tipo_ws,'".$url."/datadownload.htm?'||codigo_tema as link_ws, g.nome_grupo||' -> '||sg.nome_subgrupo||' -> '||nome_tema as nome_ws, desc_tema as desc_ws, link_tema as autor_ws ";
373   - $sql .= "
374   - from ".$esquemaadmin."i3geoadmin_temas as t,".$esquemaadmin."i3geoadmin_n3 as n3, ".$esquemaadmin."i3geoadmin_n2 as n2, ".$esquemaadmin."i3geoadmin_n1 as n1, ".$esquemaadmin."i3geoadmin_grupos as g, ".$esquemaadmin."i3geoadmin_subgrupos as sg
375   - where
376   - t.id_tema = n3.id_tema
377   - and n3.id_n2 = n2.id_n2
378   - and n2.id_subgrupo = sg.id_subgrupo
379   - and n2.id_n1 = n1.id_n1
380   - and n1.id_grupo = g.id_grupo
381   - and (t.download_tema != 'nao' and t.download_tema != 'NAO')
382   - and t.tipoa_tema != 'WMS'
383   - and n3.n3_perfil = ''
384   - and n2.n2_perfil = ''
385   - and n1.n1_perfil = ''
386   - and n3.publicado != 'NAO'
387   - and n2.publicado != 'NAO'
388   - and n1.publicado != 'NAO'
389   - ";
390   - //echo $sql;exit;
391   - return geraXmlRSS($locaplic,$sql,"Temas para download");
392   -}
393   -/*
394   -Function: geraRSStemasKml
395   -
396   -RSS com a lista de temas que permitem KML
397   -
398   -Parametros:
399   -
400   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
401   -
402   -Retorno:
403   -
404   -RSS
405   -*/
406   -function geraRSStemasKml($locaplic)
407   -{
408   - global $esquemaadmin;
409   - $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
410   - $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'].(str_replace("/admin/rsstemaskml.php","",$_SERVER['PHP_SELF']));
411   - $sql = "select '' as tipo_ws,'".$url."/pacotes/kmlmapserver/kmlservice.php?request=kml&map='||codigo_tema||'&typename='||codigo_tema as link_ws, g.nome_grupo||' -> '||sg.nome_subgrupo||' -> '||nome_tema as nome_ws, desc_tema as desc_ws, link_tema as autor_ws ";
412   - $sql .= "
413   - from ".$esquemaadmin."i3geoadmin_temas as t,".$esquemaadmin."i3geoadmin_n3 as n3, ".$esquemaadmin."i3geoadmin_n2 as n2, ".$esquemaadmin."i3geoadmin_n1 as n1, ".$esquemaadmin."i3geoadmin_grupos as g, ".$esquemaadmin."i3geoadmin_subgrupos as sg
414   - where
415   - t.id_tema = n3.id_tema
416   - and n3.id_n2 = n2.id_n2
417   - and n2.id_subgrupo = sg.id_subgrupo
418   - and n2.id_n1 = n1.id_n1
419   - and n1.id_grupo = g.id_grupo
420   - and (t.kml_tema != 'nao' and t.kml_tema != 'NAO')
421   - and n3.n3_perfil = ''
422   - and n2.n2_perfil = ''
423   - and n1.n1_perfil = ''
424   - and n3.publicado != 'NAO'
425   - and n2.publicado != 'NAO'
426   - and n1.publicado != 'NAO'
427   - ";
428   - //echo $sql;exit;
429   - return geraXmlRSS($locaplic,$sql,"Temas em KML");
430   -}
431   -/*
432   -Function: geraRSStemasOgc
433   -
434   -RSS com a lista de temas que permitem servi&ccedil;os OGC
435   -
436   -Parametros:
437   -
438   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
439   -
440   -Retorno:
441   -
442   -RSS
443   -*/
444   -function geraRSStemasOgc($locaplic)
445   -{
446   - global $esquemaadmin;
447   - $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
448   - $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'].(str_replace("/admin/rsstemasogc.php","",$_SERVER['PHP_SELF']));
449   - $sql = "select '' as tipo_ws,'".$url."/ogc.php?request=getcapabilities&service=wms&tema='||codigo_tema as link_ws, g.nome_grupo||' -> '||sg.nome_subgrupo||' -> '||nome_tema as nome_ws, desc_tema as desc_ws, link_tema as autor_ws ";
450   - $sql .= "
451   - from ".$esquemaadmin."i3geoadmin_temas as t,".$esquemaadmin."i3geoadmin_n3 as n3, ".$esquemaadmin."i3geoadmin_n2 as n2, ".$esquemaadmin."i3geoadmin_n1 as n1, ".$esquemaadmin."i3geoadmin_grupos as g, ".$esquemaadmin."i3geoadmin_subgrupos as sg
452   - where
453   - t.id_tema = n3.id_tema
454   - and n3.id_n2 = n2.id_n2
455   - and n2.id_subgrupo = sg.id_subgrupo
456   - and n2.id_n1 = n1.id_n1
457   - and n1.id_grupo = g.id_grupo
458   - and (t.ogc_tema != 'nao' or t.ogc_tema != 'NAO')
459   - and t.tipoa_tema != 'WMS'
460   - and n3.n3_perfil = ''
461   - and n2.n2_perfil = ''
462   - and n1.n1_perfil = ''
463   - and n3.publicado != 'NAO'
464   - and n2.publicado != 'NAO'
465   - and n1.publicado != 'NAO'
466   - ";
467   - //echo $sql;exit;
468   - return geraXmlRSS($locaplic,$sql,"Temas em KML");
469   -}
470   -/*
471   -Function: geraXmlRSS
472   -
473   -Gera um RSS com base em um SQL compat&iacute;vel com o sistema de administra&ccedil;&atilde;o.
474   -
475   -O SQL dever&aacute; retornar os itens nome_ws desc_ws e link_ws
476   -
477   -Parametros:
478   -
479   -locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
480   -
481   -sql {string} - SQL que ser&aacute; aplicado ao sistema de administra&ccedil;&atilde;o
482   -
483   -descricao {string} - descri&ccedil;&atilde;o que ser&aacute; inserida no canal RSS
484   -
485   -output {string} - xml|json
486   -Retorno:
487   -
488   -RSS
489   -*/
490   -function geraXmlRSS($locaplic,$sql,$descricao,$output="xml")
491   -{
492   - global $esquemaadmin;
493   - if(empty($output)){
494   - $output = "xml";
495   - }
496   - //var_dump($_SERVER);exit;
497   - $dbh = "";
498   - include($locaplic."/admin/php/conexao.php");
499   - if($convUTF){
500   - $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
501   - } else {
502   - $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
503   - }
504   - $xml .= "<rss version='2.0'>";
505   - $xml .= "<channel>\n";
506   - $xml .= "<title>RSS</title>\n";
507   - $xml .= "<description>".str_replace("&","&amp;",$descricao)."</description>\n";
508   - $xml .= "<link></link>\n";
509   - $xml .= "<docs></docs>\n";
510   - $xml .= "<copyright>Gerado pelo i3Geo</copyright>\n";
511   - $xml .= "<language>pt-br</language>\n";
512   - $xml .= "<webmaster></webmaster>\n";
513   - $json = array(
514   - "description"=>$descricao,
515   - "copyright"=>"Gerado pelo i3Geo",
516   - "language"=>"pt-br"
517   - );
518   - $jsonItems = array();
519   - $qatlas = $dbh->query($sql);
520   - foreach($qatlas as $row) {
521   - $xml .= "<item>\n";
522   - $xml .= "<category/>\n";
523   - $xml .= "<title>".entity_decode($row["nome_ws"])."</title>\n";
524   - $xml .= "<description>".xmlTexto_prepara(entity_decode($row["desc_ws"]))."</description>\n";
525   - $link = xmlTexto_prepara($row["link_ws"]);
526   - if(stristr($link, 'http') === FALSE){
527   - $link = "http://".$_SERVER["HTTP_HOST"].dirname($_SERVER["REQUEST_URI"])."/".$link;
528   - }
529   - $xml .= "<link><![CDATA[".$link."]]></link>\n";
530   - $xml .= "<pubDate/>\n";
531   - $xml .= "<author>".xmlTexto_prepara($row["autor_ws"])."</author>\n";
532   - $xml .= "<nacessos></nacessos>\n";
533   - $xml .= "<nacessosok></nacessosok>\n";
534   - $xml .= "<id>".xmlTexto_prepara($row["id_ws"])."</id>\n";
535   - $xml .= "<tipo>".$row["tipo_ws"]."</tipo>\n";
536   - $xml .= "</item>\n";
537   - $jsonItems[] = array(
538   - "title"=>$row["nome_ws"],
539   - "description"=>$row["desc_ws"],
540   - "link"=>$link."&output=json",
541   - "author"=>$row["autor_ws"],
542   - "id"=>$row["id_ws"],
543   - "tipo"=>$row["tipo_ws"]
544   - );
545   - }
546   - $json["items"] = $jsonItems;
547   - $xml .= "</channel></rss>\n";
548   - $dbh = null;
549   - $dbhw = null;
550   - if($output == "xml"){
551   - return $xml;
552   - }
553   - else{
554   - return json_encode($json);
555   - }
556   -}
557   -function geraXmlAtlas($locaplic,$editores)
558   -{
559   - global $esquemaadmin;
560   - //error_reporting(0);
561   - $dbh = "";
562   - include($locaplic."/admin/php/conexao.php");
563   -
564   - if($convUTF)
565   - $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
566   - else
567   - $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
568   - $xml .= "\n<RAIZ>\n";
569   - //$q = "select * from i3geoadmin_atlas";
570   - $qatlas = $dbh->query("select * from ".$esquemaadmin."i3geoadmin_atlas");
571   -
572   - $editor = "nao";//$editor = verificaEditores($editores);
573   - foreach($qatlas as $row)
574   - {
575   - $mostra = true;
576   - if(strtolower($row["publicado_atlas"] == "nao"))
577   - {$mostra = false;}
578   - if($editor)
579   - {$mostra = true;}
580   - if($mostra)
581   - {
582   - $xml .= "<ATLAS>\n";
583   - $xml .= " <ID>".$row["id_atlas"]."</ID>\n";
584   - $xml .= " <PUBLICADO>".$row["publicado_atlas"]."</PUBLICADO>\n";
585   - $xml .= " <TITULO>".xmlTexto_prepara($row["titulo_atlas"])."</TITULO>\n";
586   - $xml .= " <DESCRICAO>".xmlTexto_prepara($row["desc_atlas"])."</DESCRICAO>\n";
587   - $xml .= " <ICONE>".$row["icone_atlas"]."</ICONE>\n";
588   - $xml .= " <LINKMAISINFO><![CDATA[".xmlTexto_prepara($row["link_atlas"])."]]></LINKMAISINFO>\n";
589   - $xml .= " <TEMPLATEHTML>".xmlTexto_prepara($row["template_atlas"])."</TEMPLATEHTML>\n";
590   - $xml .= " <WABERTURA>".$row["w_atlas"]."</WABERTURA>\n";
591   - $xml .= " <HABERTURA>".$row["h_atlas"]."</HABERTURA>\n";
592   - $xml .= " <PRANCHADEFAULT>".$row["pranchadefault_atlas"]."</PRANCHADEFAULT>\n";
593   - $xml .= " <TIPOGUIAS>".$row["tipoguias_atlas"]."</TIPOGUIAS>\n";
594   - $xml .= " <BASEMAPFILE>".$row["basemapfile_atlas"]."</BASEMAPFILE>\n";
595   - $xml .= " <PRANCHAS>\n";
596   - $xml = geraXmlAtlas_pegapranchas($xml,$row["id_atlas"],$dbh);
597   - $xml .= " </PRANCHAS>\n";
598   - $xml .= " </ATLAS>\n";
599   - }
600   - }
601   - $xml .= "</RAIZ>\n";
602   - $dbh = null;
603   - $dbhw = null;
604   - return $xml;
605   -}
606   -function geraXmlIdentifica($perfil,$locaplic,$editores="")
607   -{
608   - global $esquemaadmin;
609   - $editor = "nao";//$editor = verificaEditores($editores);
610   - if (!isset($perfil)){$perfil = "";}
611   - $perfil = str_replace(","," ",$perfil);
612   - $perfil = explode(" ",$perfil);
613   - $dbh = "";
614   - include($locaplic."/admin/php/conexao.php");
615   - if($convUTF)
616   - $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
617   - else
618   - $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
619   - $xml .= "\n<SISTEMAS>\n";
620   - $q = "select * from ".$esquemaadmin."i3geoadmin_identifica ";
621   - $qi = $dbh->query($q);
622   - foreach($qi as $row)
623   - {
624   - $mostra = true;
625   - if(strtolower($row["publicado_i"] == "nao"))
626   - {$mostra = false;}
627   - if($editor)
628   - {$mostra = true;}
629   - if($mostra)
630   - {
631   - $xml .= " <FUNCAO>\n";
632   - $xml .= " <NOMESIS>".xmlTexto_prepara($row["nome_i"])."</NOMESIS>\n";
633   - $xml .= " <ABRIR>".xmlTexto_prepara($row["abrir_i"])."</ABRIR>\n";
634   - $xml .= " <PUBLICADO>".$row["publicado_i"]."</PUBLICADO>\n";
635   - $target = $row["target_i"];
636   - if($target == ""){$target = "_self";}
637   - $xml .= " <TARGET>".$target."</TARGET>\n";
638   - $xml .= " </FUNCAO>\n";
639   - }//error_reporting(0);
640   - }
641   - $xml .= "</SISTEMAS>\n";
642   - $dbh = null;
643   - $dbhw = null;
644   - return $xml;
645   -}
646   -function geraXmlMapas($perfil,$locaplic,$editores)
647   -{
648   - global $esquemaadmin;
649   - if (!isset($perfil)){$perfil = "";}
650   - $perfil = str_replace(","," ",$perfil);
651   - $perfil = explode(" ",$perfil);
652   - $dbh = "";
653   - include($locaplic."/admin/php/conexao.php");
654   - if($convUTF)
655   - $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
656   - else
657   - $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
658   - $xml .= "\n<MAPAS>\n";
659   - $q = "select * from ".$esquemaadmin."i3geoadmin_mapas";
660   - $q = $dbh->query($q);
661   - $editor = "nao";//$editor = "nao";//verificaEditores($editores);
662   - $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
663   - $c = "/admin/php/xml.php";
664   - if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){
665   - $c = "\admin\php\xml.php";
666   - }
667   - $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__)));
668   - foreach($q as $row)
669   - {
670   - $mostraMapa = false;
671   - if($row["perfil_mapa"] == "")
672   - {$mostraMapa = true;}
673   - else
674   - {
675   - $perfilMapa = explode(" ",str_replace(","," ",$row["perfil_mapa"]));
676   - $mostraMapa = array_in_array($perfil,$perfilMapa);
677   - }
678   - if(strtolower($row["publicado_mapa"] == "nao"))
679   - {$mostraMapa = false;}
680   - if($editor)
681   - {$mostraMapa = true;}
682   -
683   - if($mostraMapa)
684   - {
685   - $xml .= "<MAPA>\n";
686   - $perfil = $row["perfil_mapa"];
687   - $xml .= " <PERFIL>".$perfil."</PERFIL>\n";
688   - $xml .= " <NOME>".xmlTexto_prepara($row["nome_mapa"])."</NOME>\n";
689   - $xml .= " <DESCRICAO>".xmlTexto_prepara($row["desc_mapa"])."</DESCRICAO>\n";
690   - $xml .= " <IMAGEM>".xmlTexto_prepara($row["imagem_mapa"])."</IMAGEM>\n";
691   - $xml .= " <TEMAS>".$row["temas_mapa"]."</TEMAS>\n";
692   - $xml .= " <LIGADOS>".$row["ligados_mapa"]."</LIGADOS>\n";
693   - $extensao = $row["ext_mapa"];
694   - $xml .= " <EXTENSAO>".$extensao."</EXTENSAO>\n";
695   - $outros = xmlTexto_prepara($row["outros_mapa"]);
696   - $xml .= " <OUTROS><![CDATA[".$outros."]]></OUTROS>\n";
697   - $linkdireto = xmlTexto_prepara($row["linkdireto_mapa"]);
698   - if(empty($linkdireto)){
699   - $linkdireto = $url."/ms_criamapa.php?mapext=".$extensao."&perfil=".$perfil."&temasa=".$temas."&layers=".$ligados.$row["outros_mapa"];
700   - $linkdireto = xmlTexto_prepara($linkdireto);
701   - }
702   - $xml .= " <LINKDIRETO><![CDATA[".$linkdireto."]]></LINKDIRETO>\n";
703   - $xml .= " <PUBLICADO>".$row["publicado_mapa"]."</PUBLICADO>\n";
704   - $xml .= " <ID_MAPA>".$row["id_mapa"]."</ID_MAPA>\n";
705   - if($row["mapfile"] != ""){
706   - $xml .= " <CONTEMMAPFILE>sim</CONTEMMAPFILE>\n";
707   - }
708   - else{
709   - $xml .= " <CONTEMMAPFILE>nao</CONTEMMAPFILE>\n";
710   - }
711   - $xml .= "</MAPA>\n";
712   - }
713   - }
714   - $xml .= "</MAPAS>\n";
715   - $dbh = null;
716   - $dbhw = null;
717   - return $xml;
718   -}
719   -//mostra apenas os mapas que possuem outros_mapa definido, o que e tipico do sistema de metadados estatisticos
720   -function geraRSSmapas($locaplic,$output)
721   -{
722   - global $esquemaadmin;
723   - $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
724   - $c = "/admin/php/xml.php";
725   - if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){
726   - $c = "\admin\php\xml.php";
727   - }
728   - $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__)));
729   - $descricao = "'<![CDATA[Outros links<br>";
730   - $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||'&fundo=e_wsm >Openlayers 1</a><br><br>";
731   - $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||'&fundo= >Openlayers 2</a><br><br>";
732   - $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||'&fundo=e_wsm&botoes=legenda pan zoombox zoomtot zoomin zoomout distancia area identifica >Openlayers 3</a><br><br>";
733   - $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||' >Openlayers 4</a><br><br>";
734   - $descricao .= "<img src=$url/ferramentas/salvamapa/geraminiatura.php?w=300&h=300&restauramapa='||id_mapa||' >]]>'";
735   - $sql = "select '' as tipo_ws,'".$url."/ms_criamapa.php?restauramapa='||id_mapa as link_ws, nome_mapa as nome_ws, ".$descricao." as desc_ws, '' as autor_ws from ".$esquemaadmin."i3geoadmin_mapas WHERE publicado_mapa = 'sim' AND mapfile != ''";
736   - //echo $sql;exit;
737   - return geraXmlRSS($locaplic,$sql,"Mapas cadastrados",$output);
738   -}
739   -
740   -//
741   -//$id_menu = id do menu que ser&aacute; montado
742   -//$perfil = perfis separados por espa&ccedil;os
743   -//$tipo = gruposeraiz|subgrupos|temas
744   -//$dbh objeto com a conex&atilde;o com o banco
745   -//$locaplic = localiza&ccedil;&atilde;o do i3geo no servidor
746   -//
747   -function geraXmlMenutemas($perfil,$id_menu,$tipo,$locaplic)
748   -{
749   - global $esquemaadmin;
750   - xml_testaNum([$id_menu]);
751   - $dbh = "";
752   - include($locaplic."/admin/php/conexao.php");
753   - if (!isset($perfil)){$perfil = "";}
754   - $perfil = str_replace(","," ",$perfil);
755   - $perfil = explode(" ",$perfil);
756   - if($convUTF)
757   - $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
758   - else
759   - $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
760   - $xml .= "\n<TEMASGEO>\n";
761   - if(!isset($id_menu))
762   - $xml .= "<CABECALHO>Utilize ?id_menu=1 por exemplo</CABECALHO>\n";
763   - else
764   - $xml .= "<CABECALHO></CABECALHO>\n";
765   - //
766   - //pega os temas na raiz
767   - //
768   - $q = "select nome_tema,codigo_tema,desc_tema,link_tema,tipoa_tema,tags_tema,kml_tema,ogc_tema,download_tema,r.perfil as perfil from ".$esquemaadmin."i3geoadmin_raiz as r,".$esquemaadmin."i3geoadmin_temas as temas where r.id_nivel = 0 and r.id_tema = temas.id_tema and r.id_menu = $id_menu ";
769   - $qtemasraiz = $dbh->query($q);
770   - $xml = geraXmlMenutemas_notema($qtemasraiz,$xml,$perfil);
771   - $q = "select nome_grupo,desc_grupo,n1.id_grupo,n1.id_n1,n1.n1_perfil as perfil from ".$esquemaadmin."i3geoadmin_n1 as n1,".$esquemaadmin."i3geoadmin_grupos as grupos where n1.id_menu = $id_menu and n1.id_grupo = grupos.id_grupo ";
772   - $qgrupos = $dbh->query($q);
773   - foreach($qgrupos as $row)
774   - {
775   - //filtra pelo perfil
776   - if($row["perfil"] == "")
777   - {$mostra = true;}
778   - else
779   - {
780   - $perfilatual = explode(" ",str_replace(","," ",$row["perfil"]));
781   - $mostra = array_in_array($perfil,$perfilatual);
782   - }
783   - if($mostra)
784   - {
785   - $xml .= "<GRUPO>\n";
786   - $xml .= " <GTIPO>".xmlTexto_prepara($row["nome_grupo"])."</GTIPO>\n";
787   - //
788   - //pega temas na raiz
789   - //
790   - $q = "select nome_tema,codigo_tema,desc_tema,link_tema,tipoa_tema,tags_tema,kml_tema,ogc_tema,download_tema,r.perfil as perfil from ".$esquemaadmin."i3geoadmin_raiz as r,".$esquemaadmin."i3geoadmin_temas as temas where r.nivel = 1 and r.id_nivel = ".$row["id_n1"]." and r.id_tema = temas.id_tema and r.id_menu = $id_menu ";
791   - $qtemasraiz = $dbh->query($q);
792   - $xml = geraXmlMenutemas_notema($qtemasraiz,$xml,$perfil);
793   - if(isset($tipo) && ($tipo == "subgrupos") || ($tipo == ""))
794   - $xml = geraXmlMenutemas_pegasubgrupos($row["id_n1"],$xml,$dbh,$tipo,$perfil);
795   - $xml .= " <DTIPO>".xmlTexto_prepara($row["desc_grupo"])."</DTIPO>\n";
796   - $xml .= " <PERFIL>".$row["perfil"]."</PERFIL>\n";
797   - $xml .= "</GRUPO>\n";
798   - }
799   - }
800   - $xml .= "</TEMASGEO>\n";
801   - $dbh = null;
802   - $dbhw = null;
803   - return $xml;
804   -}
805   -function geraXmlMenutemas_pegasubgrupos($id_n1,$xml,$dbh,$tipo,$perfil)
806   -{
807   - global $esquemaadmin;
808   - xml_testaNum([$id_n1]);
809   - $q = "select subgrupos.id_subgrupo,nome_subgrupo,id_n2,n2.n2_perfil as perfil from ".$esquemaadmin."i3geoadmin_n2 as n2,".$esquemaadmin."i3geoadmin_subgrupos as subgrupos where n2.id_n1 = $id_n1 and n2.id_subgrupo = subgrupos.id_subgrupo ";
810   - //echo $q;exit;
811   - $qsgrupos = $dbh->query($q);
812   - foreach($qsgrupos as $row)
813   - {
814   - if($row["perfil"] == "")
815   - $mostra = true;
816   - else
817   - {
818   - $perfilatual = explode(" ",str_replace(","," ",$row["perfil"]));
819   - $mostra = array_in_array($perfil,$perfilatual);
820   - }
821   - if($mostra)
822   - {
823   - $xml .= "<SGRUPO>\n";
824   - $xml .= "<SDTIPO>".xmlTexto_prepara($row["nome_subgrupo"])."</SDTIPO>\n";
825   - $xml .= "<PERFIL>".xmlTexto_prepara($row["perfil"])."</PERFIL>\n";
826   - if(isset($tipo) && ($tipo == "temas") || ($tipo == ""))
827   - $xml = geraXmlMenutemas_pegatemas($row["id_n2"],$xml,$dbh,$perfil);
828   - $xml .= "</SGRUPO>\n";
829   - }
830   - }
831   - return $xml;
832   -}
833   -function geraXmlMenutemas_pegatemas($id_n2,$xml,$dbh,$perfil)
834   -{
835   - global $esquemaadmin;
836   - xml_testaNum([$id_n2]);
837   - $q = "select nome_tema,codigo_tema,desc_tema,link_tema,tipoa_tema,tags_tema,kml_tema,ogc_tema,download_tema,n3.n3_perfil as perfil from ".$esquemaadmin."i3geoadmin_n3 as n3,".$esquemaadmin."i3geoadmin_temas as temas where n3.id_n2 = $id_n2 and n3.id_tema = temas.id_tema ";
838   - $qtemas = $dbh->query($q);
839   - $xml = geraXmlMenutemas_notema($qtemas,$xml,$perfil);
840   - return $xml;
841   -}
842   -function geraXmlMenutemas_notema($qtemas,$xml,$perfil)
843   -{
844   - global $esquemaadmin;
845   - foreach($qtemas as $row)
846   - {
847   - if($row["perfil"] == "")
848   - {$mostra = true;}
849   - else
850   - {
851   - $perfilatual = explode(" ",str_replace(","," ",$row["perfil"]));
852   - $mostra = array_in_array($perfil,$perfilatual);
853   - }
854   - if($mostra)
855   - {
856   - $xml .= "<TEMA>\n";
857   - $xml .= "<TID>".$row["codigo_tema"]."</TID>\n";
858   - $xml .= "<PERFIL>".$row["perfil"]."</PERFIL>\n";
859   - $xml .= "<TNOME>".xmlTexto_prepara($row["nome_tema"])."</TNOME>\n";
860   - $xml .= "<TDESC>".xmlTexto_prepara($row["desc_tema"])."</TDESC>\n";
861   - $xml .= "<TLINK><![CDATA[".xmlTexto_prepara($row["link_tema"])."]]></TLINK>\n";
862   - $xml .= "<TIPOA>".$row["tipoa_tema"]."</TIPOA>\n";
863   - $xml .= "<TAGS>".xmlTexto_prepara($row["tags_tema"])."</TAGS>\n";
864   - $xml .= "<KML>".$row["kml_tema"]."</KML>\n";
865   - if($row["tipoa_tema"] == "WMS")
866   - {$xml .= "<OGC>nao</OGC>\n";}
867   - else
868   - {$xml .= "<OGC>".$row["ogc_tema"]."</OGC>\n";}
869   - $xml .= "<DOWNLOAD>".$row["download_tema"]."</DOWNLOAD>\n";
870   - $xml .= "<NACESSOS></NACESSOS>\n";
871   - $xml .= "</TEMA>\n";
872   - }
873   - }
874   - return $xml;
875   -}
876   -function geraXmlAtlas_pegapranchas($xml,$id_atlas,$dbh)
877   -{
878   - global $esquemaadmin;
879   - xml_testaNum([$id_atlas]);
880   - $q = "select * from ".$esquemaadmin."i3geoadmin_atlasp as p where p.id_atlas = $id_atlas order by ordem_prancha";
881   - $qpranchas = $dbh->query($q);
882   - foreach($qpranchas as $row)
883   - {
884   - $xml .= " <PRANCHA>\n";
885   - $xml .= " <ID>".$row["id_prancha"]."</ID>\n";
886   - $xml .= " <TITULO>".xmlTexto_prepara($row["titulo_prancha"])."</TITULO>\n";
887   - $xml .= " <DESCRICAO>".xmlTexto_prepara($row["desc_prancha"])."</DESCRICAO>\n";
888   - $xml .= " <ICONE>".$row["icone_prancha"]."</ICONE>\n";
889   - $xml .= " <LINKMAISINFO><![CDATA[".xmlTexto_prepara($row["link_prancha"])."]]></LINKMAISINFO>\n";
890   - $xml .= " <WABERTURA>".$row["w_prancha"]."</WABERTURA>\n";
891   - $xml .= " <HABERTURA>".$row["h_prancha"]."</HABERTURA>\n";
892   - $xml .= " <MAPEXT>".$row["mapext_prancha"]."</MAPEXT>\n";
893   - $xml .= " <TEMAS>\n";
894   - $xml = geraXmlAtlas_pegatemas($xml,$row["id_prancha"],$dbh);
895   - $xml .= " </TEMAS>\n";
896   - $xml .= " </PRANCHA>\n";
897   - }
898   - return $xml;
899   -}
900   -function geraXmlAtlas_pegatemas($xml,$id_prancha,$dbh)
901   -{
902   - global $esquemaadmin;
903   - xml_testaNum([$id_prancha]);
904   - $q = "select t.codigo_tema,t.ligado_tema from ".$esquemaadmin."i3geoadmin_atlast as t where t.id_prancha = '$id_prancha' order by ordem_tema";
905   - //echo $q;
906   - $qtemas = $dbh->query($q);
907   - foreach($qtemas as $row)
908   - {
909   - $xml .= "<TEMA>\n";
910   - $xml .= "<CODIGO>".$row["codigo_tema"]."</CODIGO>\n";
911   - $xml .= "<LIGADO>".$row["ligado_tema"]."</LIGADO>\n";
912   - $xml .= "</TEMA>\n";
913   - }
914   - return $xml;
915   -}
916   -function geraXmlSistemas_pegafuncoes($perfil,$xml,$id_sistema,$dbh)
917   -{
918   - global $esquemaadmin;
919   - xml_testaNum([$id_sistema]);
920   - $q = "select * from ".$esquemaadmin."i3geoadmin_sistemasf where id_sistema = '$id_sistema'";
921   - $qtemas = $dbh->query($q);
922   - foreach($qtemas as $row)
923   - {
924   - if($row["perfil_funcao"] == "")
925   - $mostra = true;
926   - else
927   - {
928   - $perfilF = explode(" ",str_replace(","," ",$row["perfil_funcao"]));
929   - $mostra = array_in_array($perfil,$perfilF);
930   - }
931   - if($mostra)
932   - {
933   - $xml .= "<FUNCAO>\n";
934   - $xml .= " <NOMEFUNCAO>".xmlTexto_prepara($row["nome_funcao"])."</NOMEFUNCAO>\n";
935   - $xml .= " <ABRIR>".xmlTexto_prepara($row["abrir_funcao"])."</ABRIR>\n";
936   - $xml .= " <JANELAW>".$row["w_funcao"]."</JANELAW>\n";
937   - $xml .= " <JANELAH>".$row["h_funcao"]."</JANELAH>\n";
938   - $xml .= " <PERFIL>".$row["perfil_funcao"]."</PERFIL>\n";
939   - $xml .= "</FUNCAO>\n";
940   - }
941   - }
942   - return $xml;
943   -}
944   -function array_in_array($needle, $haystack)
945   -{
946   - //Make sure $needle is an array for foreach
947   - if(!is_array($needle)) $needle = array($needle);
948   - //For each value in $needle, return TRUE if in $haystack
949   - foreach($needle as $pin)
950   - if(in_array($pin, $haystack)) return TRUE;
951   - //Return FALSE if none of the values from $needle are found in $haystack
952   - return FALSE;
953   -}
954   -function xmlTexto_prepara($texto)
955   -{
956   - return str_replace("&","&amp;",$texto);
957   -}
958   -function entity_decode($texto)
959   -{
960   - return html_entity_decode($texto);
961   -}
962   -function xml_testaNum($valores){
963   - foreach ($valores as $valor) {
964   - if(!empty($valor) && !is_numeric($valor)) {
965   - ob_clean();
966   - header ( "HTTP/1.1 403 valor nao numerico" );
967   - exit;
968   - }
969   - }
970   -}
971   -?>
admin/php/xxxxml.php 0 → 100755
... ... @@ -0,0 +1,972 @@
  1 +<?php
  2 +exit;
  3 +/*
  4 +Title: xml.php
  5 +
  6 +Conjunto de fun&ccedil;&otilde;es que geram arquivos na estrutura XML conforme os dados cadastrados no sistema de administra&ccedil;&atilde;o.
  7 +
  8 +Permite a gera&ccedil;&atilde;o de XML no padr&atilde;o RSS e outros. &Eacute; utilizado por fun&ccedil;&otilde;es internas do i3Geo e por programas
  9 +utilit&aacute;rios que fornecem dados no formato RSS para outros fins.
  10 +
  11 +Licenca:
  12 +
  13 +GPL2
  14 +
  15 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  16 +
  17 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  18 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  19 +
  20 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  21 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  22 +GNU conforme publicada pela Free Software Foundation;
  23 +
  24 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  25 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  26 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  27 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  28 +Voc&ecirc; deve ter recebido uma copia da Licen&ccedil;a P&uacute;blica Geral do
  29 +GNU junto com este programa; se n&atilde;o, escreva para a
  30 +Free Software Foundation, Inc., no endere&ccedil;o
  31 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  32 +
  33 +Arquivo:
  34 +
  35 +i3geo/admin/php/xml.php
  36 +*/
  37 +//
  38 +//processa a vari&aacute;vel $esquemaadmin definida em ms_configura.php
  39 +//essa vari&aacute;vel precisa ter um . no final quando n&atilde;o for vazia, evitando erros na inclus&atilde;o dentro dos SQLs
  40 +//
  41 +
  42 +if (!isset($esquemaadmin)){
  43 + include_once(dirname(__FILE__)."/../../ms_configura.php");
  44 +}
  45 +if(!empty($esquemaadmin)){
  46 + $esquemaadmin = str_replace(".","",$esquemaadmin).".";
  47 +}
  48 +
  49 +/*
  50 +Function: geraXmlSistemas (depreciado)
  51 +
  52 +Parametros:
  53 +
  54 +perfil {string} - perfil que ser&aacute; considerado na gera&ccedil;&atilde;o do XML
  55 +
  56 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  57 +
  58 +editores {array} - lista de editores cadastrados em ms_configura.php
  59 +
  60 +Retorno:
  61 +
  62 +String na estrutura XML
  63 +*/
  64 +function geraXmlSistemas($perfil="",$locaplic="",$editores="")
  65 +{
  66 + global $esquemaadmin;
  67 + if(empty($locaplic)){
  68 + return;
  69 + }
  70 + $editor = "nao";//verificaEditores($editores);
  71 + if (!isset($perfil)){$perfil = "";}
  72 + $perfil = str_replace(","," ",$perfil);
  73 + $perfil = explode(" ",$perfil);
  74 + $dbh = "";
  75 + include($locaplic."/admin/php/conexao.php");
  76 + if($convUTF)
  77 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  78 + else
  79 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  80 + $xml .= "\n<SISTEMAS>\n";
  81 + $q = "select * from ".$esquemaadmin."i3geoadmin_sistemas";
  82 + $qatlas = $dbh->query($q);
  83 + foreach($qatlas as $row)
  84 + {
  85 + if($row["perfil_sistema"] == "")
  86 + $mostra = true;
  87 + else
  88 + {
  89 + $perfilS = explode(" ",str_replace(","," ",$row["perfil_sistema"]));
  90 + $mostra = array_in_array($perfil,$perfilS);
  91 + }
  92 + if(strtolower($row["publicado_sistema"] == "nao"))
  93 + {$mostra = false;}
  94 + if($editor)
  95 + {$mostra = true;}
  96 + if($mostra)
  97 + {
  98 + $xml .= "<SISTEMA>\n";
  99 + $xml .= " <PERFIL>".$row["perfil_sistema"]."</PERFIL>\n";
  100 + $xml .= " <PUBLICADO>".$row["publicado_sistema"]."</PUBLICADO>\n";
  101 + $xml .= " <NOMESIS>".xmlTexto_prepara($row["nome_sistema"])."</NOMESIS>\n";
  102 + $xml = geraXmlSistemas_pegafuncoes($perfil,$xml,$row["id_sistema"],$dbh);
  103 + $xml .= "</SISTEMA>\n";
  104 + }
  105 + }
  106 + $xml .= "</SISTEMAS>\n";
  107 + $dbh = null;
  108 + $dbhw = null;
  109 + return $xml;
  110 +}
  111 +/*
  112 +Function: geraRSScomentariosTemas
  113 +
  114 +RSS com os comentarios sobre um ou todos os temas
  115 +
  116 +Parametros:
  117 +
  118 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  119 +
  120 +id_tema {numeric} - (opcional) id do tema para mostrar apenas os coment&aacute;rios de um tema
  121 +
  122 +Retorno:
  123 +
  124 +RSS
  125 +*/
  126 +function geraRSScomentariosTemas($locaplic,$id_tema=""){
  127 + global $esquemaadmin;
  128 + xml_testaNum([$id_tema]);
  129 + $sql = "select '' as tipo_ws, b.nome_tema||' '||a.data as nome_ws,a.openidnome||' '||a.openidurl||' &lt;br&gt;'||a.comentario as desc_ws, a.openidnome as autor_ws, b.link_tema as link_ws from ".$esquemaadmin."i3geoadmin_comentarios as a,".$esquemaadmin."i3geoadmin_temas as b where a.id_tema = b.id_tema ";
  130 + if($id_tema != ""){
  131 + $sql .= " and a.id_tema = $id_tema ";
  132 + }
  133 + return geraXmlRSS($locaplic,$sql,"Lista de comentarios");
  134 +}
  135 +/*
  136 +Function: geraRSStemas
  137 +
  138 +RSS com os temas cadastrados
  139 +
  140 +Parametros:
  141 +
  142 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  143 +
  144 +id_n2 {string} - c�digo do subgrupo do sistema de administra&ccedil;&atilde;o
  145 +
  146 +Retorno:
  147 +
  148 +RSS
  149 +*/
  150 +function geraRSStemas($locaplic,$id_n2,$output="xml")
  151 +{
  152 + global $esquemaadmin;
  153 + xml_testaNum([$id_n2]);
  154 + $sql = "
  155 + select '' as tipo_ws, i3geoadmin_temas.codigo_tema as id_ws,i3geoadmin_temas.nome_tema as nome_ws,'' as desc_ws,'php/parsemapfile.php?id='||i3geoadmin_temas.codigo_tema as link_ws,i3geoadmin_temas.link_tema as autor_ws
  156 + from ".$esquemaadmin."i3geoadmin_n3 as n3
  157 + LEFT JOIN ".$esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = n3.id_tema
  158 + LEFT JOIN ".$esquemaadmin."i3geousr_grupotema ON n3.id_tema = i3geousr_grupotema.id_tema
  159 + where i3geousr_grupotema.id_grupo is null and i3geoadmin_temas.id_tema = n3.id_tema and n3.id_n2 = '$id_n2' and n3.n3_perfil = '' and n3.publicado != 'NAO' order by nome_ws";
  160 + return geraXmlRSS($locaplic,$sql,"Lista de temas",$output);
  161 +}
  162 +/*
  163 +Function: geraRSStemasRaiz
  164 +
  165 +RSS com os temas localizados na raiz de um n&iacute;vel
  166 +
  167 +Parametros:
  168 +
  169 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  170 +
  171 +id {string} - codigo do no
  172 +
  173 +nivel {string} - n&iacute;vel do no
  174 +
  175 +Retorno:
  176 +
  177 +RSS
  178 +*/
  179 +function geraRSStemasRaiz($locaplic,$id,$nivel)
  180 +{
  181 + global $esquemaadmin;
  182 + xml_testaNum([$id,$nivel]);
  183 + $sql = "
  184 + select '' as tipo_ws, i3geoadmin_temas.codigo_tema as id_ws,i3geoadmin_temas.nome_tema as nome_ws,'' as desc_ws,'php/parsemapfile.php?id='||i3geoadmin_temas.codigo_tema as link_ws,i3geoadmin_temas.link_tema as autor_ws
  185 + from ".$esquemaadmin."i3geoadmin_raiz as r
  186 + LEFT JOIN ".$esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = r.id_tema
  187 + LEFT JOIN ".$esquemaadmin."i3geousr_grupotema ON r.id_tema = i3geousr_grupotema.id_tema
  188 + where i3geousr_grupotema.id_grupo is null and i3geoadmin_temas.id_tema = r.id_tema and r.nivel = '$nivel' and r.id_nivel = '$id' order by nome_ws";
  189 + return geraXmlRSS($locaplic,$sql,"Temas na raiz");
  190 +}
  191 +/*
  192 +Function: geraRSSsubgrupos
  193 +
  194 +RSS com os subgrupos cadastrados
  195 +
  196 +Parametros:
  197 +
  198 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  199 +
  200 +id_n1 {string} - c�digo do grupo do sistema de administra&ccedil;&atilde;o
  201 +
  202 +Retorno:
  203 +
  204 +RSS
  205 +*/
  206 +function geraRSSsubgrupos($locaplic,$id_n1,$output="json")
  207 +{
  208 + global $esquemaadmin;
  209 + xml_testaNum([$id_n1]);
  210 + $sql = "select '' as tipo_ws, n2.id_n2 as id_ws,g.nome_subgrupo as nome_ws,'' as desc_ws,'rsstemas.php?id='||n2.id_n2 as link_ws,'' as autor_ws from ".$esquemaadmin."i3geoadmin_n2 as n2,".$esquemaadmin."i3geoadmin_subgrupos as g ";
  211 + $sql .= " where g.id_subgrupo = n2.id_subgrupo and n2.id_n1 = '$id_n1' and n2.n2_perfil = '' and n2.publicado != 'NAO' order by nome_ws";
  212 + return geraXmlRSS($locaplic,$sql,"Lista de sub-grupos",$output);
  213 +}
  214 +/*
  215 +Function: geraRSSgrupos
  216 +
  217 +RSS com os grupos cadastrados
  218 +
  219 +Parametros:
  220 +
  221 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  222 +
  223 +Retorno:
  224 +
  225 +RSS
  226 +*/
  227 +function geraRSSgrupos($locaplic,$output="xml")
  228 +{
  229 + global $esquemaadmin;
  230 + $sql = "select '' as tipo_ws, n1.id_n1 as id_ws, g.nome_grupo as nome_ws,'rsstemasraiz.php?nivel=1&id='||n1.id_n1 as desc_ws,'rsssubgrupos.php?id='||n1.id_n1 as link_ws,'' as autor_ws ";
  231 + $sql .= "from ".$esquemaadmin."i3geoadmin_n1 as n1,".$esquemaadmin."i3geoadmin_grupos as g ";
  232 + $sql .= "where g.id_grupo = n1.id_grupo and n1.n1_perfil = '' and n1.publicado != 'NAO' group by id_ws,tipo_ws,nome_ws,desc_ws,link_ws,autor_ws order by nome_ws";
  233 + return geraXmlRSS($locaplic,$sql,"Lista de grupos",$output);
  234 +}
  235 +/*
  236 +Function: geraXmlDownload
  237 +
  238 +RSS com os links para sistemas de download
  239 +
  240 +Parametros:
  241 +
  242 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  243 +
  244 +Retorno:
  245 +
  246 +RSS
  247 +*/
  248 +function geraXmlDownload($locaplic)
  249 +{
  250 + global $esquemaadmin;
  251 + $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'DOWNLOAD' and nome_ws <> ''";
  252 + return geraXmlRSS($locaplic,$sql,"Enderecos para download");
  253 +}
  254 +/*
  255 +Function: geraXmlWS
  256 +
  257 +RSS com a lista de WS cadastrados
  258 +
  259 +Parametros:
  260 +
  261 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  262 +
  263 +Retorno:
  264 +
  265 +RSS
  266 +*/
  267 +function geraXmlWS($locaplic,$output)
  268 +{
  269 + global $esquemaadmin;
  270 + $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'WS' and nome_ws <> ''";
  271 + return geraXmlRSS($locaplic,$sql,"Web services",$output);
  272 +}
  273 +/*
  274 +Function: geraXmlKmlrss
  275 +
  276 +RSS com a lista de KML cadastrados
  277 +
  278 +Parametros:
  279 +
  280 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  281 +
  282 +Retorno:
  283 +
  284 +RSS
  285 +*/
  286 +function geraXmlKmlrss($locaplic)
  287 +{
  288 + global $esquemaadmin;
  289 + $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'KML' and nome_ws <> ''";
  290 + return geraXmlRSS($locaplic,$sql,"Web services");
  291 +}
  292 +/*
  293 +Function: geraXmlWMS
  294 +
  295 +RSS com a lista de WMS cadastrados
  296 +
  297 +Parametros:
  298 +
  299 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  300 +
  301 +Retorno:
  302 +
  303 +RSS
  304 +*/
  305 +function geraXmlWMS($locaplic,$output)
  306 +{
  307 + global $esquemaadmin;
  308 + $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where (tipo_ws = 'WMS' or tipo_ws = 'WMS-Tile') and nome_ws <> '' order by nome_ws";
  309 + return geraXmlRSS($locaplic,$sql,"Web services WMS-OGC",$output);
  310 +}
  311 +/*
  312 +Function: geraXmlWMSmetaestat
  313 +
  314 +RSS com a lista de WMS das variaveis cadastradas no sistema de metadados estatisticos
  315 +
  316 +Parametros:
  317 +
  318 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  319 +
  320 +Retorno:
  321 +
  322 +RSS
  323 +*/
  324 +function geraXmlWMSmetaestat($locaplic)
  325 +{
  326 + global $esquemaadmin;
  327 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  328 + $c = "/admin/php/xml.php";
  329 + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){
  330 + $c = "\admin\php\xml.php";
  331 + }
  332 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__)));
  333 + $sql = "select DISTINCT b.id_medida_variavel as id_ws, 'WMSMETAESTAT' as tipo_ws,'".$url."/ogc.php?id_medida_variavel='||b.id_medida_variavel as link_ws,a.nome||' -> '||b.nomemedida as nome_ws,a.descricao as desc_ws, '' as autor_ws from i3geoestat_variavel as a ,i3geoestat_medida_variavel as b WHERE a.codigo_variavel = b.codigo_variavel ORDER BY a.nome";
  334 + return geraXmlRSS($locaplic,$sql,"Web services WMS-TIME OGC");
  335 +}
  336 +/*
  337 +Function: geraXmlGeorss
  338 +
  339 +RSS com a lista de GEORSS cadastrados
  340 +
  341 +Parametros:
  342 +
  343 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  344 +
  345 +Retorno:
  346 +
  347 +RSS
  348 +*/
  349 +function geraXmlGeorss($locaplic,$output)
  350 +{
  351 + global $esquemaadmin;
  352 + $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'GEORSS' and nome_ws <> ''";
  353 + return geraXmlRSS($locaplic,$sql,"Georss",$output);
  354 +}
  355 +/*
  356 +Function: geraRSStemasDownload
  357 +
  358 +RSS com a lista de temas para download
  359 +
  360 +Parametros:
  361 +
  362 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  363 +
  364 +Retorno:
  365 +
  366 +RSS
  367 +*/
  368 +function geraRSStemasDownload($locaplic)
  369 +{
  370 + global $esquemaadmin;
  371 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  372 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'].(str_replace("/admin/rsstemasdownload.php","",$_SERVER['PHP_SELF']));
  373 + $sql = "select '' as tipo_ws,'".$url."/datadownload.htm?'||codigo_tema as link_ws, g.nome_grupo||' -> '||sg.nome_subgrupo||' -> '||nome_tema as nome_ws, desc_tema as desc_ws, link_tema as autor_ws ";
  374 + $sql .= "
  375 + from ".$esquemaadmin."i3geoadmin_temas as t,".$esquemaadmin."i3geoadmin_n3 as n3, ".$esquemaadmin."i3geoadmin_n2 as n2, ".$esquemaadmin."i3geoadmin_n1 as n1, ".$esquemaadmin."i3geoadmin_grupos as g, ".$esquemaadmin."i3geoadmin_subgrupos as sg
  376 + where
  377 + t.id_tema = n3.id_tema
  378 + and n3.id_n2 = n2.id_n2
  379 + and n2.id_subgrupo = sg.id_subgrupo
  380 + and n2.id_n1 = n1.id_n1
  381 + and n1.id_grupo = g.id_grupo
  382 + and (t.download_tema != 'nao' and t.download_tema != 'NAO')
  383 + and t.tipoa_tema != 'WMS'
  384 + and n3.n3_perfil = ''
  385 + and n2.n2_perfil = ''
  386 + and n1.n1_perfil = ''
  387 + and n3.publicado != 'NAO'
  388 + and n2.publicado != 'NAO'
  389 + and n1.publicado != 'NAO'
  390 + ";
  391 + //echo $sql;exit;
  392 + return geraXmlRSS($locaplic,$sql,"Temas para download");
  393 +}
  394 +/*
  395 +Function: geraRSStemasKml
  396 +
  397 +RSS com a lista de temas que permitem KML
  398 +
  399 +Parametros:
  400 +
  401 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  402 +
  403 +Retorno:
  404 +
  405 +RSS
  406 +*/
  407 +function geraRSStemasKml($locaplic)
  408 +{
  409 + global $esquemaadmin;
  410 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  411 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'].(str_replace("/admin/rsstemaskml.php","",$_SERVER['PHP_SELF']));
  412 + $sql = "select '' as tipo_ws,'".$url."/pacotes/kmlmapserver/kmlservice.php?request=kml&map='||codigo_tema||'&typename='||codigo_tema as link_ws, g.nome_grupo||' -> '||sg.nome_subgrupo||' -> '||nome_tema as nome_ws, desc_tema as desc_ws, link_tema as autor_ws ";
  413 + $sql .= "
  414 + from ".$esquemaadmin."i3geoadmin_temas as t,".$esquemaadmin."i3geoadmin_n3 as n3, ".$esquemaadmin."i3geoadmin_n2 as n2, ".$esquemaadmin."i3geoadmin_n1 as n1, ".$esquemaadmin."i3geoadmin_grupos as g, ".$esquemaadmin."i3geoadmin_subgrupos as sg
  415 + where
  416 + t.id_tema = n3.id_tema
  417 + and n3.id_n2 = n2.id_n2
  418 + and n2.id_subgrupo = sg.id_subgrupo
  419 + and n2.id_n1 = n1.id_n1
  420 + and n1.id_grupo = g.id_grupo
  421 + and (t.kml_tema != 'nao' and t.kml_tema != 'NAO')
  422 + and n3.n3_perfil = ''
  423 + and n2.n2_perfil = ''
  424 + and n1.n1_perfil = ''
  425 + and n3.publicado != 'NAO'
  426 + and n2.publicado != 'NAO'
  427 + and n1.publicado != 'NAO'
  428 + ";
  429 + //echo $sql;exit;
  430 + return geraXmlRSS($locaplic,$sql,"Temas em KML");
  431 +}
  432 +/*
  433 +Function: geraRSStemasOgc
  434 +
  435 +RSS com a lista de temas que permitem servi&ccedil;os OGC
  436 +
  437 +Parametros:
  438 +
  439 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  440 +
  441 +Retorno:
  442 +
  443 +RSS
  444 +*/
  445 +function geraRSStemasOgc($locaplic)
  446 +{
  447 + global $esquemaadmin;
  448 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  449 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'].(str_replace("/admin/rsstemasogc.php","",$_SERVER['PHP_SELF']));
  450 + $sql = "select '' as tipo_ws,'".$url."/ogc.php?request=getcapabilities&service=wms&tema='||codigo_tema as link_ws, g.nome_grupo||' -> '||sg.nome_subgrupo||' -> '||nome_tema as nome_ws, desc_tema as desc_ws, link_tema as autor_ws ";
  451 + $sql .= "
  452 + from ".$esquemaadmin."i3geoadmin_temas as t,".$esquemaadmin."i3geoadmin_n3 as n3, ".$esquemaadmin."i3geoadmin_n2 as n2, ".$esquemaadmin."i3geoadmin_n1 as n1, ".$esquemaadmin."i3geoadmin_grupos as g, ".$esquemaadmin."i3geoadmin_subgrupos as sg
  453 + where
  454 + t.id_tema = n3.id_tema
  455 + and n3.id_n2 = n2.id_n2
  456 + and n2.id_subgrupo = sg.id_subgrupo
  457 + and n2.id_n1 = n1.id_n1
  458 + and n1.id_grupo = g.id_grupo
  459 + and (t.ogc_tema != 'nao' or t.ogc_tema != 'NAO')
  460 + and t.tipoa_tema != 'WMS'
  461 + and n3.n3_perfil = ''
  462 + and n2.n2_perfil = ''
  463 + and n1.n1_perfil = ''
  464 + and n3.publicado != 'NAO'
  465 + and n2.publicado != 'NAO'
  466 + and n1.publicado != 'NAO'
  467 + ";
  468 + //echo $sql;exit;
  469 + return geraXmlRSS($locaplic,$sql,"Temas em KML");
  470 +}
  471 +/*
  472 +Function: geraXmlRSS
  473 +
  474 +Gera um RSS com base em um SQL compat&iacute;vel com o sistema de administra&ccedil;&atilde;o.
  475 +
  476 +O SQL dever&aacute; retornar os itens nome_ws desc_ws e link_ws
  477 +
  478 +Parametros:
  479 +
  480 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  481 +
  482 +sql {string} - SQL que ser&aacute; aplicado ao sistema de administra&ccedil;&atilde;o
  483 +
  484 +descricao {string} - descri&ccedil;&atilde;o que ser&aacute; inserida no canal RSS
  485 +
  486 +output {string} - xml|json
  487 +Retorno:
  488 +
  489 +RSS
  490 +*/
  491 +function geraXmlRSS($locaplic,$sql,$descricao,$output="xml")
  492 +{
  493 + global $esquemaadmin;
  494 + if(empty($output)){
  495 + $output = "xml";
  496 + }
  497 + //var_dump($_SERVER);exit;
  498 + $dbh = "";
  499 + include($locaplic."/admin/php/conexao.php");
  500 + if($convUTF){
  501 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  502 + } else {
  503 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  504 + }
  505 + $xml .= "<rss version='2.0'>";
  506 + $xml .= "<channel>\n";
  507 + $xml .= "<title>RSS</title>\n";
  508 + $xml .= "<description>".str_replace("&","&amp;",$descricao)."</description>\n";
  509 + $xml .= "<link></link>\n";
  510 + $xml .= "<docs></docs>\n";
  511 + $xml .= "<copyright>Gerado pelo i3Geo</copyright>\n";
  512 + $xml .= "<language>pt-br</language>\n";
  513 + $xml .= "<webmaster></webmaster>\n";
  514 + $json = array(
  515 + "description"=>$descricao,
  516 + "copyright"=>"Gerado pelo i3Geo",
  517 + "language"=>"pt-br"
  518 + );
  519 + $jsonItems = array();
  520 + $qatlas = $dbh->query($sql);
  521 + foreach($qatlas as $row) {
  522 + $xml .= "<item>\n";
  523 + $xml .= "<category/>\n";
  524 + $xml .= "<title>".entity_decode($row["nome_ws"])."</title>\n";
  525 + $xml .= "<description>".xmlTexto_prepara(entity_decode($row["desc_ws"]))."</description>\n";
  526 + $link = xmlTexto_prepara($row["link_ws"]);
  527 + if(stristr($link, 'http') === FALSE){
  528 + $link = "http://".$_SERVER["HTTP_HOST"].dirname($_SERVER["REQUEST_URI"])."/".$link;
  529 + }
  530 + $xml .= "<link><![CDATA[".$link."]]></link>\n";
  531 + $xml .= "<pubDate/>\n";
  532 + $xml .= "<author>".xmlTexto_prepara($row["autor_ws"])."</author>\n";
  533 + $xml .= "<nacessos></nacessos>\n";
  534 + $xml .= "<nacessosok></nacessosok>\n";
  535 + $xml .= "<id>".xmlTexto_prepara($row["id_ws"])."</id>\n";
  536 + $xml .= "<tipo>".$row["tipo_ws"]."</tipo>\n";
  537 + $xml .= "</item>\n";
  538 + $jsonItems[] = array(
  539 + "title"=>$row["nome_ws"],
  540 + "description"=>$row["desc_ws"],
  541 + "link"=>$link."&output=json",
  542 + "author"=>$row["autor_ws"],
  543 + "id"=>$row["id_ws"],
  544 + "tipo"=>$row["tipo_ws"]
  545 + );
  546 + }
  547 + $json["items"] = $jsonItems;
  548 + $xml .= "</channel></rss>\n";
  549 + $dbh = null;
  550 + $dbhw = null;
  551 + if($output == "xml"){
  552 + return $xml;
  553 + }
  554 + else{
  555 + return json_encode($json);
  556 + }
  557 +}
  558 +function geraXmlAtlas($locaplic,$editores)
  559 +{
  560 + global $esquemaadmin;
  561 + //error_reporting(0);
  562 + $dbh = "";
  563 + include($locaplic."/admin/php/conexao.php");
  564 +
  565 + if($convUTF)
  566 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  567 + else
  568 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  569 + $xml .= "\n<RAIZ>\n";
  570 + //$q = "select * from i3geoadmin_atlas";
  571 + $qatlas = $dbh->query("select * from ".$esquemaadmin."i3geoadmin_atlas");
  572 +
  573 + $editor = "nao";//$editor = verificaEditores($editores);
  574 + foreach($qatlas as $row)
  575 + {
  576 + $mostra = true;
  577 + if(strtolower($row["publicado_atlas"] == "nao"))
  578 + {$mostra = false;}
  579 + if($editor)
  580 + {$mostra = true;}
  581 + if($mostra)
  582 + {
  583 + $xml .= "<ATLAS>\n";
  584 + $xml .= " <ID>".$row["id_atlas"]."</ID>\n";
  585 + $xml .= " <PUBLICADO>".$row["publicado_atlas"]."</PUBLICADO>\n";
  586 + $xml .= " <TITULO>".xmlTexto_prepara($row["titulo_atlas"])."</TITULO>\n";
  587 + $xml .= " <DESCRICAO>".xmlTexto_prepara($row["desc_atlas"])."</DESCRICAO>\n";
  588 + $xml .= " <ICONE>".$row["icone_atlas"]."</ICONE>\n";
  589 + $xml .= " <LINKMAISINFO><![CDATA[".xmlTexto_prepara($row["link_atlas"])."]]></LINKMAISINFO>\n";
  590 + $xml .= " <TEMPLATEHTML>".xmlTexto_prepara($row["template_atlas"])."</TEMPLATEHTML>\n";
  591 + $xml .= " <WABERTURA>".$row["w_atlas"]."</WABERTURA>\n";
  592 + $xml .= " <HABERTURA>".$row["h_atlas"]."</HABERTURA>\n";
  593 + $xml .= " <PRANCHADEFAULT>".$row["pranchadefault_atlas"]."</PRANCHADEFAULT>\n";
  594 + $xml .= " <TIPOGUIAS>".$row["tipoguias_atlas"]."</TIPOGUIAS>\n";
  595 + $xml .= " <BASEMAPFILE>".$row["basemapfile_atlas"]."</BASEMAPFILE>\n";
  596 + $xml .= " <PRANCHAS>\n";
  597 + $xml = geraXmlAtlas_pegapranchas($xml,$row["id_atlas"],$dbh);
  598 + $xml .= " </PRANCHAS>\n";
  599 + $xml .= " </ATLAS>\n";
  600 + }
  601 + }
  602 + $xml .= "</RAIZ>\n";
  603 + $dbh = null;
  604 + $dbhw = null;
  605 + return $xml;
  606 +}
  607 +function geraXmlIdentifica($perfil,$locaplic,$editores="")
  608 +{
  609 + global $esquemaadmin;
  610 + $editor = "nao";//$editor = verificaEditores($editores);
  611 + if (!isset($perfil)){$perfil = "";}
  612 + $perfil = str_replace(","," ",$perfil);
  613 + $perfil = explode(" ",$perfil);
  614 + $dbh = "";
  615 + include($locaplic."/admin/php/conexao.php");
  616 + if($convUTF)
  617 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  618 + else
  619 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  620 + $xml .= "\n<SISTEMAS>\n";
  621 + $q = "select * from ".$esquemaadmin."i3geoadmin_identifica ";
  622 + $qi = $dbh->query($q);
  623 + foreach($qi as $row)
  624 + {
  625 + $mostra = true;
  626 + if(strtolower($row["publicado_i"] == "nao"))
  627 + {$mostra = false;}
  628 + if($editor)
  629 + {$mostra = true;}
  630 + if($mostra)
  631 + {
  632 + $xml .= " <FUNCAO>\n";
  633 + $xml .= " <NOMESIS>".xmlTexto_prepara($row["nome_i"])."</NOMESIS>\n";
  634 + $xml .= " <ABRIR>".xmlTexto_prepara($row["abrir_i"])."</ABRIR>\n";
  635 + $xml .= " <PUBLICADO>".$row["publicado_i"]."</PUBLICADO>\n";
  636 + $target = $row["target_i"];
  637 + if($target == ""){$target = "_self";}
  638 + $xml .= " <TARGET>".$target."</TARGET>\n";
  639 + $xml .= " </FUNCAO>\n";
  640 + }//error_reporting(0);
  641 + }
  642 + $xml .= "</SISTEMAS>\n";
  643 + $dbh = null;
  644 + $dbhw = null;
  645 + return $xml;
  646 +}
  647 +function geraXmlMapas($perfil,$locaplic,$editores)
  648 +{
  649 + global $esquemaadmin;
  650 + if (!isset($perfil)){$perfil = "";}
  651 + $perfil = str_replace(","," ",$perfil);
  652 + $perfil = explode(" ",$perfil);
  653 + $dbh = "";
  654 + include($locaplic."/admin/php/conexao.php");
  655 + if($convUTF)
  656 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  657 + else
  658 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  659 + $xml .= "\n<MAPAS>\n";
  660 + $q = "select * from ".$esquemaadmin."i3geoadmin_mapas";
  661 + $q = $dbh->query($q);
  662 + $editor = "nao";//$editor = "nao";//verificaEditores($editores);
  663 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  664 + $c = "/admin/php/xml.php";
  665 + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){
  666 + $c = "\admin\php\xml.php";
  667 + }
  668 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__)));
  669 + foreach($q as $row)
  670 + {
  671 + $mostraMapa = false;
  672 + if($row["perfil_mapa"] == "")
  673 + {$mostraMapa = true;}
  674 + else
  675 + {
  676 + $perfilMapa = explode(" ",str_replace(","," ",$row["perfil_mapa"]));
  677 + $mostraMapa = array_in_array($perfil,$perfilMapa);
  678 + }
  679 + if(strtolower($row["publicado_mapa"] == "nao"))
  680 + {$mostraMapa = false;}
  681 + if($editor)
  682 + {$mostraMapa = true;}
  683 +
  684 + if($mostraMapa)
  685 + {
  686 + $xml .= "<MAPA>\n";
  687 + $perfil = $row["perfil_mapa"];
  688 + $xml .= " <PERFIL>".$perfil."</PERFIL>\n";
  689 + $xml .= " <NOME>".xmlTexto_prepara($row["nome_mapa"])."</NOME>\n";
  690 + $xml .= " <DESCRICAO>".xmlTexto_prepara($row["desc_mapa"])."</DESCRICAO>\n";
  691 + $xml .= " <IMAGEM>".xmlTexto_prepara($row["imagem_mapa"])."</IMAGEM>\n";
  692 + $xml .= " <TEMAS>".$row["temas_mapa"]."</TEMAS>\n";
  693 + $xml .= " <LIGADOS>".$row["ligados_mapa"]."</LIGADOS>\n";
  694 + $extensao = $row["ext_mapa"];
  695 + $xml .= " <EXTENSAO>".$extensao."</EXTENSAO>\n";
  696 + $outros = xmlTexto_prepara($row["outros_mapa"]);
  697 + $xml .= " <OUTROS><![CDATA[".$outros."]]></OUTROS>\n";
  698 + $linkdireto = xmlTexto_prepara($row["linkdireto_mapa"]);
  699 + if(empty($linkdireto)){
  700 + $linkdireto = $url."/ms_criamapa.php?mapext=".$extensao."&perfil=".$perfil."&temasa=".$temas."&layers=".$ligados.$row["outros_mapa"];
  701 + $linkdireto = xmlTexto_prepara($linkdireto);
  702 + }
  703 + $xml .= " <LINKDIRETO><![CDATA[".$linkdireto."]]></LINKDIRETO>\n";
  704 + $xml .= " <PUBLICADO>".$row["publicado_mapa"]."</PUBLICADO>\n";
  705 + $xml .= " <ID_MAPA>".$row["id_mapa"]."</ID_MAPA>\n";
  706 + if($row["mapfile"] != ""){
  707 + $xml .= " <CONTEMMAPFILE>sim</CONTEMMAPFILE>\n";
  708 + }
  709 + else{
  710 + $xml .= " <CONTEMMAPFILE>nao</CONTEMMAPFILE>\n";
  711 + }
  712 + $xml .= "</MAPA>\n";
  713 + }
  714 + }
  715 + $xml .= "</MAPAS>\n";
  716 + $dbh = null;
  717 + $dbhw = null;
  718 + return $xml;
  719 +}
  720 +//mostra apenas os mapas que possuem outros_mapa definido, o que e tipico do sistema de metadados estatisticos
  721 +function geraRSSmapas($locaplic,$output)
  722 +{
  723 + global $esquemaadmin;
  724 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  725 + $c = "/admin/php/xml.php";
  726 + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){
  727 + $c = "\admin\php\xml.php";
  728 + }
  729 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__)));
  730 + $descricao = "'<![CDATA[Outros links<br>";
  731 + $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||'&fundo=e_wsm >Openlayers 1</a><br><br>";
  732 + $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||'&fundo= >Openlayers 2</a><br><br>";
  733 + $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||'&fundo=e_wsm&botoes=legenda pan zoombox zoomtot zoomin zoomout distancia area identifica >Openlayers 3</a><br><br>";
  734 + $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||' >Openlayers 4</a><br><br>";
  735 + $descricao .= "<img src=$url/ferramentas/salvamapa/geraminiatura.php?w=300&h=300&restauramapa='||id_mapa||' >]]>'";
  736 + $sql = "select '' as tipo_ws,'".$url."/ms_criamapa.php?restauramapa='||id_mapa as link_ws, nome_mapa as nome_ws, ".$descricao." as desc_ws, '' as autor_ws from ".$esquemaadmin."i3geoadmin_mapas WHERE publicado_mapa = 'sim' AND mapfile != ''";
  737 + //echo $sql;exit;
  738 + return geraXmlRSS($locaplic,$sql,"Mapas cadastrados",$output);
  739 +}
  740 +
  741 +//
  742 +//$id_menu = id do menu que ser&aacute; montado
  743 +//$perfil = perfis separados por espa&ccedil;os
  744 +//$tipo = gruposeraiz|subgrupos|temas
  745 +//$dbh objeto com a conex&atilde;o com o banco
  746 +//$locaplic = localiza&ccedil;&atilde;o do i3geo no servidor
  747 +//
  748 +function geraXmlMenutemas($perfil,$id_menu,$tipo,$locaplic)
  749 +{
  750 + global $esquemaadmin;
  751 + xml_testaNum([$id_menu]);
  752 + $dbh = "";
  753 + include($locaplic."/admin/php/conexao.php");
  754 + if (!isset($perfil)){$perfil = "";}
  755 + $perfil = str_replace(","," ",$perfil);
  756 + $perfil = explode(" ",$perfil);
  757 + if($convUTF)
  758 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  759 + else
  760 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  761 + $xml .= "\n<TEMASGEO>\n";
  762 + if(!isset($id_menu))
  763 + $xml .= "<CABECALHO>Utilize ?id_menu=1 por exemplo</CABECALHO>\n";
  764 + else
  765 + $xml .= "<CABECALHO></CABECALHO>\n";
  766 + //
  767 + //pega os temas na raiz
  768 + //
  769 + $q = "select nome_tema,codigo_tema,desc_tema,link_tema,tipoa_tema,tags_tema,kml_tema,ogc_tema,download_tema,r.perfil as perfil from ".$esquemaadmin."i3geoadmin_raiz as r,".$esquemaadmin."i3geoadmin_temas as temas where r.id_nivel = 0 and r.id_tema = temas.id_tema and r.id_menu = $id_menu ";
  770 + $qtemasraiz = $dbh->query($q);
  771 + $xml = geraXmlMenutemas_notema($qtemasraiz,$xml,$perfil);
  772 + $q = "select nome_grupo,desc_grupo,n1.id_grupo,n1.id_n1,n1.n1_perfil as perfil from ".$esquemaadmin."i3geoadmin_n1 as n1,".$esquemaadmin."i3geoadmin_grupos as grupos where n1.id_menu = $id_menu and n1.id_grupo = grupos.id_grupo ";
  773 + $qgrupos = $dbh->query($q);
  774 + foreach($qgrupos as $row)
  775 + {
  776 + //filtra pelo perfil
  777 + if($row["perfil"] == "")
  778 + {$mostra = true;}
  779 + else
  780 + {
  781 + $perfilatual = explode(" ",str_replace(","," ",$row["perfil"]));
  782 + $mostra = array_in_array($perfil,$perfilatual);
  783 + }
  784 + if($mostra)
  785 + {
  786 + $xml .= "<GRUPO>\n";
  787 + $xml .= " <GTIPO>".xmlTexto_prepara($row["nome_grupo"])."</GTIPO>\n";
  788 + //
  789 + //pega temas na raiz
  790 + //
  791 + $q = "select nome_tema,codigo_tema,desc_tema,link_tema,tipoa_tema,tags_tema,kml_tema,ogc_tema,download_tema,r.perfil as perfil from ".$esquemaadmin."i3geoadmin_raiz as r,".$esquemaadmin."i3geoadmin_temas as temas where r.nivel = 1 and r.id_nivel = ".$row["id_n1"]." and r.id_tema = temas.id_tema and r.id_menu = $id_menu ";
  792 + $qtemasraiz = $dbh->query($q);
  793 + $xml = geraXmlMenutemas_notema($qtemasraiz,$xml,$perfil);
  794 + if(isset($tipo) && ($tipo == "subgrupos") || ($tipo == ""))
  795 + $xml = geraXmlMenutemas_pegasubgrupos($row["id_n1"],$xml,$dbh,$tipo,$perfil);
  796 + $xml .= " <DTIPO>".xmlTexto_prepara($row["desc_grupo"])."</DTIPO>\n";
  797 + $xml .= " <PERFIL>".$row["perfil"]."</PERFIL>\n";
  798 + $xml .= "</GRUPO>\n";
  799 + }
  800 + }
  801 + $xml .= "</TEMASGEO>\n";
  802 + $dbh = null;
  803 + $dbhw = null;
  804 + return $xml;
  805 +}
  806 +function geraXmlMenutemas_pegasubgrupos($id_n1,$xml,$dbh,$tipo,$perfil)
  807 +{
  808 + global $esquemaadmin;
  809 + xml_testaNum([$id_n1]);
  810 + $q = "select subgrupos.id_subgrupo,nome_subgrupo,id_n2,n2.n2_perfil as perfil from ".$esquemaadmin."i3geoadmin_n2 as n2,".$esquemaadmin."i3geoadmin_subgrupos as subgrupos where n2.id_n1 = $id_n1 and n2.id_subgrupo = subgrupos.id_subgrupo ";
  811 + //echo $q;exit;
  812 + $qsgrupos = $dbh->query($q);
  813 + foreach($qsgrupos as $row)
  814 + {
  815 + if($row["perfil"] == "")
  816 + $mostra = true;
  817 + else
  818 + {
  819 + $perfilatual = explode(" ",str_replace(","," ",$row["perfil"]));
  820 + $mostra = array_in_array($perfil,$perfilatual);
  821 + }
  822 + if($mostra)
  823 + {
  824 + $xml .= "<SGRUPO>\n";
  825 + $xml .= "<SDTIPO>".xmlTexto_prepara($row["nome_subgrupo"])."</SDTIPO>\n";
  826 + $xml .= "<PERFIL>".xmlTexto_prepara($row["perfil"])."</PERFIL>\n";
  827 + if(isset($tipo) && ($tipo == "temas") || ($tipo == ""))
  828 + $xml = geraXmlMenutemas_pegatemas($row["id_n2"],$xml,$dbh,$perfil);
  829 + $xml .= "</SGRUPO>\n";
  830 + }
  831 + }
  832 + return $xml;
  833 +}
  834 +function geraXmlMenutemas_pegatemas($id_n2,$xml,$dbh,$perfil)
  835 +{
  836 + global $esquemaadmin;
  837 + xml_testaNum([$id_n2]);
  838 + $q = "select nome_tema,codigo_tema,desc_tema,link_tema,tipoa_tema,tags_tema,kml_tema,ogc_tema,download_tema,n3.n3_perfil as perfil from ".$esquemaadmin."i3geoadmin_n3 as n3,".$esquemaadmin."i3geoadmin_temas as temas where n3.id_n2 = $id_n2 and n3.id_tema = temas.id_tema ";
  839 + $qtemas = $dbh->query($q);
  840 + $xml = geraXmlMenutemas_notema($qtemas,$xml,$perfil);
  841 + return $xml;
  842 +}
  843 +function geraXmlMenutemas_notema($qtemas,$xml,$perfil)
  844 +{
  845 + global $esquemaadmin;
  846 + foreach($qtemas as $row)
  847 + {
  848 + if($row["perfil"] == "")
  849 + {$mostra = true;}
  850 + else
  851 + {
  852 + $perfilatual = explode(" ",str_replace(","," ",$row["perfil"]));
  853 + $mostra = array_in_array($perfil,$perfilatual);
  854 + }
  855 + if($mostra)
  856 + {
  857 + $xml .= "<TEMA>\n";
  858 + $xml .= "<TID>".$row["codigo_tema"]."</TID>\n";
  859 + $xml .= "<PERFIL>".$row["perfil"]."</PERFIL>\n";
  860 + $xml .= "<TNOME>".xmlTexto_prepara($row["nome_tema"])."</TNOME>\n";
  861 + $xml .= "<TDESC>".xmlTexto_prepara($row["desc_tema"])."</TDESC>\n";
  862 + $xml .= "<TLINK><![CDATA[".xmlTexto_prepara($row["link_tema"])."]]></TLINK>\n";
  863 + $xml .= "<TIPOA>".$row["tipoa_tema"]."</TIPOA>\n";
  864 + $xml .= "<TAGS>".xmlTexto_prepara($row["tags_tema"])."</TAGS>\n";
  865 + $xml .= "<KML>".$row["kml_tema"]."</KML>\n";
  866 + if($row["tipoa_tema"] == "WMS")
  867 + {$xml .= "<OGC>nao</OGC>\n";}
  868 + else
  869 + {$xml .= "<OGC>".$row["ogc_tema"]."</OGC>\n";}
  870 + $xml .= "<DOWNLOAD>".$row["download_tema"]."</DOWNLOAD>\n";
  871 + $xml .= "<NACESSOS></NACESSOS>\n";
  872 + $xml .= "</TEMA>\n";
  873 + }
  874 + }
  875 + return $xml;
  876 +}
  877 +function geraXmlAtlas_pegapranchas($xml,$id_atlas,$dbh)
  878 +{
  879 + global $esquemaadmin;
  880 + xml_testaNum([$id_atlas]);
  881 + $q = "select * from ".$esquemaadmin."i3geoadmin_atlasp as p where p.id_atlas = $id_atlas order by ordem_prancha";
  882 + $qpranchas = $dbh->query($q);
  883 + foreach($qpranchas as $row)
  884 + {
  885 + $xml .= " <PRANCHA>\n";
  886 + $xml .= " <ID>".$row["id_prancha"]."</ID>\n";
  887 + $xml .= " <TITULO>".xmlTexto_prepara($row["titulo_prancha"])."</TITULO>\n";
  888 + $xml .= " <DESCRICAO>".xmlTexto_prepara($row["desc_prancha"])."</DESCRICAO>\n";
  889 + $xml .= " <ICONE>".$row["icone_prancha"]."</ICONE>\n";
  890 + $xml .= " <LINKMAISINFO><![CDATA[".xmlTexto_prepara($row["link_prancha"])."]]></LINKMAISINFO>\n";
  891 + $xml .= " <WABERTURA>".$row["w_prancha"]."</WABERTURA>\n";
  892 + $xml .= " <HABERTURA>".$row["h_prancha"]."</HABERTURA>\n";
  893 + $xml .= " <MAPEXT>".$row["mapext_prancha"]."</MAPEXT>\n";
  894 + $xml .= " <TEMAS>\n";
  895 + $xml = geraXmlAtlas_pegatemas($xml,$row["id_prancha"],$dbh);
  896 + $xml .= " </TEMAS>\n";
  897 + $xml .= " </PRANCHA>\n";
  898 + }
  899 + return $xml;
  900 +}
  901 +function geraXmlAtlas_pegatemas($xml,$id_prancha,$dbh)
  902 +{
  903 + global $esquemaadmin;
  904 + xml_testaNum([$id_prancha]);
  905 + $q = "select t.codigo_tema,t.ligado_tema from ".$esquemaadmin."i3geoadmin_atlast as t where t.id_prancha = '$id_prancha' order by ordem_tema";
  906 + //echo $q;
  907 + $qtemas = $dbh->query($q);
  908 + foreach($qtemas as $row)
  909 + {
  910 + $xml .= "<TEMA>\n";
  911 + $xml .= "<CODIGO>".$row["codigo_tema"]."</CODIGO>\n";
  912 + $xml .= "<LIGADO>".$row["ligado_tema"]."</LIGADO>\n";
  913 + $xml .= "</TEMA>\n";
  914 + }
  915 + return $xml;
  916 +}
  917 +function geraXmlSistemas_pegafuncoes($perfil,$xml,$id_sistema,$dbh)
  918 +{
  919 + global $esquemaadmin;
  920 + xml_testaNum([$id_sistema]);
  921 + $q = "select * from ".$esquemaadmin."i3geoadmin_sistemasf where id_sistema = '$id_sistema'";
  922 + $qtemas = $dbh->query($q);
  923 + foreach($qtemas as $row)
  924 + {
  925 + if($row["perfil_funcao"] == "")
  926 + $mostra = true;
  927 + else
  928 + {
  929 + $perfilF = explode(" ",str_replace(","," ",$row["perfil_funcao"]));
  930 + $mostra = array_in_array($perfil,$perfilF);
  931 + }
  932 + if($mostra)
  933 + {
  934 + $xml .= "<FUNCAO>\n";
  935 + $xml .= " <NOMEFUNCAO>".xmlTexto_prepara($row["nome_funcao"])."</NOMEFUNCAO>\n";
  936 + $xml .= " <ABRIR>".xmlTexto_prepara($row["abrir_funcao"])."</ABRIR>\n";
  937 + $xml .= " <JANELAW>".$row["w_funcao"]."</JANELAW>\n";
  938 + $xml .= " <JANELAH>".$row["h_funcao"]."</JANELAH>\n";
  939 + $xml .= " <PERFIL>".$row["perfil_funcao"]."</PERFIL>\n";
  940 + $xml .= "</FUNCAO>\n";
  941 + }
  942 + }
  943 + return $xml;
  944 +}
  945 +function array_in_array($needle, $haystack)
  946 +{
  947 + //Make sure $needle is an array for foreach
  948 + if(!is_array($needle)) $needle = array($needle);
  949 + //For each value in $needle, return TRUE if in $haystack
  950 + foreach($needle as $pin)
  951 + if(in_array($pin, $haystack)) return TRUE;
  952 + //Return FALSE if none of the values from $needle are found in $haystack
  953 + return FALSE;
  954 +}
  955 +function xmlTexto_prepara($texto)
  956 +{
  957 + return str_replace("&","&amp;",$texto);
  958 +}
  959 +function entity_decode($texto)
  960 +{
  961 + return html_entity_decode($texto);
  962 +}
  963 +function xml_testaNum($valores){
  964 + foreach ($valores as $valor) {
  965 + if(!empty($valor) && !is_numeric($valor)) {
  966 + ob_clean();
  967 + header ( "HTTP/1.1 403 valor nao numerico" );
  968 + exit;
  969 + }
  970 + }
  971 +}
  972 +?>
... ...
admin1/php/funcoesAdmin.php
1 1 <?php
2 2 namespace admin\php\funcoesAdmin;
3 3 use PDO;
4   -use Services_JSON;
5 4 use PDOException;
6 5 //
7 6 // verifica se um determinado papel esta registrado na variavel SESSION
... ... @@ -35,7 +34,6 @@ function testaSafeNumerico($valores) {
35 34 }
36 35 }
37 36 }
38   -
39 37 function verificaOperacaoSessao($operacao) {
40 38 $resultado = false;
41 39 // a validacao consulta $_SESSION, que e definida no login
... ...
classesjs/classe_guias.js
... ... @@ -209,8 +209,6 @@ i3GEO.guias =
209 209 // combo de opcoes para abrir os mapas
210 210 // salvos
211 211 // como mapfiles
212   - // esses links tambem sao colocados em
213   - // admin/php/xml.php geraRSSmapas
214 212 combo =
215 213 "<select style='width:170px;' onchange='i3GEO.guias.CONFIGURA.mapas.mostraLink(" + ig1
216 214 + ",this.value)'>"
... ...
classesphp/atlas_controle.php
... ... @@ -116,7 +116,7 @@ if ($map_file != &quot;&quot;){
116 116 }
117 117  
118 118  
119   -include($locaplic."/admin/php/xml.php");
  119 +include($locaplic."/classesphp/xml.php");
120 120  
121 121 $xml = geraXmlAtlas($locaplic,$editores);
122 122  
... ...
classesphp/classe_menutemas.php
... ... @@ -248,7 +248,7 @@ array
248 248 {$this->xml = simplexml_load_file($locmapas);}
249 249 else
250 250 {
251   - include_once($this->locaplic."/admin/php/xml.php");
  251 + include_once($this->locaplic."/classesphp/xml.php");
252 252 $this->xml = simplexml_load_string(geraXmlMapas(implode(" ",$this->perfil),$this->locaplic));
253 253 }
254 254 //print_r($this->xml);exit;
... ... @@ -293,7 +293,7 @@ Array
293 293 function pegaSistemas()
294 294 {
295 295 //error_reporting(0);
296   - include_once($this->locaplic."/admin/php/xml.php");
  296 + include_once($this->locaplic."/classesphp/xml.php");
297 297 $xmlsistemas = simplexml_load_string(geraXmlSistemas(implode(" ",$this->perfil),$this->locaplic));
298 298 $sistemas = array();
299 299 foreach($xmlsistemas->SISTEMA as $s)
... ... @@ -339,7 +339,7 @@ Array
339 339 function pegaSistemasI()
340 340 {
341 341 //error_reporting(0);
342   - include_once($this->locaplic."/admin/php/xml.php");
  342 + include_once($this->locaplic."/classesphp/xml.php");
343 343  
344 344 $xmlsistemas = simplexml_load_string(geraXmlIdentifica(implode(" ",$this->perfil),$this->locaplic));
345 345 $sistemas = array();
... ... @@ -371,7 +371,7 @@ $procurar - String que ser&amp;aacute; procurada.
371 371 */
372 372 function procurartemas($procurar)
373 373 {
374   - include_once($this->locaplic."/admin/php/xml.php");
  374 + include_once($this->locaplic."/classesphp/xml.php");
375 375 $tipo = "";
376 376 $this->xml = "";
377 377 if($this->menutemas != "")
... ... @@ -536,7 +536,7 @@ nrss - (opcional) n&amp;uacute;mero de registros no rss que ser&amp;atilde;o considerado
536 536 */
537 537 function listaTags($rss="",$nrss="")
538 538 {
539   - include_once($this->locaplic."/admin/php/xml.php");
  539 + include_once($this->locaplic."/classesphp/xml.php");
540 540 $tipo = "";
541 541 //carrega os t&iacute;tulos e links do rss especificado
542 542 $noticiasRSS = array(); //guarda as not&iacute;cias originais do RRS
... ...
classesphp/classe_temas.php
... ... @@ -1105,7 +1105,7 @@ tema - codigo do tema
1105 1105 */
1106 1106 function fonteTema($tema)
1107 1107 {
1108   - include_once($this->locaplic."/admin/php/xml.php");
  1108 + include_once($this->locaplic."/classesphp/xml.php");
1109 1109 require($this->locaplic."/classesphp/classe_menutemas.php");
1110 1110 $menutemas = new Menutemas("","","",$this->locaplic);
1111 1111 $linkfonte = "erro";
... ... @@ -1380,8 +1380,8 @@ Adiciona LABEL em uma classe de um tema
1380 1380 $label->set("type",MS_TRUETYPE);
1381 1381 $label->set("font","arial");
1382 1382 $label->set("size",0);
1383   - $label->removeBinding(0);
1384   - $classe->settext($texto);
  1383 + $label->removeBinding(0);
  1384 + $classe->settext($texto);
1385 1385 }
1386 1386 /*
1387 1387 $nlabel = $classe->numlabels;
... ...
classesphp/wscliente.php
... ... @@ -421,7 +421,7 @@ function listaRSSws2()
421 421 global $cp,$rss,$locaplic,$tipo;
422 422 if(!isset($tipo)){$tipo = "GEORSS";}
423 423 include_once("$locaplic/classesphp/funcoes_gerais.php");
424   - include_once("$locaplic/admin/php/xml.php");
  424 + include_once("$locaplic/classesphp/xml.php");
425 425 include_once("$locaplic/ms_configura.php");
426 426 $rsss = explode("|",$rss);
427 427 if(count($rsss) == 0){$rsss = array(" ");}
... ... @@ -496,7 +496,7 @@ function listaRSSwsARRAY()
496 496  
497 497 if(!isset($tipo)){$tipo = "GEORSS";}
498 498 include_once("$locaplic/classesphp/funcoes_gerais.php");
499   - include_once("$locaplic/admin/php/xml.php");
  499 + include_once("$locaplic/classesphp/xml.php");
500 500 include_once("$locaplic/ms_configura.php");
501 501 $rsss = explode("|",$rss);
502 502 if(count($rsss) == 0){
... ...
classesphp/xml.php 0 → 100755
... ... @@ -0,0 +1,947 @@
  1 +<?php
  2 +/*
  3 +Title: xml.php
  4 +
  5 +Conjunto de fun&ccedil;&otilde;es que geram arquivos na estrutura XML conforme os dados cadastrados no sistema de administra&ccedil;&atilde;o.
  6 +
  7 +Permite a gera&ccedil;&atilde;o de XML no padr&atilde;o RSS e outros. &Eacute; utilizado por fun&ccedil;&otilde;es internas do i3Geo e por programas
  8 +utilit&aacute;rios que fornecem dados no formato RSS para outros fins.
  9 +
  10 +Licenca:
  11 +
  12 +GPL2
  13 +
  14 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  15 +
  16 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  17 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  18 +
  19 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  20 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  21 +GNU conforme publicada pela Free Software Foundation;
  22 +
  23 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  24 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  25 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  26 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  27 +Voc&ecirc; deve ter recebido uma copia da Licen&ccedil;a P&uacute;blica Geral do
  28 +GNU junto com este programa; se n&atilde;o, escreva para a
  29 +Free Software Foundation, Inc., no endere&ccedil;o
  30 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  31 +
  32 +Arquivo:
  33 +
  34 +i3geo/classesphp/xml.php
  35 +*/
  36 +//
  37 +//processa a vari&aacute;vel $esquemaadmin definida em ms_configura.php
  38 +//essa vari&aacute;vel precisa ter um . no final quando n&atilde;o for vazia, evitando erros na inclus&atilde;o dentro dos SQLs
  39 +//
  40 +
  41 +if (!isset($esquemaadmin)){
  42 + include_once(dirname(__FILE__)."/../../ms_configura.php");
  43 +}
  44 +if(!empty($esquemaadmin)){
  45 + $esquemaadmin = str_replace(".","",$esquemaadmin).".";
  46 +}
  47 +
  48 +/*
  49 +Function: geraXmlSistemas (depreciado)
  50 +
  51 +Parametros:
  52 +
  53 +perfil {string} - perfil que ser&aacute; considerado na gera&ccedil;&atilde;o do XML
  54 +
  55 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  56 +
  57 +editores {array} - lista de editores cadastrados em ms_configura.php
  58 +
  59 +Retorno:
  60 +
  61 +String na estrutura XML
  62 +*/
  63 +function geraXmlSistemas($perfil="",$locaplic="",$editores="")
  64 +{
  65 + global $esquemaadmin;
  66 + if(empty($locaplic)){
  67 + return;
  68 + }
  69 + $editor = "nao";//verificaEditores($editores);
  70 + if (!isset($perfil)){$perfil = "";}
  71 + $perfil = str_replace(","," ",$perfil);
  72 + $perfil = explode(" ",$perfil);
  73 + $dbh = "";
  74 + include($locaplic."/admin/php/conexao.php");
  75 + if($convUTF)
  76 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  77 + else
  78 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  79 + $xml .= "\n<SISTEMAS>\n";
  80 + $q = "select * from ".$esquemaadmin."i3geoadmin_sistemas";
  81 + $qatlas = $dbh->query($q);
  82 + foreach($qatlas as $row)
  83 + {
  84 + if($row["perfil_sistema"] == "")
  85 + $mostra = true;
  86 + else
  87 + {
  88 + $perfilS = explode(" ",str_replace(","," ",$row["perfil_sistema"]));
  89 + $mostra = array_in_array($perfil,$perfilS);
  90 + }
  91 + if(strtolower($row["publicado_sistema"] == "nao"))
  92 + {$mostra = false;}
  93 + if($editor)
  94 + {$mostra = true;}
  95 + if($mostra)
  96 + {
  97 + $xml .= "<SISTEMA>\n";
  98 + $xml .= " <PERFIL>".$row["perfil_sistema"]."</PERFIL>\n";
  99 + $xml .= " <PUBLICADO>".$row["publicado_sistema"]."</PUBLICADO>\n";
  100 + $xml .= " <NOMESIS>".xmlTexto_prepara($row["nome_sistema"])."</NOMESIS>\n";
  101 + $xml = geraXmlSistemas_pegafuncoes($perfil,$xml,$row["id_sistema"],$dbh);
  102 + $xml .= "</SISTEMA>\n";
  103 + }
  104 + }
  105 + $xml .= "</SISTEMAS>\n";
  106 + $dbh = null;
  107 + $dbhw = null;
  108 + return $xml;
  109 +}
  110 +/*
  111 +Function: geraRSStemas
  112 +
  113 +RSS com os temas cadastrados
  114 +
  115 +Parametros:
  116 +
  117 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  118 +
  119 +id_n2 {string} - c�digo do subgrupo do sistema de administra&ccedil;&atilde;o
  120 +
  121 +Retorno:
  122 +
  123 +RSS
  124 +*/
  125 +function geraRSStemas($locaplic,$id_n2,$output="xml")
  126 +{
  127 + global $esquemaadmin;
  128 + xml_testaNum([$id_n2]);
  129 + $sql = "
  130 + select '' as tipo_ws, i3geoadmin_temas.codigo_tema as id_ws,i3geoadmin_temas.nome_tema as nome_ws,'' as desc_ws,'../ms_criamapa.php?layers='||i3geoadmin_temas.codigo_tema as link_ws,i3geoadmin_temas.link_tema as autor_ws
  131 + from ".$esquemaadmin."i3geoadmin_n3 as n3
  132 + LEFT JOIN ".$esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = n3.id_tema
  133 + LEFT JOIN ".$esquemaadmin."i3geousr_grupotema ON n3.id_tema = i3geousr_grupotema.id_tema
  134 + where i3geousr_grupotema.id_grupo is null and i3geoadmin_temas.id_tema = n3.id_tema and n3.id_n2 = '$id_n2' and n3.n3_perfil = '' and n3.publicado != 'NAO' order by nome_ws";
  135 + return geraXmlRSS($locaplic,$sql,"Lista de temas",$output);
  136 +}
  137 +/*
  138 +Function: geraRSStemasRaiz
  139 +
  140 +RSS com os temas localizados na raiz de um n&iacute;vel
  141 +
  142 +Parametros:
  143 +
  144 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  145 +
  146 +id {string} - codigo do no
  147 +
  148 +nivel {string} - n&iacute;vel do no
  149 +
  150 +Retorno:
  151 +
  152 +RSS
  153 +*/
  154 +function geraRSStemasRaiz($locaplic,$id,$nivel)
  155 +{
  156 + global $esquemaadmin;
  157 + xml_testaNum([$id,$nivel]);
  158 + $sql = "
  159 + select '' as tipo_ws, i3geoadmin_temas.codigo_tema as id_ws,i3geoadmin_temas.nome_tema as nome_ws,'' as desc_ws,'../ms_criamapa.php?layers='||i3geoadmin_temas.codigo_tema as link_ws,i3geoadmin_temas.link_tema as autor_ws
  160 + from ".$esquemaadmin."i3geoadmin_raiz as r
  161 + LEFT JOIN ".$esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = r.id_tema
  162 + LEFT JOIN ".$esquemaadmin."i3geousr_grupotema ON r.id_tema = i3geousr_grupotema.id_tema
  163 + where i3geousr_grupotema.id_grupo is null and i3geoadmin_temas.id_tema = r.id_tema and r.nivel = '$nivel' and r.id_nivel = '$id' order by nome_ws";
  164 + return geraXmlRSS($locaplic,$sql,"Temas na raiz");
  165 +}
  166 +/*
  167 +Function: geraRSSsubgrupos
  168 +
  169 +RSS com os subgrupos cadastrados
  170 +
  171 +Parametros:
  172 +
  173 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  174 +
  175 +id_n1 {string} - c�digo do grupo do sistema de administra&ccedil;&atilde;o
  176 +
  177 +Retorno:
  178 +
  179 +RSS
  180 +*/
  181 +function geraRSSsubgrupos($locaplic,$id_n1,$output="json")
  182 +{
  183 + global $esquemaadmin;
  184 + xml_testaNum([$id_n1]);
  185 + $sql = "select '' as tipo_ws, n2.id_n2 as id_ws,g.nome_subgrupo as nome_ws,'' as desc_ws,'rsstemas.php?id='||n2.id_n2 as link_ws,'' as autor_ws from ".$esquemaadmin."i3geoadmin_n2 as n2,".$esquemaadmin."i3geoadmin_subgrupos as g ";
  186 + $sql .= " where g.id_subgrupo = n2.id_subgrupo and n2.id_n1 = '$id_n1' and n2.n2_perfil = '' and n2.publicado != 'NAO' order by nome_ws";
  187 + return geraXmlRSS($locaplic,$sql,"Lista de sub-grupos",$output);
  188 +}
  189 +/*
  190 +Function: geraRSSgrupos
  191 +
  192 +RSS com os grupos cadastrados
  193 +
  194 +Parametros:
  195 +
  196 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  197 +
  198 +Retorno:
  199 +
  200 +RSS
  201 +*/
  202 +function geraRSSgrupos($locaplic,$output="xml")
  203 +{
  204 + global $esquemaadmin;
  205 + $sql = "select '' as tipo_ws, n1.id_n1 as id_ws, g.nome_grupo as nome_ws,'rsstemasraiz.php?nivel=1&id='||n1.id_n1 as desc_ws,'rsssubgrupos.php?id='||n1.id_n1 as link_ws,'' as autor_ws ";
  206 + $sql .= "from ".$esquemaadmin."i3geoadmin_n1 as n1,".$esquemaadmin."i3geoadmin_grupos as g ";
  207 + $sql .= "where g.id_grupo = n1.id_grupo and n1.n1_perfil = '' and n1.publicado != 'NAO' group by id_ws,tipo_ws,nome_ws,desc_ws,link_ws,autor_ws order by nome_ws";
  208 + return geraXmlRSS($locaplic,$sql,"Lista de grupos",$output);
  209 +}
  210 +/*
  211 +Function: geraXmlDownload
  212 +
  213 +RSS com os links para sistemas de download
  214 +
  215 +Parametros:
  216 +
  217 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  218 +
  219 +Retorno:
  220 +
  221 +RSS
  222 +*/
  223 +function geraXmlDownload($locaplic)
  224 +{
  225 + global $esquemaadmin;
  226 + $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'DOWNLOAD' and nome_ws <> ''";
  227 + return geraXmlRSS($locaplic,$sql,"Enderecos para download");
  228 +}
  229 +/*
  230 +Function: geraXmlWS
  231 +
  232 +RSS com a lista de WS cadastrados
  233 +
  234 +Parametros:
  235 +
  236 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  237 +
  238 +Retorno:
  239 +
  240 +RSS
  241 +*/
  242 +function geraXmlWS($locaplic,$output)
  243 +{
  244 + global $esquemaadmin;
  245 + $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'WS' and nome_ws <> ''";
  246 + return geraXmlRSS($locaplic,$sql,"Web services",$output);
  247 +}
  248 +/*
  249 +Function: geraXmlKmlrss
  250 +
  251 +RSS com a lista de KML cadastrados
  252 +
  253 +Parametros:
  254 +
  255 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  256 +
  257 +Retorno:
  258 +
  259 +RSS
  260 +*/
  261 +function geraXmlKmlrss($locaplic)
  262 +{
  263 + global $esquemaadmin;
  264 + $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'KML' and nome_ws <> ''";
  265 + return geraXmlRSS($locaplic,$sql,"Web services");
  266 +}
  267 +/*
  268 +Function: geraXmlWMS
  269 +
  270 +RSS com a lista de WMS cadastrados
  271 +
  272 +Parametros:
  273 +
  274 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  275 +
  276 +Retorno:
  277 +
  278 +RSS
  279 +*/
  280 +function geraXmlWMS($locaplic,$output)
  281 +{
  282 + global $esquemaadmin;
  283 + $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where (tipo_ws = 'WMS' or tipo_ws = 'WMS-Tile') and nome_ws <> '' order by nome_ws";
  284 + return geraXmlRSS($locaplic,$sql,"Web services WMS-OGC",$output);
  285 +}
  286 +/*
  287 +Function: geraXmlWMSmetaestat
  288 +
  289 +RSS com a lista de WMS das variaveis cadastradas no sistema de metadados estatisticos
  290 +
  291 +Parametros:
  292 +
  293 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  294 +
  295 +Retorno:
  296 +
  297 +RSS
  298 +*/
  299 +function geraXmlWMSmetaestat($locaplic)
  300 +{
  301 + global $esquemaadmin;
  302 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  303 + $c = "/classesphp/xml.php";
  304 + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){
  305 + $c = "\classesphp\xml.php";
  306 + }
  307 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__)));
  308 + $sql = "select DISTINCT b.id_medida_variavel as id_ws, 'WMSMETAESTAT' as tipo_ws,'".$url."/ogc.php?id_medida_variavel='||b.id_medida_variavel as link_ws,a.nome||' -> '||b.nomemedida as nome_ws,a.descricao as desc_ws, '' as autor_ws from i3geoestat_variavel as a ,i3geoestat_medida_variavel as b WHERE a.codigo_variavel = b.codigo_variavel ORDER BY a.nome";
  309 + return geraXmlRSS($locaplic,$sql,"Web services WMS-TIME OGC");
  310 +}
  311 +/*
  312 +Function: geraXmlGeorss
  313 +
  314 +RSS com a lista de GEORSS cadastrados
  315 +
  316 +Parametros:
  317 +
  318 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  319 +
  320 +Retorno:
  321 +
  322 +RSS
  323 +*/
  324 +function geraXmlGeorss($locaplic,$output)
  325 +{
  326 + global $esquemaadmin;
  327 + $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'GEORSS' and nome_ws <> ''";
  328 + return geraXmlRSS($locaplic,$sql,"Georss",$output);
  329 +}
  330 +/*
  331 +Function: geraRSStemasDownload
  332 +
  333 +RSS com a lista de temas para download
  334 +
  335 +Parametros:
  336 +
  337 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  338 +
  339 +Retorno:
  340 +
  341 +RSS
  342 +*/
  343 +function geraRSStemasDownload($locaplic)
  344 +{
  345 + global $esquemaadmin;
  346 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  347 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'].(str_replace("/admin/rsstemasdownload.php","",$_SERVER['PHP_SELF']));
  348 + $sql = "select '' as tipo_ws,'".$url."/datadownload.htm?'||codigo_tema as link_ws, g.nome_grupo||' -> '||sg.nome_subgrupo||' -> '||nome_tema as nome_ws, desc_tema as desc_ws, link_tema as autor_ws ";
  349 + $sql .= "
  350 + from ".$esquemaadmin."i3geoadmin_temas as t,".$esquemaadmin."i3geoadmin_n3 as n3, ".$esquemaadmin."i3geoadmin_n2 as n2, ".$esquemaadmin."i3geoadmin_n1 as n1, ".$esquemaadmin."i3geoadmin_grupos as g, ".$esquemaadmin."i3geoadmin_subgrupos as sg
  351 + where
  352 + t.id_tema = n3.id_tema
  353 + and n3.id_n2 = n2.id_n2
  354 + and n2.id_subgrupo = sg.id_subgrupo
  355 + and n2.id_n1 = n1.id_n1
  356 + and n1.id_grupo = g.id_grupo
  357 + and (t.download_tema != 'nao' and t.download_tema != 'NAO')
  358 + and t.tipoa_tema != 'WMS'
  359 + and n3.n3_perfil = ''
  360 + and n2.n2_perfil = ''
  361 + and n1.n1_perfil = ''
  362 + and n3.publicado != 'NAO'
  363 + and n2.publicado != 'NAO'
  364 + and n1.publicado != 'NAO'
  365 + ";
  366 + //echo $sql;exit;
  367 + return geraXmlRSS($locaplic,$sql,"Temas para download");
  368 +}
  369 +/*
  370 +Function: geraRSStemasKml
  371 +
  372 +RSS com a lista de temas que permitem KML
  373 +
  374 +Parametros:
  375 +
  376 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  377 +
  378 +Retorno:
  379 +
  380 +RSS
  381 +*/
  382 +function geraRSStemasKml($locaplic)
  383 +{
  384 + global $esquemaadmin;
  385 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  386 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'].(str_replace("/admin/rsstemaskml.php","",$_SERVER['PHP_SELF']));
  387 + $sql = "select '' as tipo_ws,'".$url."/pacotes/kmlmapserver/kmlservice.php?request=kml&map='||codigo_tema||'&typename='||codigo_tema as link_ws, g.nome_grupo||' -> '||sg.nome_subgrupo||' -> '||nome_tema as nome_ws, desc_tema as desc_ws, link_tema as autor_ws ";
  388 + $sql .= "
  389 + from ".$esquemaadmin."i3geoadmin_temas as t,".$esquemaadmin."i3geoadmin_n3 as n3, ".$esquemaadmin."i3geoadmin_n2 as n2, ".$esquemaadmin."i3geoadmin_n1 as n1, ".$esquemaadmin."i3geoadmin_grupos as g, ".$esquemaadmin."i3geoadmin_subgrupos as sg
  390 + where
  391 + t.id_tema = n3.id_tema
  392 + and n3.id_n2 = n2.id_n2
  393 + and n2.id_subgrupo = sg.id_subgrupo
  394 + and n2.id_n1 = n1.id_n1
  395 + and n1.id_grupo = g.id_grupo
  396 + and (t.kml_tema != 'nao' and t.kml_tema != 'NAO')
  397 + and n3.n3_perfil = ''
  398 + and n2.n2_perfil = ''
  399 + and n1.n1_perfil = ''
  400 + and n3.publicado != 'NAO'
  401 + and n2.publicado != 'NAO'
  402 + and n1.publicado != 'NAO'
  403 + ";
  404 + //echo $sql;exit;
  405 + return geraXmlRSS($locaplic,$sql,"Temas em KML");
  406 +}
  407 +/*
  408 +Function: geraRSStemasOgc
  409 +
  410 +RSS com a lista de temas que permitem servi&ccedil;os OGC
  411 +
  412 +Parametros:
  413 +
  414 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  415 +
  416 +Retorno:
  417 +
  418 +RSS
  419 +*/
  420 +function geraRSStemasOgc($locaplic)
  421 +{
  422 + global $esquemaadmin;
  423 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  424 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'].(str_replace("/admin/rsstemasogc.php","",$_SERVER['PHP_SELF']));
  425 + $sql = "select '' as tipo_ws,'".$url."/ogc.php?request=getcapabilities&service=wms&tema='||codigo_tema as link_ws, g.nome_grupo||' -> '||sg.nome_subgrupo||' -> '||nome_tema as nome_ws, desc_tema as desc_ws, link_tema as autor_ws ";
  426 + $sql .= "
  427 + from ".$esquemaadmin."i3geoadmin_temas as t,".$esquemaadmin."i3geoadmin_n3 as n3, ".$esquemaadmin."i3geoadmin_n2 as n2, ".$esquemaadmin."i3geoadmin_n1 as n1, ".$esquemaadmin."i3geoadmin_grupos as g, ".$esquemaadmin."i3geoadmin_subgrupos as sg
  428 + where
  429 + t.id_tema = n3.id_tema
  430 + and n3.id_n2 = n2.id_n2
  431 + and n2.id_subgrupo = sg.id_subgrupo
  432 + and n2.id_n1 = n1.id_n1
  433 + and n1.id_grupo = g.id_grupo
  434 + and (t.ogc_tema != 'nao' or t.ogc_tema != 'NAO')
  435 + and t.tipoa_tema != 'WMS'
  436 + and n3.n3_perfil = ''
  437 + and n2.n2_perfil = ''
  438 + and n1.n1_perfil = ''
  439 + and n3.publicado != 'NAO'
  440 + and n2.publicado != 'NAO'
  441 + and n1.publicado != 'NAO'
  442 + ";
  443 + //echo $sql;exit;
  444 + return geraXmlRSS($locaplic,$sql,"Temas em KML");
  445 +}
  446 +/*
  447 +Function: geraXmlRSS
  448 +
  449 +Gera um RSS com base em um SQL compat&iacute;vel com o sistema de administra&ccedil;&atilde;o.
  450 +
  451 +O SQL dever&aacute; retornar os itens nome_ws desc_ws e link_ws
  452 +
  453 +Parametros:
  454 +
  455 +locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos
  456 +
  457 +sql {string} - SQL que ser&aacute; aplicado ao sistema de administra&ccedil;&atilde;o
  458 +
  459 +descricao {string} - descri&ccedil;&atilde;o que ser&aacute; inserida no canal RSS
  460 +
  461 +output {string} - xml|json
  462 +Retorno:
  463 +
  464 +RSS
  465 +*/
  466 +function geraXmlRSS($locaplic,$sql,$descricao,$output="xml")
  467 +{
  468 + global $esquemaadmin;
  469 + if(empty($output)){
  470 + $output = "xml";
  471 + }
  472 + //var_dump($_SERVER);exit;
  473 + $dbh = "";
  474 + include($locaplic."/admin/php/conexao.php");
  475 + if($convUTF){
  476 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  477 + } else {
  478 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  479 + }
  480 + $xml .= "<rss version='2.0'>";
  481 + $xml .= "<channel>\n";
  482 + $xml .= "<title>RSS</title>\n";
  483 + $xml .= "<description>".str_replace("&","&amp;",$descricao)."</description>\n";
  484 + $xml .= "<link></link>\n";
  485 + $xml .= "<docs></docs>\n";
  486 + $xml .= "<copyright>Gerado pelo i3Geo</copyright>\n";
  487 + $xml .= "<language>pt-br</language>\n";
  488 + $xml .= "<webmaster></webmaster>\n";
  489 + $json = array(
  490 + "description"=>$descricao,
  491 + "copyright"=>"Gerado pelo i3Geo",
  492 + "language"=>"pt-br"
  493 + );
  494 + $jsonItems = array();
  495 + $qatlas = $dbh->query($sql);
  496 + foreach($qatlas as $row) {
  497 + $xml .= "<item>\n";
  498 + $xml .= "<category/>\n";
  499 + $xml .= "<title>".entity_decode($row["nome_ws"])."</title>\n";
  500 + $xml .= "<description>".xmlTexto_prepara(entity_decode($row["desc_ws"]))."</description>\n";
  501 + $link = xmlTexto_prepara($row["link_ws"]);
  502 + if(stristr($link, 'http') === FALSE){
  503 + $link = "http://".$_SERVER["HTTP_HOST"].dirname($_SERVER["REQUEST_URI"])."/".$link;
  504 + }
  505 + $xml .= "<link><![CDATA[".$link."]]></link>\n";
  506 + $xml .= "<pubDate/>\n";
  507 + $xml .= "<author>".xmlTexto_prepara($row["autor_ws"])."</author>\n";
  508 + $xml .= "<nacessos></nacessos>\n";
  509 + $xml .= "<nacessosok></nacessosok>\n";
  510 + $xml .= "<id>".xmlTexto_prepara($row["id_ws"])."</id>\n";
  511 + $xml .= "<tipo>".$row["tipo_ws"]."</tipo>\n";
  512 + $xml .= "</item>\n";
  513 + $jsonItems[] = array(
  514 + "title"=>$row["nome_ws"],
  515 + "description"=>$row["desc_ws"],
  516 + "link"=>$link."&output=json",
  517 + "author"=>$row["autor_ws"],
  518 + "id"=>$row["id_ws"],
  519 + "tipo"=>$row["tipo_ws"]
  520 + );
  521 + }
  522 + $json["items"] = $jsonItems;
  523 + $xml .= "</channel></rss>\n";
  524 + $dbh = null;
  525 + $dbhw = null;
  526 + if($output == "xml"){
  527 + return $xml;
  528 + }
  529 + else{
  530 + return json_encode($json);
  531 + }
  532 +}
  533 +function geraXmlAtlas($locaplic,$editores)
  534 +{
  535 + global $esquemaadmin;
  536 + //error_reporting(0);
  537 + $dbh = "";
  538 + include($locaplic."/admin/php/conexao.php");
  539 +
  540 + if($convUTF)
  541 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  542 + else
  543 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  544 + $xml .= "\n<RAIZ>\n";
  545 + //$q = "select * from i3geoadmin_atlas";
  546 + $qatlas = $dbh->query("select * from ".$esquemaadmin."i3geoadmin_atlas");
  547 +
  548 + $editor = "nao";//$editor = verificaEditores($editores);
  549 + foreach($qatlas as $row)
  550 + {
  551 + $mostra = true;
  552 + if(strtolower($row["publicado_atlas"] == "nao"))
  553 + {$mostra = false;}
  554 + if($editor)
  555 + {$mostra = true;}
  556 + if($mostra)
  557 + {
  558 + $xml .= "<ATLAS>\n";
  559 + $xml .= " <ID>".$row["id_atlas"]."</ID>\n";
  560 + $xml .= " <PUBLICADO>".$row["publicado_atlas"]."</PUBLICADO>\n";
  561 + $xml .= " <TITULO>".xmlTexto_prepara($row["titulo_atlas"])."</TITULO>\n";
  562 + $xml .= " <DESCRICAO>".xmlTexto_prepara($row["desc_atlas"])."</DESCRICAO>\n";
  563 + $xml .= " <ICONE>".$row["icone_atlas"]."</ICONE>\n";
  564 + $xml .= " <LINKMAISINFO><![CDATA[".xmlTexto_prepara($row["link_atlas"])."]]></LINKMAISINFO>\n";
  565 + $xml .= " <TEMPLATEHTML>".xmlTexto_prepara($row["template_atlas"])."</TEMPLATEHTML>\n";
  566 + $xml .= " <WABERTURA>".$row["w_atlas"]."</WABERTURA>\n";
  567 + $xml .= " <HABERTURA>".$row["h_atlas"]."</HABERTURA>\n";
  568 + $xml .= " <PRANCHADEFAULT>".$row["pranchadefault_atlas"]."</PRANCHADEFAULT>\n";
  569 + $xml .= " <TIPOGUIAS>".$row["tipoguias_atlas"]."</TIPOGUIAS>\n";
  570 + $xml .= " <BASEMAPFILE>".$row["basemapfile_atlas"]."</BASEMAPFILE>\n";
  571 + $xml .= " <PRANCHAS>\n";
  572 + $xml = geraXmlAtlas_pegapranchas($xml,$row["id_atlas"],$dbh);
  573 + $xml .= " </PRANCHAS>\n";
  574 + $xml .= " </ATLAS>\n";
  575 + }
  576 + }
  577 + $xml .= "</RAIZ>\n";
  578 + $dbh = null;
  579 + $dbhw = null;
  580 + return $xml;
  581 +}
  582 +function geraXmlIdentifica($perfil,$locaplic,$editores="")
  583 +{
  584 + global $esquemaadmin;
  585 + $editor = "nao";//$editor = verificaEditores($editores);
  586 + if (!isset($perfil)){$perfil = "";}
  587 + $perfil = str_replace(","," ",$perfil);
  588 + $perfil = explode(" ",$perfil);
  589 + $dbh = "";
  590 + include($locaplic."/admin/php/conexao.php");
  591 + if($convUTF)
  592 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  593 + else
  594 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  595 + $xml .= "\n<SISTEMAS>\n";
  596 + $q = "select * from ".$esquemaadmin."i3geoadmin_identifica ";
  597 + $qi = $dbh->query($q);
  598 + foreach($qi as $row)
  599 + {
  600 + $mostra = true;
  601 + if(strtolower($row["publicado_i"] == "nao"))
  602 + {$mostra = false;}
  603 + if($editor)
  604 + {$mostra = true;}
  605 + if($mostra)
  606 + {
  607 + $xml .= " <FUNCAO>\n";
  608 + $xml .= " <NOMESIS>".xmlTexto_prepara($row["nome_i"])."</NOMESIS>\n";
  609 + $xml .= " <ABRIR>".xmlTexto_prepara($row["abrir_i"])."</ABRIR>\n";
  610 + $xml .= " <PUBLICADO>".$row["publicado_i"]."</PUBLICADO>\n";
  611 + $target = $row["target_i"];
  612 + if($target == ""){$target = "_self";}
  613 + $xml .= " <TARGET>".$target."</TARGET>\n";
  614 + $xml .= " </FUNCAO>\n";
  615 + }//error_reporting(0);
  616 + }
  617 + $xml .= "</SISTEMAS>\n";
  618 + $dbh = null;
  619 + $dbhw = null;
  620 + return $xml;
  621 +}
  622 +function geraXmlMapas($perfil,$locaplic,$editores)
  623 +{
  624 + global $esquemaadmin;
  625 + if (!isset($perfil)){$perfil = "";}
  626 + $perfil = str_replace(","," ",$perfil);
  627 + $perfil = explode(" ",$perfil);
  628 + $dbh = "";
  629 + include($locaplic."/admin/php/conexao.php");
  630 + if($convUTF)
  631 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  632 + else
  633 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  634 + $xml .= "\n<MAPAS>\n";
  635 + $q = "select * from ".$esquemaadmin."i3geoadmin_mapas";
  636 + $q = $dbh->query($q);
  637 + $editor = "nao";//$editor = "nao";//verificaEditores($editores);
  638 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  639 + $c = "/classesphp/xml.php";
  640 + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){
  641 + $c = "\classesphp\xml.php";
  642 + }
  643 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__)));
  644 + foreach($q as $row)
  645 + {
  646 + $mostraMapa = false;
  647 + if($row["perfil_mapa"] == "")
  648 + {$mostraMapa = true;}
  649 + else
  650 + {
  651 + $perfilMapa = explode(" ",str_replace(","," ",$row["perfil_mapa"]));
  652 + $mostraMapa = array_in_array($perfil,$perfilMapa);
  653 + }
  654 + if(strtolower($row["publicado_mapa"] == "nao"))
  655 + {$mostraMapa = false;}
  656 + if($editor)
  657 + {$mostraMapa = true;}
  658 +
  659 + if($mostraMapa)
  660 + {
  661 + $xml .= "<MAPA>\n";
  662 + $perfil = $row["perfil_mapa"];
  663 + $xml .= " <PERFIL>".$perfil."</PERFIL>\n";
  664 + $xml .= " <NOME>".xmlTexto_prepara($row["nome_mapa"])."</NOME>\n";
  665 + $xml .= " <DESCRICAO>".xmlTexto_prepara($row["desc_mapa"])."</DESCRICAO>\n";
  666 + $xml .= " <IMAGEM>".xmlTexto_prepara($row["imagem_mapa"])."</IMAGEM>\n";
  667 + $xml .= " <TEMAS>".$row["temas_mapa"]."</TEMAS>\n";
  668 + $xml .= " <LIGADOS>".$row["ligados_mapa"]."</LIGADOS>\n";
  669 + $extensao = $row["ext_mapa"];
  670 + $xml .= " <EXTENSAO>".$extensao."</EXTENSAO>\n";
  671 + $outros = xmlTexto_prepara($row["outros_mapa"]);
  672 + $xml .= " <OUTROS><![CDATA[".$outros."]]></OUTROS>\n";
  673 + $linkdireto = xmlTexto_prepara($row["linkdireto_mapa"]);
  674 + if(empty($linkdireto)){
  675 + $linkdireto = $url."/ms_criamapa.php?mapext=".$extensao."&perfil=".$perfil."&temasa=".$temas."&layers=".$ligados.$row["outros_mapa"];
  676 + $linkdireto = xmlTexto_prepara($linkdireto);
  677 + }
  678 + $xml .= " <LINKDIRETO><![CDATA[".$linkdireto."]]></LINKDIRETO>\n";
  679 + $xml .= " <PUBLICADO>".$row["publicado_mapa"]."</PUBLICADO>\n";
  680 + $xml .= " <ID_MAPA>".$row["id_mapa"]."</ID_MAPA>\n";
  681 + if($row["mapfile"] != ""){
  682 + $xml .= " <CONTEMMAPFILE>sim</CONTEMMAPFILE>\n";
  683 + }
  684 + else{
  685 + $xml .= " <CONTEMMAPFILE>nao</CONTEMMAPFILE>\n";
  686 + }
  687 + $xml .= "</MAPA>\n";
  688 + }
  689 + }
  690 + $xml .= "</MAPAS>\n";
  691 + $dbh = null;
  692 + $dbhw = null;
  693 + return $xml;
  694 +}
  695 +//mostra apenas os mapas que possuem outros_mapa definido, o que e tipico do sistema de metadados estatisticos
  696 +function geraRSSmapas($locaplic,$output)
  697 +{
  698 + global $esquemaadmin;
  699 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  700 + $c = "/classesphp/xml.php";
  701 + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){
  702 + $c = "\classesphp\xml.php";
  703 + }
  704 + $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__)));
  705 + $descricao = "'<![CDATA[Outros links<br>";
  706 + $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||'&fundo=e_wsm >Openlayers 1</a><br><br>";
  707 + $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||'&fundo= >Openlayers 2</a><br><br>";
  708 + $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||'&fundo=e_wsm&botoes=legenda pan zoombox zoomtot zoomin zoomout distancia area identifica >Openlayers 3</a><br><br>";
  709 + $descricao .= "<a href=$url/mashups/openlayers.php?restauramapa='||id_mapa||' >Openlayers 4</a><br><br>";
  710 + $descricao .= "<img src=$url/ferramentas/salvamapa/geraminiatura.php?w=300&h=300&restauramapa='||id_mapa||' >]]>'";
  711 + $sql = "select '' as tipo_ws,'".$url."/ms_criamapa.php?restauramapa='||id_mapa as link_ws, nome_mapa as nome_ws, ".$descricao." as desc_ws, '' as autor_ws from ".$esquemaadmin."i3geoadmin_mapas WHERE publicado_mapa = 'sim' AND mapfile != ''";
  712 + //echo $sql;exit;
  713 + return geraXmlRSS($locaplic,$sql,"Mapas cadastrados",$output);
  714 +}
  715 +
  716 +//
  717 +//$id_menu = id do menu que ser&aacute; montado
  718 +//$perfil = perfis separados por espa&ccedil;os
  719 +//$tipo = gruposeraiz|subgrupos|temas
  720 +//$dbh objeto com a conex&atilde;o com o banco
  721 +//$locaplic = localiza&ccedil;&atilde;o do i3geo no servidor
  722 +//
  723 +function geraXmlMenutemas($perfil,$id_menu,$tipo,$locaplic)
  724 +{
  725 + global $esquemaadmin;
  726 + xml_testaNum([$id_menu]);
  727 + $dbh = "";
  728 + include($locaplic."/admin/php/conexao.php");
  729 + if (!isset($perfil)){$perfil = "";}
  730 + $perfil = str_replace(","," ",$perfil);
  731 + $perfil = explode(" ",$perfil);
  732 + if($convUTF)
  733 + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">";
  734 + else
  735 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  736 + $xml .= "\n<TEMASGEO>\n";
  737 + if(!isset($id_menu))
  738 + $xml .= "<CABECALHO>Utilize ?id_menu=1 por exemplo</CABECALHO>\n";
  739 + else
  740 + $xml .= "<CABECALHO></CABECALHO>\n";
  741 + //
  742 + //pega os temas na raiz
  743 + //
  744 + $q = "select nome_tema,codigo_tema,desc_tema,link_tema,tipoa_tema,tags_tema,kml_tema,ogc_tema,download_tema,r.perfil as perfil from ".$esquemaadmin."i3geoadmin_raiz as r,".$esquemaadmin."i3geoadmin_temas as temas where r.id_nivel = 0 and r.id_tema = temas.id_tema and r.id_menu = $id_menu ";
  745 + $qtemasraiz = $dbh->query($q);
  746 + $xml = geraXmlMenutemas_notema($qtemasraiz,$xml,$perfil);
  747 + $q = "select nome_grupo,desc_grupo,n1.id_grupo,n1.id_n1,n1.n1_perfil as perfil from ".$esquemaadmin."i3geoadmin_n1 as n1,".$esquemaadmin."i3geoadmin_grupos as grupos where n1.id_menu = $id_menu and n1.id_grupo = grupos.id_grupo ";
  748 + $qgrupos = $dbh->query($q);
  749 + foreach($qgrupos as $row)
  750 + {
  751 + //filtra pelo perfil
  752 + if($row["perfil"] == "")
  753 + {$mostra = true;}
  754 + else
  755 + {
  756 + $perfilatual = explode(" ",str_replace(","," ",$row["perfil"]));
  757 + $mostra = array_in_array($perfil,$perfilatual);
  758 + }
  759 + if($mostra)
  760 + {
  761 + $xml .= "<GRUPO>\n";
  762 + $xml .= " <GTIPO>".xmlTexto_prepara($row["nome_grupo"])."</GTIPO>\n";
  763 + //
  764 + //pega temas na raiz
  765 + //
  766 + $q = "select nome_tema,codigo_tema,desc_tema,link_tema,tipoa_tema,tags_tema,kml_tema,ogc_tema,download_tema,r.perfil as perfil from ".$esquemaadmin."i3geoadmin_raiz as r,".$esquemaadmin."i3geoadmin_temas as temas where r.nivel = 1 and r.id_nivel = ".$row["id_n1"]." and r.id_tema = temas.id_tema and r.id_menu = $id_menu ";
  767 + $qtemasraiz = $dbh->query($q);
  768 + $xml = geraXmlMenutemas_notema($qtemasraiz,$xml,$perfil);
  769 + if(isset($tipo) && ($tipo == "subgrupos") || ($tipo == ""))
  770 + $xml = geraXmlMenutemas_pegasubgrupos($row["id_n1"],$xml,$dbh,$tipo,$perfil);
  771 + $xml .= " <DTIPO>".xmlTexto_prepara($row["desc_grupo"])."</DTIPO>\n";
  772 + $xml .= " <PERFIL>".$row["perfil"]."</PERFIL>\n";
  773 + $xml .= "</GRUPO>\n";
  774 + }
  775 + }
  776 + $xml .= "</TEMASGEO>\n";
  777 + $dbh = null;
  778 + $dbhw = null;
  779 + return $xml;
  780 +}
  781 +function geraXmlMenutemas_pegasubgrupos($id_n1,$xml,$dbh,$tipo,$perfil)
  782 +{
  783 + global $esquemaadmin;
  784 + xml_testaNum([$id_n1]);
  785 + $q = "select subgrupos.id_subgrupo,nome_subgrupo,id_n2,n2.n2_perfil as perfil from ".$esquemaadmin."i3geoadmin_n2 as n2,".$esquemaadmin."i3geoadmin_subgrupos as subgrupos where n2.id_n1 = $id_n1 and n2.id_subgrupo = subgrupos.id_subgrupo ";
  786 + //echo $q;exit;
  787 + $qsgrupos = $dbh->query($q);
  788 + foreach($qsgrupos as $row)
  789 + {
  790 + if($row["perfil"] == "")
  791 + $mostra = true;
  792 + else
  793 + {
  794 + $perfilatual = explode(" ",str_replace(","," ",$row["perfil"]));
  795 + $mostra = array_in_array($perfil,$perfilatual);
  796 + }
  797 + if($mostra)
  798 + {
  799 + $xml .= "<SGRUPO>\n";
  800 + $xml .= "<SDTIPO>".xmlTexto_prepara($row["nome_subgrupo"])."</SDTIPO>\n";
  801 + $xml .= "<PERFIL>".xmlTexto_prepara($row["perfil"])."</PERFIL>\n";
  802 + if(isset($tipo) && ($tipo == "temas") || ($tipo == ""))
  803 + $xml = geraXmlMenutemas_pegatemas($row["id_n2"],$xml,$dbh,$perfil);
  804 + $xml .= "</SGRUPO>\n";
  805 + }
  806 + }
  807 + return $xml;
  808 +}
  809 +function geraXmlMenutemas_pegatemas($id_n2,$xml,$dbh,$perfil)
  810 +{
  811 + global $esquemaadmin;
  812 + xml_testaNum([$id_n2]);
  813 + $q = "select nome_tema,codigo_tema,desc_tema,link_tema,tipoa_tema,tags_tema,kml_tema,ogc_tema,download_tema,n3.n3_perfil as perfil from ".$esquemaadmin."i3geoadmin_n3 as n3,".$esquemaadmin."i3geoadmin_temas as temas where n3.id_n2 = $id_n2 and n3.id_tema = temas.id_tema ";
  814 + $qtemas = $dbh->query($q);
  815 + $xml = geraXmlMenutemas_notema($qtemas,$xml,$perfil);
  816 + return $xml;
  817 +}
  818 +function geraXmlMenutemas_notema($qtemas,$xml,$perfil)
  819 +{
  820 + global $esquemaadmin;
  821 + foreach($qtemas as $row)
  822 + {
  823 + if($row["perfil"] == "")
  824 + {$mostra = true;}
  825 + else
  826 + {
  827 + $perfilatual = explode(" ",str_replace(","," ",$row["perfil"]));
  828 + $mostra = array_in_array($perfil,$perfilatual);
  829 + }
  830 + if($mostra)
  831 + {
  832 + $xml .= "<TEMA>\n";
  833 + $xml .= "<TID>".$row["codigo_tema"]."</TID>\n";
  834 + $xml .= "<PERFIL>".$row["perfil"]."</PERFIL>\n";
  835 + $xml .= "<TNOME>".xmlTexto_prepara($row["nome_tema"])."</TNOME>\n";
  836 + $xml .= "<TDESC>".xmlTexto_prepara($row["desc_tema"])."</TDESC>\n";
  837 + $xml .= "<TLINK><![CDATA[".xmlTexto_prepara($row["link_tema"])."]]></TLINK>\n";
  838 + $xml .= "<TIPOA>".$row["tipoa_tema"]."</TIPOA>\n";
  839 + $xml .= "<TAGS>".xmlTexto_prepara($row["tags_tema"])."</TAGS>\n";
  840 + $xml .= "<KML>".$row["kml_tema"]."</KML>\n";
  841 + if($row["tipoa_tema"] == "WMS")
  842 + {$xml .= "<OGC>nao</OGC>\n";}
  843 + else
  844 + {$xml .= "<OGC>".$row["ogc_tema"]."</OGC>\n";}
  845 + $xml .= "<DOWNLOAD>".$row["download_tema"]."</DOWNLOAD>\n";
  846 + $xml .= "<NACESSOS></NACESSOS>\n";
  847 + $xml .= "</TEMA>\n";
  848 + }
  849 + }
  850 + return $xml;
  851 +}
  852 +function geraXmlAtlas_pegapranchas($xml,$id_atlas,$dbh)
  853 +{
  854 + global $esquemaadmin;
  855 + xml_testaNum([$id_atlas]);
  856 + $q = "select * from ".$esquemaadmin."i3geoadmin_atlasp as p where p.id_atlas = $id_atlas order by ordem_prancha";
  857 + $qpranchas = $dbh->query($q);
  858 + foreach($qpranchas as $row)
  859 + {
  860 + $xml .= " <PRANCHA>\n";
  861 + $xml .= " <ID>".$row["id_prancha"]."</ID>\n";
  862 + $xml .= " <TITULO>".xmlTexto_prepara($row["titulo_prancha"])."</TITULO>\n";
  863 + $xml .= " <DESCRICAO>".xmlTexto_prepara($row["desc_prancha"])."</DESCRICAO>\n";
  864 + $xml .= " <ICONE>".$row["icone_prancha"]."</ICONE>\n";
  865 + $xml .= " <LINKMAISINFO><![CDATA[".xmlTexto_prepara($row["link_prancha"])."]]></LINKMAISINFO>\n";
  866 + $xml .= " <WABERTURA>".$row["w_prancha"]."</WABERTURA>\n";
  867 + $xml .= " <HABERTURA>".$row["h_prancha"]."</HABERTURA>\n";
  868 + $xml .= " <MAPEXT>".$row["mapext_prancha"]."</MAPEXT>\n";
  869 + $xml .= " <TEMAS>\n";
  870 + $xml = geraXmlAtlas_pegatemas($xml,$row["id_prancha"],$dbh);
  871 + $xml .= " </TEMAS>\n";
  872 + $xml .= " </PRANCHA>\n";
  873 + }
  874 + return $xml;
  875 +}
  876 +function geraXmlAtlas_pegatemas($xml,$id_prancha,$dbh)
  877 +{
  878 + global $esquemaadmin;
  879 + xml_testaNum([$id_prancha]);
  880 + $q = "select t.codigo_tema,t.ligado_tema from ".$esquemaadmin."i3geoadmin_atlast as t where t.id_prancha = '$id_prancha' order by ordem_tema";
  881 + //echo $q;
  882 + $qtemas = $dbh->query($q);
  883 + foreach($qtemas as $row)
  884 + {
  885 + $xml .= "<TEMA>\n";
  886 + $xml .= "<CODIGO>".$row["codigo_tema"]."</CODIGO>\n";
  887 + $xml .= "<LIGADO>".$row["ligado_tema"]."</LIGADO>\n";
  888 + $xml .= "</TEMA>\n";
  889 + }
  890 + return $xml;
  891 +}
  892 +function geraXmlSistemas_pegafuncoes($perfil,$xml,$id_sistema,$dbh)
  893 +{
  894 + global $esquemaadmin;
  895 + xml_testaNum([$id_sistema]);
  896 + $q = "select * from ".$esquemaadmin."i3geoadmin_sistemasf where id_sistema = '$id_sistema'";
  897 + $qtemas = $dbh->query($q);
  898 + foreach($qtemas as $row)
  899 + {
  900 + if($row["perfil_funcao"] == "")
  901 + $mostra = true;
  902 + else
  903 + {
  904 + $perfilF = explode(" ",str_replace(","," ",$row["perfil_funcao"]));
  905 + $mostra = array_in_array($perfil,$perfilF);
  906 + }
  907 + if($mostra)
  908 + {
  909 + $xml .= "<FUNCAO>\n";
  910 + $xml .= " <NOMEFUNCAO>".xmlTexto_prepara($row["nome_funcao"])."</NOMEFUNCAO>\n";
  911 + $xml .= " <ABRIR>".xmlTexto_prepara($row["abrir_funcao"])."</ABRIR>\n";
  912 + $xml .= " <JANELAW>".$row["w_funcao"]."</JANELAW>\n";
  913 + $xml .= " <JANELAH>".$row["h_funcao"]."</JANELAH>\n";
  914 + $xml .= " <PERFIL>".$row["perfil_funcao"]."</PERFIL>\n";
  915 + $xml .= "</FUNCAO>\n";
  916 + }
  917 + }
  918 + return $xml;
  919 +}
  920 +function array_in_array($needle, $haystack)
  921 +{
  922 + //Make sure $needle is an array for foreach
  923 + if(!is_array($needle)) $needle = array($needle);
  924 + //For each value in $needle, return TRUE if in $haystack
  925 + foreach($needle as $pin)
  926 + if(in_array($pin, $haystack)) return TRUE;
  927 + //Return FALSE if none of the values from $needle are found in $haystack
  928 + return FALSE;
  929 +}
  930 +function xmlTexto_prepara($texto)
  931 +{
  932 + return str_replace("&","&amp;",$texto);
  933 +}
  934 +function entity_decode($texto)
  935 +{
  936 + return html_entity_decode($texto);
  937 +}
  938 +function xml_testaNum($valores){
  939 + foreach ($valores as $valor) {
  940 + if(!empty($valor) && !is_numeric($valor)) {
  941 + ob_clean();
  942 + header ( "HTTP/1.1 403 valor nao numerico" );
  943 + exit;
  944 + }
  945 + }
  946 +}
  947 +?>
... ...
js/guias.js
... ... @@ -218,8 +218,6 @@ i3GEO.guias =
218 218 // combo de opcoes para abrir os mapas
219 219 // salvos
220 220 // como mapfiles
221   - // esses links tambem sao colocados em
222   - // admin/php/xml.php geraRSSmapas
223 221 combo =
224 222 "<select style='width:170px;' onchange='i3GEO.guias.CONFIGURA.mapas.mostraLink(" + ig1
225 223 + ",this.value)'>"
... ...
rss/index.js
1 1 botoesIni = [
2 2 {
3   - "link": "../admin/xmlmetaestatogc.php",
  3 + "link": "xmlmetaestatogc.php",
4 4 "corpo": $trad("xmlWmsMetaestat",g_traducao_rss)
5 5 },{
6   - "link": "../admin/rssmapas.php",
  6 + "link": "rssmapas.php",
7 7 "corpo": $trad("verRss",g_traducao_rss)
8 8 },{
9   - "link": "../admin/rssgrupos.php?output=xml",
  9 + "link": "rssgrupos.php?output=xml",
10 10 "corpo": $trad("rssArvore",g_traducao_rss)
11 11 },{
12   - "link": "../admin/rssgrupos.php?output=json",
  12 + "link": "rssgrupos.php?output=json",
13 13 "corpo": $trad("rssArvoreJson",g_traducao_rss)
14 14 },{
15   - "link": "../admin/rsscomentariostemas.php",
16   - "corpo": $trad("rssComentarios",g_traducao_rss)
17   - },{
18   - "link": "../admin/xmlservicosws.php",
  15 + "link": "xmlservicosws.php",
19 16 "corpo": $trad("xmlWebServ",g_traducao_rss)
20 17 },{
21   - "link": "../admin/xmlservicosws.php?output=json",
  18 + "link": "xmlservicosws.php?output=json",
22 19 "corpo": $trad("xmlWebServJson",g_traducao_rss)
23 20 },{
24   - "link": "../admin/xmlservicoswms.php",
  21 + "link": "xmlservicoswms.php",
25 22 "corpo": $trad("xmlWms",g_traducao_rss)
26 23 },{
27   - "link": "../admin/xmlservicoswms.php?output=json",
  24 + "link": "xmlservicoswms.php?output=json",
28 25 "corpo": $trad("xmlWmsJson",g_traducao_rss)
29 26 },{
30   - "link": "../admin/xmlgeorss.php?output=json",
  27 + "link": "xmlgeorss.php?output=json",
31 28 "corpo": $trad("xmlGeoRssJson",g_traducao_rss)
32 29 },{
33   - "link": "../admin/xmlmapas.php",
  30 + "link": "xmlmapas.php",
34 31 "corpo": $trad("xmlMapas",g_traducao_rss)
35 32 },{
36   - "link": "../admin/rssmapas.php",
  33 + "link": "rssmapas.php",
37 34 "corpo": $trad("rssMapas",g_traducao_rss)
38 35 },{
39   - "link": "../admin/rssmapas.php?output=json",
  36 + "link": "rssmapas.php?output=json",
40 37 "corpo": $trad("rssMapasJson",g_traducao_rss)
41 38 },{
42   - "link": "../admin/xmlsistemas.php",
  39 + "link": "xmlsistemas.php",
43 40 "corpo": $trad("xmlSistAdiciona",g_traducao_rss)
44 41 },{
45   - "link": "../admin/xmlgeorss.php",
  42 + "link": "xmlgeorss.php",
46 43 "corpo": $trad("xmlGeoRss",g_traducao_rss)
47 44 }
48 45 ];
... ...
rss/rssgrupos.php 0 → 100755
... ... @@ -0,0 +1,47 @@
  1 +<?php
  2 +/*
  3 +Title: rssgrupos
  4 +
  5 +Monta um arquivo XML no padr&atilde;o RSS contendo a lista de grupos cadastrados.
  6 +
  7 +<http://localhost/i3geo/admin/rssgrupos.php>
  8 +
  9 +Licenca:
  10 +
  11 +GPL2
  12 +
  13 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  14 +
  15 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  16 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  17 +
  18 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  19 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  20 +GNU conforme publicada pela Free Software Foundation;
  21 +
  22 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  23 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  24 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  25 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  26 +Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  27 +GNU junto com este programa; se n&atilde;o, escreva para a
  28 +Free Software Foundation, Inc., no endere&ccedil;o
  29 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  30 +
  31 +Arquivo:
  32 +
  33 +i3geo/admin/rssgrupos.php
  34 +*/
  35 +error_reporting(0);
  36 +if(!isset($locaplic)){
  37 + include(dirname(__FILE__)."/../ms_configura.php");
  38 +}
  39 +include_once($locaplic."/classesphp/xml.php");
  40 +if(empty ($_GET["output"])){
  41 + $_GET["output"] = "xml";
  42 +}
  43 +if($_GET["output"] == "xml" || $_GET["output"] == "json"){
  44 + echo header("Content-type: application/".$_GET["output"]);
  45 + echo geraRSSgrupos($locaplic,$_GET["output"]);
  46 +}
  47 +?>
0 48 \ No newline at end of file
... ...
rss/rssmapas.php 0 → 100755
... ... @@ -0,0 +1,47 @@
  1 +<?php
  2 +/*
  3 +Title: rssmapas
  4 +
  5 +Monta um arquivo XML, no padr&atilde;o RSS, contendo a lista de links para outros mapas.
  6 +
  7 +<http://localhost/i3geo/admin/rssmapas.php>
  8 +
  9 +Licenca:
  10 +
  11 +GPL2
  12 +
  13 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  14 +
  15 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  16 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  17 +
  18 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  19 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  20 +GNU conforme publicada pela Free Software Foundation;
  21 +
  22 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  23 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  24 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  25 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  26 +Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  27 +GNU junto com este programa; se n&atilde;o, escreva para a
  28 +Free Software Foundation, Inc., no endere&ccedil;o
  29 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  30 +
  31 +Arquivo:
  32 +
  33 +i3geo/admin/rssmapas.php
  34 +*/
  35 +error_reporting(0);
  36 +if(!isset($locaplic)){
  37 + include(dirname(__FILE__)."/../ms_configura.php");
  38 +}
  39 +include_once($locaplic."/classesphp/xml.php");
  40 +if(empty ($_GET["output"])){
  41 + $_GET["output"] = "xml";
  42 +}
  43 +if($_GET["output"] == "xml" || $_GET["output"] == "json"){
  44 + echo header("Content-type: application/".$_GET["output"]);
  45 + echo geraRSSmapas($locaplic,$_GET["output"]);
  46 +}
  47 +?>
0 48 \ No newline at end of file
... ...
rss/rsssubgrupos.php 0 → 100755
... ... @@ -0,0 +1,53 @@
  1 +<?php
  2 +/*
  3 +Title: rsssubgrupos
  4 +
  5 +Monta um arquivo XML no padr&atilde;o RSS contendo a lista de subgrupos cadastrados.
  6 +
  7 +<http://localhost/i3geo/admin/rsssubgrupos.php?id=1>
  8 +
  9 +<geraRSSsubgrupos>
  10 +
  11 +Parametros:
  12 +
  13 +id {string} - código do grupo
  14 +
  15 +Licenca:
  16 +
  17 +GPL2
  18 +
  19 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  20 +
  21 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  22 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  23 +
  24 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  25 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  26 +GNU conforme publicada pela Free Software Foundation;
  27 +
  28 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  29 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  30 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  31 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  32 +Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  33 +GNU junto com este programa; se n&atilde;o, escreva para a
  34 +Free Software Foundation, Inc., no endere&ccedil;o
  35 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  36 +
  37 +Arquivo:
  38 +
  39 +i3geo/admin/rsssubgrupos.php
  40 +*/
  41 +error_reporting(0);
  42 +if(!isset($locaplic)){
  43 + include(dirname(__FILE__)."/../ms_configura.php");
  44 +}
  45 +include_once($locaplic."/classesphp/xml.php");
  46 +if(empty ($_GET["output"])){
  47 + $_GET["output"] = "xml";
  48 +}
  49 +if($_GET["output"] == "xml" || $_GET["output"] == "json"){
  50 + echo header("Content-type: application/".$_GET["output"]);
  51 + echo geraRSSsubgrupos($locaplic,(int)($_GET["id"]), $_GET["output"]);
  52 +}
  53 +?>
... ...
rss/rsstemas.php 0 → 100755
... ... @@ -0,0 +1,53 @@
  1 +<?php
  2 +/*
  3 +Title: rsstemas
  4 +
  5 +Monta um arquivo XML no padr&atilde;o RSS contendo a lista de temas cadastrados.
  6 +
  7 +<http://localhost/i3geo/admin/rsstemas.php?id=1>
  8 +
  9 +<geraRSStemas>
  10 +
  11 +Parametros:
  12 +
  13 +id {string} - código do subgrupo
  14 +
  15 +Licenca:
  16 +
  17 +GPL2
  18 +
  19 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  20 +
  21 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  22 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  23 +
  24 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  25 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  26 +GNU conforme publicada pela Free Software Foundation;
  27 +
  28 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  29 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  30 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  31 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  32 +Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  33 +GNU junto com este programa; se n&atilde;o, escreva para a
  34 +Free Software Foundation, Inc., no endere&ccedil;o
  35 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  36 +
  37 +Arquivo:
  38 +
  39 +i3geo/admin/rsstemas.php
  40 +*/
  41 +error_reporting(0);
  42 +if(!isset($locaplic)){
  43 + include(dirname(__FILE__)."/../ms_configura.php");
  44 +}
  45 +include_once($locaplic."/classesphp/xml.php");
  46 +if(empty ($_GET["output"])){
  47 + $_GET["output"] = "xml";
  48 +}
  49 +if($_GET["output"] == "xml" || $_GET["output"] == "json"){
  50 + echo header("Content-type: application/".$_GET["output"]);
  51 + echo geraRSStemas($locaplic,(int)($_GET["id"]), $_GET["output"]);
  52 +}
  53 +?>
0 54 \ No newline at end of file
... ...
rss/rsstemasraiz.php 0 → 100755
... ... @@ -0,0 +1,50 @@
  1 +<?php
  2 +/*
  3 + * Title: rsstemasraiz
  4 + *
  5 + * Monta um arquivo XML no padr&atilde;o RSS contendo a lista de temas inseridos na raiz de um determinado n&iacute;vel.
  6 + *
  7 + * <http://localhost/i3geo/admin/rsstemasrais.php?id=1&nivel=1>
  8 + *
  9 + * <geraRSStemasRaiz>
  10 + *
  11 + * Parametros:
  12 + *
  13 + * id {string} - código do nó
  14 + *
  15 + * nivel {string} - n&iacute;vel do nó
  16 + *
  17 + * Licenca:
  18 + *
  19 + * GPL2
  20 + *
  21 + * i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  22 + *
  23 + * Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  24 + * Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  25 + *
  26 + * Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  27 + * e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  28 + * GNU conforme publicada pela Free Software Foundation;
  29 + *
  30 + * Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  31 + * por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  32 + * de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  33 + * Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  34 + * Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  35 + * GNU junto com este programa; se n&atilde;o, escreva para a
  36 + * Free Software Foundation, Inc., no endere&ccedil;o
  37 + * 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  38 + *
  39 + * Arquivo:
  40 + *
  41 + * i3geo/admin/rsstemasraiz.php
  42 + */
  43 +error_reporting(0);
  44 +if (! isset($locaplic)) {
  45 + include (dirname(__FILE__) . "/../ms_configura.php");
  46 +}
  47 +include_once ($locaplic . "/classesphp/xml.php");
  48 +echo header("Content-type: application/xml");
  49 +echo geraRSStemasRaiz($locaplic, (int) $id, (int) $nivel);
  50 +?>
0 51 \ No newline at end of file
... ...
rss/xmlgeorss.php 0 → 100755
... ... @@ -0,0 +1,49 @@
  1 +<?php
  2 +/*
  3 +Title: xmlgeorss
  4 +
  5 +Monta um arquivo XML no padr&atilde;o RSS contendo a lista de links no padr&atilde;o GEORSS cadastrados no sistema.
  6 +
  7 +<http://localhost/i3geo/admin/xmlgeorss.php>
  8 +
  9 +<geraXmlGeorss>
  10 +
  11 +Licenca:
  12 +
  13 +GPL2
  14 +
  15 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  16 +
  17 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  18 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  19 +
  20 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  21 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  22 +GNU conforme publicada pela Free Software Foundation;
  23 +
  24 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  25 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  26 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  27 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  28 +Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  29 +GNU junto com este programa; se n&atilde;o, escreva para a
  30 +Free Software Foundation, Inc., no endere&ccedil;o
  31 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  32 +
  33 +Arquivo:
  34 +
  35 +i3geo/admin/xmlgeorss.php
  36 +*/
  37 +error_reporting(0);
  38 +if(!isset($locaplic)){
  39 + include(dirname(__FILE__)."/../ms_configura.php");
  40 +}
  41 +include_once($locaplic."/classesphp/xml.php");
  42 +if(empty ($_GET["output"])){
  43 + $_GET["output"] = "xml";
  44 +}
  45 +if($_GET["output"] == "xml" || $_GET["output"] == "json"){
  46 + echo header("Content-type: application/".$_GET["output"]);
  47 + echo geraXmlGeorss($locaplic,$_GET["output"]);
  48 +}
  49 +?>
... ...
rss/xmlmapas.php 0 → 100755
... ... @@ -0,0 +1,47 @@
  1 +<?php
  2 +/*
  3 +Title: xmlmapas
  4 +
  5 +Monta um arquivo XML contendo a lista de links para outros mapas.
  6 +
  7 +<http://localhost/i3geo/admin/xmlmapas.php>
  8 +
  9 +<geraXmlMapas>
  10 +
  11 +Licenca:
  12 +
  13 +GPL2
  14 +
  15 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  16 +
  17 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  18 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  19 +
  20 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  21 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  22 +GNU conforme publicada pela Free Software Foundation;
  23 +
  24 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  25 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  26 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  27 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  28 +Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  29 +GNU junto com este programa; se n&atilde;o, escreva para a
  30 +Free Software Foundation, Inc., no endere&ccedil;o
  31 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  32 +
  33 +Arquivo:
  34 +
  35 +i3geo/admin/xmlmapas.php
  36 +*/
  37 +error_reporting(0);
  38 +if(!isset($locaplic)){
  39 + include(dirname(__FILE__)."/../ms_configura.php");
  40 +}
  41 +include_once($locaplic."/classesphp/xml.php");
  42 +if(!isset($_GET["perfil"])){
  43 + $_GET["perfil"] = "";
  44 +}
  45 +echo header("Content-type: application/xml");
  46 +echo geraXmlMapas($_GET["perfil"],$locaplic,$_GET["editores"]);
  47 +?>
... ...
rss/xmlmetaestatogc.php 0 → 100755
... ... @@ -0,0 +1,44 @@
  1 +<?php
  2 +/*
  3 +Title: rssmetaestatogc
  4 +
  5 +Monta um arquivo XML no padr&atilde;o RSS contendo a lista servicos OGC baseados no sistema de metadados estatisticos.
  6 +
  7 +<http://localhost/i3geo/admin/rssmetaestatogc.php>
  8 +
  9 +<geraRSStemasOgc>
  10 +
  11 +Licenca:
  12 +
  13 +GPL2
  14 +
  15 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  16 +
  17 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  18 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  19 +
  20 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  21 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  22 +GNU conforme publicada pela Free Software Foundation;
  23 +
  24 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  25 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  26 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  27 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  28 +Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  29 +GNU junto com este programa; se n&atilde;o, escreva para a
  30 +Free Software Foundation, Inc., no endere&ccedil;o
  31 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  32 +
  33 +Arquivo:
  34 +
  35 +i3geo/admin/rssmetaestatogc.php
  36 +*/
  37 +error_reporting(0);
  38 +if(!isset($locaplic)){
  39 + include(dirname(__FILE__)."/../ms_configura.php");
  40 +}
  41 +include($locaplic."/classesphp/xml.php");
  42 +echo header("Content-type: application/xml");
  43 +echo geraXmlWMSmetaestat($locaplic);
  44 +?>
0 45 \ No newline at end of file
... ...
rss/xmlservicoswms.php 0 → 100755
... ... @@ -0,0 +1,49 @@
  1 +<?php
  2 +/*
  3 +Title: xmlservicoswms
  4 +
  5 +Monta um arquivo XML, no padr&atilde;o RSS, contendo a lista de links para servi&ccedil;os WMS.
  6 +
  7 +<http://localhost/i3geo/admin/xmlservicoswms.php>
  8 +
  9 +<geraXmlWMS>
  10 +
  11 +Licenca:
  12 +
  13 +GPL2
  14 +
  15 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  16 +
  17 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  18 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  19 +
  20 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  21 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  22 +GNU conforme publicada pela Free Software Foundation;
  23 +
  24 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  25 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  26 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  27 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  28 +Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  29 +GNU junto com este programa; se n&atilde;o, escreva para a
  30 +Free Software Foundation, Inc., no endere&ccedil;o
  31 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  32 +
  33 +Arquivo:
  34 +
  35 +i3geo/admin/xmlservicoswms.php
  36 +*/
  37 +error_reporting(0);
  38 +if(!isset($locaplic)){
  39 + include(dirname(__FILE__)."/../ms_configura.php");
  40 +}
  41 +include_once($locaplic."/classesphp/xml.php");
  42 +if(empty ($_GET["output"])){
  43 + $_GET["output"] = "xml";
  44 +}
  45 +if($_GET["output"] == "xml" || $_GET["output"] == "json"){
  46 + echo header("Content-type: application/".$_GET["output"]);
  47 + echo geraXmlWMS($locaplic,$_GET["output"]);
  48 +}
  49 +?>
0 50 \ No newline at end of file
... ...
rss/xmlservicosws.php 0 → 100755
... ... @@ -0,0 +1,45 @@
  1 +<?php
  2 +/*
  3 +Title: xmlservicosws
  4 +
  5 +Monta um arquivo XML, no padr&atilde;o RSS, contendo a lista de links para Web Services convencionais.
  6 +
  7 +<http://localhost/i3geo/admin/xmlservicosws.php>
  8 +
  9 +<geraXmlWS>
  10 +
  11 +Licenca:
  12 +
  13 +GPL2
  14 +
  15 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  16 +
  17 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  18 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  19 +
  20 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  21 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  22 +GNU conforme publicada pela Free Software Foundation;
  23 +
  24 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  25 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  26 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  27 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  28 +Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  29 +GNU junto com este programa; se n&atilde;o, escreva para a
  30 +Free Software Foundation, Inc., no endere&ccedil;o
  31 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  32 +
  33 +Arquivo:
  34 +
  35 +i3geo/admin/xmlservicosws.php
  36 +*/
  37 +
  38 +error_reporting(0);
  39 +if(!isset($locaplic)){
  40 + include(dirname(__FILE__)."/../ms_configura.php");
  41 +}
  42 +include_once($locaplic."/classesphp/xml.php");
  43 +echo header("Content-type: application/xml");
  44 +echo geraXmlWS($locaplic);
  45 +?>
... ...
rss/xmlsistemas.php 0 → 100755
... ... @@ -0,0 +1,47 @@
  1 +<?php
  2 +/*
  3 +Title: xmlsistemas
  4 +
  5 +Monta um arquivo XML, no padr&atilde;o RSS, contendo a lista de sistemas adicionais que s&atilde;o mostrados na &aacute;rvore de adi&ccedil;&atilde;o de novos temas ao mapa.
  6 +
  7 +<http://localhost/i3geo/admin/xmlsistemas.php>
  8 +
  9 +<geraXmlSistemas>
  10 +
  11 +Licenca:
  12 +
  13 +GPL2
  14 +
  15 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  16 +
  17 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  18 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  19 +
  20 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  21 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  22 +GNU conforme publicada pela Free Software Foundation;
  23 +
  24 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  25 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  26 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  27 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  28 +Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do
  29 +GNU junto com este programa; se n&atilde;o, escreva para a
  30 +Free Software Foundation, Inc., no endere&ccedil;o
  31 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  32 +
  33 +Arquivo:
  34 +
  35 +i3geo/admin/xmlsistemas.php
  36 +*/
  37 +error_reporting(0);
  38 +if(!isset($locaplic)){
  39 + include(dirname(__FILE__)."/../ms_configura.php");
  40 +}
  41 +include_once($locaplic."/classesphp/xml.php");
  42 +if(!isset($_GET["perfil"])){
  43 + $_GET["perfil"] = "";
  44 +}
  45 +echo header("Content-type: application/xml");
  46 +echo geraXmlSistemas($_GET["perfil"],$locaplic,$_GET["editores"]);
  47 +?>
... ...