"; else $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; $xml .= "\n\n"; $q = "select * from ".$esquemaadmin."i3geoadmin_sistemas"; $qatlas = $dbh->query($q); foreach($qatlas as $row) { if($row["perfil_sistema"] == "") $mostra = true; else { $perfilS = explode(" ",str_replace(","," ",$row["perfil_sistema"])); $mostra = array_in_array($perfil,$perfilS); } if(strtolower($row["publicado_sistema"] == "nao")) {$mostra = false;} if($editor) {$mostra = true;} if($mostra) { $xml .= "\n"; $xml .= " ".$row["perfil_sistema"]."\n"; $xml .= " ".$row["publicado_sistema"]."\n"; $xml .= " ".xmlTexto_prepara($row["nome_sistema"])."\n"; $xml = geraXmlSistemas_pegafuncoes($perfil,$xml,$row["id_sistema"],$dbh); $xml .= "\n"; } } $xml .= "\n"; $dbh = null; $dbhw = null; return $xml; } /* Function: geraRSStemas RSS com os temas cadastrados Parametros: locaplic {string} - localização do i3Geo no sistema de arquivos id_n2 {string} - c�digo do subgrupo do sistema de administração Retorno: RSS */ function geraRSStemas($locaplic,$id_n2,$output="xml") { global $esquemaadmin; xml_testaNum([$id_n2]); $sql = " 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 from ".$esquemaadmin."i3geoadmin_n3 as n3 LEFT JOIN ".$esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = n3.id_tema LEFT JOIN ".$esquemaadmin."i3geousr_grupotema ON n3.id_tema = i3geousr_grupotema.id_tema 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"; return geraXmlRSS($locaplic,$sql,"Lista de temas",$output); } /* Function: geraRSStemasRaiz RSS com os temas localizados na raiz de um nível Parametros: locaplic {string} - localização do i3Geo no sistema de arquivos id {string} - codigo do no nivel {string} - nível do no Retorno: RSS */ function geraRSStemasRaiz($locaplic,$id,$nivel) { global $esquemaadmin; xml_testaNum([$id,$nivel]); $sql = " 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 from ".$esquemaadmin."i3geoadmin_raiz as r LEFT JOIN ".$esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = r.id_tema LEFT JOIN ".$esquemaadmin."i3geousr_grupotema ON r.id_tema = i3geousr_grupotema.id_tema 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"; return geraXmlRSS($locaplic,$sql,"Temas na raiz"); } /* Function: geraRSSsubgrupos RSS com os subgrupos cadastrados Parametros: locaplic {string} - localização do i3Geo no sistema de arquivos id_n1 {string} - c�digo do grupo do sistema de administração Retorno: RSS */ function geraRSSsubgrupos($locaplic,$id_n1,$output="json") { global $esquemaadmin; xml_testaNum([$id_n1]); $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 "; $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"; return geraXmlRSS($locaplic,$sql,"Lista de sub-grupos",$output); } /* Function: geraRSSgrupos RSS com os grupos cadastrados Parametros: locaplic {string} - localização do i3Geo no sistema de arquivos Retorno: RSS */ function geraRSSgrupos($locaplic,$output="xml") { global $esquemaadmin; $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 "; $sql .= "from ".$esquemaadmin."i3geoadmin_n1 as n1,".$esquemaadmin."i3geoadmin_grupos as g "; $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"; return geraXmlRSS($locaplic,$sql,"Lista de grupos",$output); } /* Function: geraXmlDownload RSS com os links para sistemas de download Parametros: locaplic {string} - localização do i3Geo no sistema de arquivos Retorno: RSS */ function geraXmlDownload($locaplic) { global $esquemaadmin; $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'DOWNLOAD' and nome_ws <> ''"; return geraXmlRSS($locaplic,$sql,"Enderecos para download"); } /* Function: geraXmlWS RSS com a lista de WS cadastrados Parametros: locaplic {string} - localização do i3Geo no sistema de arquivos Retorno: RSS */ function geraXmlWS($locaplic,$output="xml") { global $esquemaadmin; $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'WS' and nome_ws <> ''"; return geraXmlRSS($locaplic,$sql,"Web services",$output); } /* Function: geraXmlKmlrss RSS com a lista de KML cadastrados Parametros: locaplic {string} - localização do i3Geo no sistema de arquivos Retorno: RSS */ function geraXmlKmlrss($locaplic) { global $esquemaadmin; $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'KML' and nome_ws <> ''"; return geraXmlRSS($locaplic,$sql,"Web services"); } /* Function: geraXmlWMS RSS com a lista de WMS cadastrados Parametros: locaplic {string} - localização do i3Geo no sistema de arquivos Retorno: RSS */ function geraXmlWMS($locaplic,$output) { global $esquemaadmin; $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where (tipo_ws = 'WMS' or tipo_ws = 'WMS-Tile' or tipo_ws = 'WMS-Time') and nome_ws <> '' order by nome_ws"; return geraXmlRSS($locaplic,$sql,"Web services WMS-OGC",$output); } function geraXmlARCGISREST($locaplic,$output) { global $esquemaadmin; $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where (tipo_ws = 'ARCGISREST') and nome_ws <> '' order by nome_ws"; return geraXmlRSS($locaplic,$sql,"WMS ARCGIS (rest)",$output); } /* Function: geraXmlWMSmetaestat RSS com a lista de WMS das variaveis cadastradas no sistema de metadados estatisticos Parametros: locaplic {string} - localização do i3Geo no sistema de arquivos Retorno: RSS */ function geraXmlWMSmetaestat($locaplic) { global $esquemaadmin; $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); $c = "/classesphp/xml.php"; if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){ $c = "\classesphp\xml.php"; } $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__))); $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"; return geraXmlRSS($locaplic,$sql,"Web services WMS-TIME OGC"); } /* Function: geraXmlGeorss RSS com a lista de GEORSS cadastrados Parametros: locaplic {string} - localização do i3Geo no sistema de arquivos Retorno: RSS */ function geraXmlGeorss($locaplic,$output) { global $esquemaadmin; $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'GEORSS' and nome_ws <> ''"; return geraXmlRSS($locaplic,$sql,"Georss",$output); } function geraXmlGeojson($locaplic,$output) { global $esquemaadmin; $sql = "select * from ".$esquemaadmin."i3geoadmin_ws where tipo_ws = 'GEOJSON' and nome_ws <> ''"; return geraXmlRSS($locaplic,$sql,"Georss",$output); } /* Function: geraXmlRSS Gera um RSS com base em um SQL compatível com o sistema de administração. O SQL deverá retornar os itens nome_ws desc_ws e link_ws Parametros: locaplic {string} - localização do i3Geo no sistema de arquivos sql {string} - SQL que será aplicado ao sistema de administração descricao {string} - descrição que será inserida no canal RSS output {string} - xml|json Retorno: RSS */ function geraXmlRSS($locaplic,$sql,$descricao,$output="xml") { global $esquemaadmin; if(empty($output)){ $output = "xml"; } //var_dump($_SERVER);exit; $dbh = ""; include($locaplic."/classesphp/conexao.php"); if($convUTF){ $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">"; } else { $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; } $xml .= ""; $xml .= "\n"; $xml .= "RSS\n"; $xml .= "".str_replace("&","&",$descricao)."\n"; $xml .= "\n"; $xml .= "\n"; $xml .= "Gerado pelo i3Geo\n"; $xml .= "pt-br\n"; $xml .= "\n"; $json = array( "description"=>$descricao, "copyright"=>"Gerado pelo i3Geo", "language"=>"pt-br" ); $jsonItems = array(); $qatlas = $dbh->query($sql); foreach($qatlas as $row) { $xml .= "\n"; $xml .= "\n"; $xml .= "".entity_decode($row["nome_ws"])."\n"; $xml .= "".xmlTexto_prepara(entity_decode($row["desc_ws"]))."\n"; $link = xmlTexto_prepara($row["link_ws"]); if(stristr($link, 'http') === FALSE){ $link = "http://".$_SERVER["HTTP_HOST"].dirname($_SERVER["REQUEST_URI"])."/".$link; } $xml .= "\n"; $xml .= "\n"; $xml .= "".xmlTexto_prepara($row["autor_ws"])."\n"; $xml .= "\n"; $xml .= "\n"; if(!isset($row["id_ws"])){ $row["id_ws"] = ""; } $xml .= "".xmlTexto_prepara($row["id_ws"])."\n"; $xml .= "".$row["tipo_ws"]."\n"; $xml .= "\n"; $jsonItems[] = array( "title"=>$row["nome_ws"], "description"=>$row["desc_ws"], "link"=>$link."&output=json", "author"=>$row["autor_ws"], "id"=>$row["id_ws"], "tipo"=>$row["tipo_ws"] ); } $json["items"] = $jsonItems; $xml .= "\n"; $dbh = null; $dbhw = null; if($output == "xml"){ return $xml; } else{ return json_encode($json); } } function geraXmlAtlas($locaplic,$editores) { global $esquemaadmin; //error_reporting(0); $dbh = ""; include($locaplic."/classesphp/conexao.php"); if($convUTF) $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">"; else $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; $xml .= "\n\n"; //$q = "select * from i3geoadmin_atlas"; $qatlas = $dbh->query("select * from ".$esquemaadmin."i3geoadmin_atlas"); $editor = "nao";//$editor = verificaEditores($editores); foreach($qatlas as $row) { $mostra = true; if(strtolower($row["publicado_atlas"] == "nao")) {$mostra = false;} if($editor) {$mostra = true;} if($mostra) { $xml .= "\n"; $xml .= " ".$row["id_atlas"]."\n"; $xml .= " ".$row["publicado_atlas"]."\n"; $xml .= " ".xmlTexto_prepara($row["titulo_atlas"])."\n"; $xml .= " ".xmlTexto_prepara($row["desc_atlas"])."\n"; $xml .= " ".$row["icone_atlas"]."\n"; $xml .= " \n"; $xml .= " ".xmlTexto_prepara($row["template_atlas"])."\n"; $xml .= " ".$row["w_atlas"]."\n"; $xml .= " ".$row["h_atlas"]."\n"; $xml .= " ".$row["pranchadefault_atlas"]."\n"; $xml .= " ".$row["tipoguias_atlas"]."\n"; $xml .= " ".$row["basemapfile_atlas"]."\n"; $xml .= " \n"; $xml = geraXmlAtlas_pegapranchas($xml,$row["id_atlas"],$dbh); $xml .= " \n"; $xml .= " \n"; } } $xml .= "\n"; $dbh = null; $dbhw = null; return $xml; } function geraXmlIdentifica($perfil,$locaplic,$editores="") { global $esquemaadmin; $editor = "nao";//$editor = verificaEditores($editores); if (!isset($perfil)){$perfil = "";} $perfil = str_replace(","," ",$perfil); $perfil = explode(" ",$perfil); $dbh = ""; include($locaplic."/classesphp/conexao.php"); if($convUTF) $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">"; else $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; $xml .= "\n\n"; $q = "select * from ".$esquemaadmin."i3geoadmin_identifica "; $qi = $dbh->query($q); foreach($qi as $row) { $mostra = true; if(strtolower($row["publicado_i"] == "nao")) {$mostra = false;} if($editor) {$mostra = true;} if($mostra) { $xml .= " \n"; $xml .= " ".xmlTexto_prepara($row["nome_i"])."\n"; $xml .= " ".xmlTexto_prepara($row["abrir_i"])."\n"; $xml .= " ".$row["publicado_i"]."\n"; $target = $row["target_i"]; if($target == ""){$target = "_self";} $xml .= " ".$target."\n"; $xml .= " \n"; }//error_reporting(0); } $xml .= "\n"; $dbh = null; $dbhw = null; return $xml; } function geraXmlMapas($perfil,$locaplic,$editores="") { global $esquemaadmin; if (!isset($perfil)){$perfil = "";} $perfil = str_replace(","," ",$perfil); $perfil = explode(" ",$perfil); $dbh = ""; include($locaplic."/classesphp/conexao.php"); if($convUTF) $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">"; else $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; $xml .= "\n\n"; $q = "select * from ".$esquemaadmin."i3geoadmin_mapas"; $q = $dbh->query($q); $editor = "nao";//$editor = "nao";//verificaEditores($editores); $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); $c = "/classesphp/xml.php"; if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){ $c = "\classesphp\xml.php"; } $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__))); foreach($q as $row) { $mostraMapa = false; if($row["perfil_mapa"] == "") {$mostraMapa = true;} else { $perfilMapa = explode(" ",str_replace(","," ",$row["perfil_mapa"])); $mostraMapa = array_in_array($perfil,$perfilMapa); } if(strtolower($row["publicado_mapa"] == "nao")) {$mostraMapa = false;} if($editor) {$mostraMapa = true;} if($mostraMapa) { $xml .= "\n"; $perfil = $row["perfil_mapa"]; $xml .= " ".$perfil."\n"; $xml .= " ".xmlTexto_prepara($row["nome_mapa"])."\n"; $xml .= " ".xmlTexto_prepara($row["desc_mapa"])."\n"; $xml .= " ".xmlTexto_prepara($row["imagem_mapa"])."\n"; $xml .= " ".$row["temas_mapa"]."\n"; $xml .= " ".$row["ligados_mapa"]."\n"; $extensao = $row["ext_mapa"]; $xml .= " ".$extensao."\n"; $outros = xmlTexto_prepara($row["outros_mapa"]); $xml .= " \n"; $linkdireto = xmlTexto_prepara($row["linkdireto_mapa"]); if(empty($linkdireto)){ $linkdireto = $url."/ms_criamapa.php?mapext=".$extensao."&perfil=".$perfil."&temasa=".$row["temas_mapa"]."&layers=".$row["ligados_mapa"].$row["outros_mapa"]; $linkdireto = xmlTexto_prepara($linkdireto); } $xml .= " \n"; $xml .= " ".$row["publicado_mapa"]."\n"; $xml .= " ".$row["id_mapa"]."\n"; if($row["mapfile"] != ""){ $xml .= " sim\n"; } else{ $xml .= " nao\n"; } $xml .= "\n"; } } $xml .= "\n"; $dbh = null; $dbhw = null; return $xml; } //mostra apenas os mapas que possuem outros_mapa definido, o que e tipico do sistema de metadados estatisticos function geraRSSmapas($locaplic,$output="xml") { global $esquemaadmin; $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); $c = "/classesphp/xml.php"; if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){ $c = "\classesphp\xml.php"; } $url = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".(basename(str_replace($c,"",__FILE__))); $descricao = "'"; $descricao .= "Openlayers 1

"; $descricao .= "Openlayers 2

"; $descricao .= "Openlayers 3

"; $descricao .= "Openlayers 4

"; $descricao .= "]]>'"; $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 != ''"; //echo $sql;exit; return geraXmlRSS($locaplic,$sql,"Mapas cadastrados",$output); } // //$id_menu = id do menu que será montado //$perfil = perfis separados por espaços //$tipo = gruposeraiz|subgrupos|temas //$dbh objeto com a conexão com o banco //$locaplic = localização do i3geo no servidor // function geraXmlMenutemas($perfil,$id_menu,$tipo,$locaplic) { global $esquemaadmin; xml_testaNum([$id_menu]); $dbh = ""; include($locaplic."/classesphp/conexao.php"); if (!isset($perfil)){$perfil = "";} $perfil = str_replace(","," ",$perfil); $perfil = explode(" ",$perfil); if($convUTF) $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">"; else $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">"; $xml .= "\n\n"; if(!isset($id_menu)) $xml .= "Utilize ?id_menu=1 por exemplo\n"; else $xml .= "\n"; // //pega os temas na raiz // $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 "; $qtemasraiz = $dbh->query($q); $xml = geraXmlMenutemas_notema($qtemasraiz,$xml,$perfil); $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 "; $qgrupos = $dbh->query($q); foreach($qgrupos as $row) { //filtra pelo perfil if($row["perfil"] == "") {$mostra = true;} else { $perfilatual = explode(" ",str_replace(","," ",$row["perfil"])); $mostra = array_in_array($perfil,$perfilatual); } if($mostra) { $xml .= "\n"; $xml .= " ".xmlTexto_prepara($row["nome_grupo"])."\n"; // //pega temas na raiz // $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 "; $qtemasraiz = $dbh->query($q); $xml = geraXmlMenutemas_notema($qtemasraiz,$xml,$perfil); if(isset($tipo) && ($tipo == "subgrupos") || ($tipo == "")) $xml = geraXmlMenutemas_pegasubgrupos($row["id_n1"],$xml,$dbh,$tipo,$perfil); $xml .= " ".xmlTexto_prepara($row["desc_grupo"])."\n"; $xml .= " ".$row["perfil"]."\n"; $xml .= "\n"; } } $xml .= "\n"; $dbh = null; $dbhw = null; return $xml; } function geraXmlMenutemas_pegasubgrupos($id_n1,$xml,$dbh,$tipo,$perfil) { global $esquemaadmin; xml_testaNum([$id_n1]); $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 "; //echo $q;exit; $qsgrupos = $dbh->query($q); foreach($qsgrupos as $row) { if($row["perfil"] == "") $mostra = true; else { $perfilatual = explode(" ",str_replace(","," ",$row["perfil"])); $mostra = array_in_array($perfil,$perfilatual); } if($mostra) { $xml .= "\n"; $xml .= "".xmlTexto_prepara($row["nome_subgrupo"])."\n"; $xml .= "".xmlTexto_prepara($row["perfil"])."\n"; if(isset($tipo) && ($tipo == "temas") || ($tipo == "")) $xml = geraXmlMenutemas_pegatemas($row["id_n2"],$xml,$dbh,$perfil); $xml .= "\n"; } } return $xml; } function geraXmlMenutemas_pegatemas($id_n2,$xml,$dbh,$perfil) { global $esquemaadmin; xml_testaNum([$id_n2]); $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 "; $qtemas = $dbh->query($q); $xml = geraXmlMenutemas_notema($qtemas,$xml,$perfil); return $xml; } function geraXmlMenutemas_notema($qtemas,$xml,$perfil) { global $esquemaadmin; foreach($qtemas as $row) { if($row["perfil"] == "") {$mostra = true;} else { $perfilatual = explode(" ",str_replace(","," ",$row["perfil"])); $mostra = array_in_array($perfil,$perfilatual); } if($mostra) { $xml .= "\n"; $xml .= "".$row["codigo_tema"]."\n"; $xml .= "".$row["perfil"]."\n"; $xml .= "".xmlTexto_prepara($row["nome_tema"])."\n"; $xml .= "".xmlTexto_prepara($row["desc_tema"])."\n"; $xml .= "\n"; $xml .= "".$row["tipoa_tema"]."\n"; $xml .= "".xmlTexto_prepara($row["tags_tema"])."\n"; $xml .= "".$row["kml_tema"]."\n"; if($row["tipoa_tema"] == "WMS") {$xml .= "nao\n";} else {$xml .= "".$row["ogc_tema"]."\n";} $xml .= "".$row["download_tema"]."\n"; $xml .= "\n"; $xml .= "\n"; } } return $xml; } function geraXmlAtlas_pegapranchas($xml,$id_atlas,$dbh) { global $esquemaadmin; xml_testaNum([$id_atlas]); $q = "select * from ".$esquemaadmin."i3geoadmin_atlasp as p where p.id_atlas = $id_atlas order by ordem_prancha"; $qpranchas = $dbh->query($q); foreach($qpranchas as $row) { $xml .= " \n"; $xml .= " ".$row["id_prancha"]."\n"; $xml .= " ".xmlTexto_prepara($row["titulo_prancha"])."\n"; $xml .= " ".xmlTexto_prepara($row["desc_prancha"])."\n"; $xml .= " ".$row["icone_prancha"]."\n"; $xml .= " \n"; $xml .= " ".$row["w_prancha"]."\n"; $xml .= " ".$row["h_prancha"]."\n"; $xml .= " ".$row["mapext_prancha"]."\n"; $xml .= " \n"; $xml = geraXmlAtlas_pegatemas($xml,$row["id_prancha"],$dbh); $xml .= " \n"; $xml .= " \n"; } return $xml; } function geraXmlAtlas_pegatemas($xml,$id_prancha,$dbh) { global $esquemaadmin; xml_testaNum([$id_prancha]); $q = "select t.codigo_tema,t.ligado_tema from ".$esquemaadmin."i3geoadmin_atlast as t where t.id_prancha = '$id_prancha' order by ordem_tema"; //echo $q; $qtemas = $dbh->query($q); foreach($qtemas as $row) { $xml .= "\n"; $xml .= "".$row["codigo_tema"]."\n"; $xml .= "".$row["ligado_tema"]."\n"; $xml .= "\n"; } return $xml; } function geraXmlSistemas_pegafuncoes($perfil,$xml,$id_sistema,$dbh) { global $esquemaadmin; xml_testaNum([$id_sistema]); $q = "select * from ".$esquemaadmin."i3geoadmin_sistemasf where id_sistema = '$id_sistema'"; $qtemas = $dbh->query($q); foreach($qtemas as $row) { if($row["perfil_funcao"] == "") $mostra = true; else { $perfilF = explode(" ",str_replace(","," ",$row["perfil_funcao"])); $mostra = array_in_array($perfil,$perfilF); } if($mostra) { $xml .= "\n"; $xml .= " ".xmlTexto_prepara($row["nome_funcao"])."\n"; $xml .= " ".xmlTexto_prepara($row["abrir_funcao"])."\n"; $xml .= " ".$row["w_funcao"]."\n"; $xml .= " ".$row["h_funcao"]."\n"; $xml .= " ".$row["perfil_funcao"]."\n"; $xml .= "\n"; } } return $xml; } function array_in_array($needle, $haystack) { //Make sure $needle is an array for foreach if(!is_array($needle)) $needle = array($needle); //For each value in $needle, return TRUE if in $haystack foreach($needle as $pin) if(in_array($pin, $haystack)) return TRUE; //Return FALSE if none of the values from $needle are found in $haystack return FALSE; } function xmlTexto_prepara($texto) { return str_replace("&","&",$texto); } function entity_decode($texto) { return html_entity_decode($texto); } function xml_testaNum($valores){ foreach ($valores as $valor) { if(!empty($valor) && !is_numeric($valor)) { ob_clean(); header ( "HTTP/1.1 403 valor nao numerico" ); exit; } } } ?>