$i,"nome"=>$nome,"link"=>$link); $temaExiste[$i] = 0; } } } } retornaJSON($temas); exit; break; case "pegaPerfis": $dados = pegaDados('SELECT * from i3geoadmin_perfis order by perfil'); if(count($dados) == 0){$dados = array("id_perfil"=>"","perfil"=>"");} retornaJSON($dados); exit; break; case "alteraMenus": if(verificaEditores($editores) == "nao") {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} retornaJSON(alteraMenus()); exit; break; case "pegaGrupos": $nome = "nome_grupo"; if($idioma != "pt") {$nome = $idioma;} $dados = pegaDados("SELECT * from i3geoadmin_grupos order by $nome"); retornaJSON($dados); exit; break; case "pegaGrupos2": $nome = "nome_grupo"; if($idioma != "pt") {$nome = $idioma;} $dados = pegaDados("SELECT desc_grupo,id_grupo,$nome as 'nome_grupo' from i3geoadmin_grupos order by $nome"); retornaJSON($dados); exit; break; case "alteraGrupos": if(verificaEditores($editores) == "nao") {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} retornaJSON(alteraGrupos()); exit; break; case "pegaSubGrupos": $dados = pegaDados('SELECT * from i3geoadmin_subgrupos order by nome_subgrupo'); retornaJSON($dados); exit; break; case "pegaSubGrupos2": $nome = "nome_subgrupo"; if($idioma != "pt") {$nome = $idioma;} $dados = pegaDados("SELECT desc_subgrupo,id_subgrupo,$nome as 'nome_subgrupo' from i3geoadmin_subgrupos order by nome_subgrupo"); retornaJSON($dados); exit; break; case "alteraSubGrupos": if(verificaEditores($editores) == "nao") {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} retornaJSON(alteraSubGrupos()); exit; break; case "pegaTemas": $sql = "SELECT * from i3geoadmin_temas where id_tema = '$id_tema'"; retornaJSON(pegaDados($sql)); exit; break; case "pegaTemaPorMapfile": $sql = "SELECT * from i3geoadmin_temas where codigo_tema = '$codigo_tema'"; $dados = pegaDados($sql); if(is_array($dados) && count($dados) == 0) { registraTema(); $dados = pegaDados($sql); } if(is_array($dados) && count($dados) > 1) {$dados = "erro. Mais de um mapfile com mesmo código registrado no banco";} retornaJSON($dados); exit; break; case "pegaTemas2": retornaJSON(pegaTemas2()); exit; break; case "alteraTemas": //$r será igual ao novo id criado, no caso de inserção de um novo tema if(verificaEditores($editores) == "nao") {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} $r = alteraTemas(); if($id == "") retornaJSON($r); else retornaJSON(pegaDados("select * from i3geoadmin_temas where id_tema = '$id'")); exit; break; case "alteraTags": if(verificaEditores($editores) == "nao") {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} $novo = alteraTags(); $sql = "SELECT * from i3geoadmin_tags WHERE id_tag = '".$novo."'"; retornaJSON(pegaDados($sql)); exit; break; case "alteraPerfis": if(verificaEditores($editores) == "nao") {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} $novo = alteraPerfis(); $sql = "SELECT * from i3geoadmin_perfis WHERE id_perfil = '".$novo."'"; retornaJSON(pegaDados($sql)); exit; break; case "excluirRegistro": if(verificaEditores($editores) == "nao") {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} if($tabela == "grupos") { $tabela = "i3geoadmin_grupos"; $coluna = "id_grupo"; $filhos = verificaFilhos(); if($filhos) { retornaJSON("erro"); exit; } } if($tabela == "tags") { $tabela = "i3geoadmin_tags"; $coluna = "id_tag"; //excluiTagTemas($id); } if($tabela == "perfis") { $tabela = "i3geoadmin_perfis"; $coluna = "id_perfil"; excluiPerfil($id); } if($tabela == "subgrupos") { $tabela = "i3geoadmin_subgrupos"; $coluna = "id_subgrupo"; $filhos = verificaFilhos(); if($filhos) { retornaJSON("erro"); exit; } } if($tabela == "temas") { $tabela = "i3geoadmin_temas"; $coluna = "id_tema"; $filhos = verificaFilhos(); if($filhos) { retornaJSON("erro"); exit; } } if($tabela == "menus") { $tabela = "i3geoadmin_menus"; $coluna = "id_menu"; $filhos = verificaFilhos(); if($filhos) { retornaJSON("erro"); exit; } } retornaJSON(exclui()); exit; break; case "listaMapsTemas": retornaJSON(listaMapsTemas()); exit; break; } function excluiPerfil($id) { require_once("conexao.php"); $perfil = ""; foreach($dbh->query("select * from i3geoadmin_perfis where perfil = '$id'") as $row) {$perfil = $row["perfil"];} if($perfil == "") {return;} $q = $dbh->query("select * from i3geoadmin_mapas"); foreach($q as $row) { $t = $row['perfil_mapa']; $i = $row['id_mapa']; $ts = str_replace($perfil,"",$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_mapas SET perfil_mapa = '$ts' WHERE id_mapa = $i"); } $q = $dbh->query("select * from i3geoadmin_menus"); foreach($q as $row) { $t = $row['perfil_menu']; $i = $row['id_menu']; $ts = str_replace($perfil,"",$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_menus SET perfil_menu = '$ts' WHERE id_menu = $i"); } $q = $dbh->query("select * from i3geoadmin_n1"); foreach($q as $row) { $t = $row['perfil_n1']; $i = $row['id_n1']; $ts = str_replace($perfil,"",$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n1 SET perfil_n1 = '$ts' WHERE id_n1 = $i"); } $q = $dbh->query("select * from i3geoadmin_n2"); foreach($q as $row) { $t = $row['perfil_n2']; $i = $row['id_n2']; $ts = str_replace($perfil,"",$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n2 SET perfil_n2 = '$ts' WHERE id_n2 = $i"); } $q = $dbh->query("select * from i3geoadmin_n3"); foreach($q as $row) { $t = $row['perfil_n3']; $i = $row['id_n3']; $ts = str_replace($perfil,"",$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n3 SET perfil_n3 = '$ts' WHERE id_n3 = $i"); } $q = $dbh->query("select * from i3geoadmin_raiz"); foreach($q as $row) { $t = $row['perfil']; $i = $row['id_raiz']; $ts = str_replace($perfil,"",$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_raiz SET perfil = '$ts' WHERE id_raiz = $i"); } $q = $dbh->query("select * from i3geoadmin_sistemasf"); foreach($q as $row) { $t = $row['perfil_funcao']; $i = $row['id_funcao']; $ts = str_replace($perfil,"",$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_sistemasf SET perfil_funcao = '$ts' WHERE id_funcao = $i"); } } function excluiTagTemas($id) { require_once("conexao.php"); $q1 = $dbh->query("select * from i3geoadmin_tags where id_tag = $id"); foreach($q1 as $row) {$nometag = $row["nome"];} if($nometag == ""){return;} $q = $dbh->query("select * from i3geoadmin_temas"); foreach($q as $row) { $t = $row['tags_tema']; $i = $row['id_tema']; $ts = str_replace($nometag,"",$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema = '$ts' WHERE id_tema = $i"); } } /* Function: pegaTemas Pega a lista de temas Parameters: filtro - texto para filtrar os dados */ function pegaTemas() { global $filtro; try { $resultado = array(); require_once("conexao.php"); foreach($dbh->query('SELECT * from i3geoadmin_temas order by nome_tema') as $row) { $continua = true; if(isset($filtro) && $filtro != "") { $continua = false; if ($row['codigo_tema'] == $filtro) {$continua = true;} $testanome = mb_convert_encoding($filtro,"UTF-8","ISO-8859-1"); if (!stristr($row['nome_tema'],$testanome) === FALSE) {$continua = true;} if (!stristr($row['tags_tema'],$testanome) === FALSE) {$continua = true;} } if($row['codigo_tema'] == ""){$continua = true;} if ($continua) $resultado[] = array( "nome_tema"=>$row['nome_tema'], "codigo_tema"=>$row['codigo_tema'], "id_tema"=>$row['id_tema'], "desc_tema"=>$row['desc_tema'], "link_tema"=>$row['link_tema'], "tipoa_tema"=>$row['tipoa_tema'], "download_tema"=>$row['download_tema'], "ogc_tema"=>$row['ogc_tema'], "kml_tema"=>$row['kml_tema'], "kmz_tema"=>$row['kmz_tema'], "tags_tema"=>$row['tags_tema'] ); } $dbh = null; $dbh = null; return $resultado; } catch (PDOException $e) { return "Error!: " . $e->getMessage(); } } function pegaTemas2() { global $filtro; try { $resultado = array(); require_once("conexao.php"); foreach($dbh->query('SELECT codigo_tema,nome_tema,id_tema from i3geoadmin_temas order by nome_tema') as $row) { $continua = true; if(isset($filtro) && $filtro != "") { $continua = false; if ($row['codigo_tema'] == $filtro) {$continua = true;} $testanome = mb_convert_encoding($filtro,"UTF-8","ISO-8859-1"); if (!stristr($row['nome_tema'],$testanome) === FALSE) {$continua = true;} } if($row['codigo_tema'] == ""){$continua = true;} if ($continua) $resultado[] = array( "nome_tema"=>$row['nome_tema'], "codigo_tema"=>$row['codigo_tema'], "id_tema"=>$row['id_tema'] ); } $dbh = null; $dbh = null; return $resultado; } catch (PDOException $e) { return "Error!: " . $e->getMessage(); } } /* Function: alteraMenus Altera o registro de um menu. Se id for vazio acrescenta o registro */ function alteraMenus() { global $nome,$desc,$id,$aberto,$perfil,$publicado_menu,$en,$es,$it; try { $retorna = ""; include("conexao.php"); if($convUTF) { $nome = utf8_encode($nome); $desc = utf8_encode($desc); } if($id != "") { $dbhw->query("UPDATE i3geoadmin_menus SET en = '$en', es = '$es', it = '$it', publicado_menu = '$publicado_menu',aberto = '$aberto', nome_menu = '$nome', desc_menu = '$desc', perfil_menu = '$perfil' WHERE id_menu = $id"); } else { $dbhw->query("INSERT INTO i3geoadmin_menus (it,es,en,publicado_menu, nome_menu, desc_menu, aberto, perfil_menu) VALUES ('','','','','', '','SIM','')"); } $dbhw = null; $dbh = null; return "ok"; } catch (PDOException $e) { return "Error!: " . $e->getMessage(); } } function alteraPerfis() { global $perfil,$id; //$perfil = resolveAcentos($perfil,"html"); try { $dbh = ""; include("conexao.php"); if($convUTF) $perfil = utf8_encode($perfil); $retorna = ""; if($id != "") { $original = ""; foreach($dbh->query("select * from i3geoadmin_perfis where id_perfil = $id") as $row) {$original = $row["perfil"];} $dbhw->query("UPDATE i3geoadmin_perfis SET perfil = '$perfil' WHERE id_perfil = $id"); if($original != "") { $q = $dbh->query("select * from i3geoadmin_mapas"); foreach($q as $row) { $t = $row['perfil_mapa']; $i = $row['id_mapa']; $ts = str_replace($original,$perfil,$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_mapas SET perfil_mapa = '$ts' WHERE id_mapa = $i"); } $q = $dbh->query("select * from i3geoadmin_menus"); foreach($q as $row) { $t = $row['perfil_menu']; $i = $row['id_menu']; $ts = str_replace($original,$perfil,$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_menus SET perfil_menu = '$ts' WHERE id_menu = $i"); } $q = $dbh->query("select * from i3geoadmin_n1"); foreach($q as $row) { $t = $row['n1_perfil']; $i = $row['id_n1']; $ts = str_replace($original,$perfil,$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n1 SET n1_perfil = '$ts' WHERE id_n1 = $i"); } $q = $dbh->query("select * from i3geoadmin_n2"); foreach($q as $row) { $t = $row['n2_perfil']; $i = $row['id_n2']; $ts = str_replace($original,$perfil,$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n2 SET n2_perfil = '$ts' WHERE id_n2 = $i"); } $q = $dbh->query("select * from i3geoadmin_n3"); foreach($q as $row) { $t = $row['n3_perfil']; $i = $row['id_n3']; $ts = str_replace($original,$perfil,$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_n3 SET n3_perfil = '$ts' WHERE id_n3 = $i"); } $q = $dbh->query("select * from i3geoadmin_raiz"); foreach($q as $row) { $t = $row['perfil']; $i = $row['id_raiz']; $ts = str_replace($original,$perfil,$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_raiz SET perfil = '$ts' WHERE id_raiz = $i"); } $q = $dbh->query("select * from i3geoadmin_sistemas"); foreach($q as $row) { $t = $row['perfil_sistema']; $i = $row['id_sistema']; $ts = str_replace($original,$perfil,$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_sistemas SET perfil_sistema = '$ts' WHERE id_sistema = $i"); } $q = $dbh->query("select * from i3geoadmin_sistemasf"); foreach($q as $row) { $t = $row['perfil_funcao']; $i = $row['id_funcao']; $ts = str_replace($original,$perfil,$t); if($t != $ts) $dbhw->query("UPDATE i3geoadmin_sistemasf SET perfil_funcao = '$ts' WHERE id_funcao = $i"); } } $retorna = $id; } else { $dbhw->query("INSERT INTO i3geoadmin_perfis (perfil) VALUES ('$perfil')"); $id = $dbh->query("SELECT * FROM i3geoadmin_perfis"); $id = $id->fetchAll(); $id = intval($id[count($id)-1]['id_perfil']); $retorna = $id; } $dbhw = null; $dbh = null; return $retorna; } catch (PDOException $e) { return "Error!: " . $e->getMessage(); } } function alteraTags() { global $nome,$id; try { $dbh = ""; //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1"); include("conexao.php"); if($convUTF) $nome = utf8_encode($nome); $retorna = ""; if($id != "") { if(!verificaDuplicados("select * from i3geoadmin_tags where nome = '$nome'",$dbh)) { $original = ""; $q = $dbh->query("select * from i3geoadmin_tags where id_tag = $id"); foreach($q as $row) {$original = $row["nome"];} $dbhw->query("UPDATE i3geoadmin_tags SET nome = '$nome' WHERE id_tag = $id"); //exclui os registros do tag alterado nos temas /* if($original != "") { $q = $dbh->query("select tags_tema,id_tema from i3geoadmin_temas"); foreach($q as $row) { $ts = $row['tags_tema']; $i = $row['id_tema']; $ts = str_replace($original,$nome,$ts); $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema = '$ts' WHERE id_tema = $i"); } } */ } $retorna = $id; } else { $dbhw->query("INSERT INTO i3geoadmin_tags (nome) VALUES ('$nome')"); $id = $dbh->query("SELECT * FROM i3geoadmin_tags"); $id = $id->fetchAll(); $id = intval($id[count($id)-1]['id_tag']); $retorna = $id; } $dbhw = null; $dbh = null; return $retorna; } catch (PDOException $e) { return "Error!: " . $e->getMessage(); } } /* Function: alteraGrupos Altera o registro de um grupo. Se id for vazio acrescenta o registro */ function alteraGrupos() { global $nome,$desc,$id,$en,$es,$it; try { include("conexao.php"); if($convUTF) { $nome = utf8_encode($nome); $desc = utf8_encode($desc); } if($id != "") { $dbhw->query("UPDATE i3geoadmin_grupos SET en = '$en', es = '$es', it = '$it', nome_grupo = '$nome', desc_grupo = '$desc' WHERE id_grupo = $id"); } else { $dbhw->query("INSERT INTO i3geoadmin_grupos (nome_grupo, desc_grupo, en, es, it) VALUES ('', '','','','')"); } $dbhw = null; $dbh = null; return "ok"; } catch (PDOException $e) { return "Error!: " . $e->getMessage(); } } /* Function: alteraSubGrupos Altera o registro de um sub-grupo. Se id for vazio acrescenta o registro */ function alteraSubGrupos() { global $nome,$desc,$id,$en,$es,$it; try { require_once("conexao.php"); if($convUTF) { $nome = utf8_encode($nome); $desc = utf8_encode($desc); } $retorna = ""; if($id != "") { $dbhw->query("UPDATE i3geoadmin_subgrupos SET en = '$en', es = '$es', it = '$it', nome_subgrupo = '$nome', desc_subgrupo = '$desc' WHERE id_subgrupo = $id"); } else { $dbhw->query("INSERT INTO i3geoadmin_subgrupos (nome_subgrupo, desc_subgrupo, en, es, it) VALUES ('', '','','','')"); } $dbhw = null; $dbh = null; return "ok"; } catch (PDOException $e) { return "Error!: " . $e->getMessage(); } } /* Function: registraTema Registra um mapfile na tabela de temas */ function registraTema() { global $codigo_tema; try { $retorna = "ok"; include("conexao.php"); $sql = "SELECT * from i3geoadmin_temas where codigo_tema = '$codigo_tema'"; $dados = pegaDados($sql); if(count($dados) == 0) {$dbhw->query("INSERT INTO i3geoadmin_temas (nome_tema,codigo_tema,kml_tema,kmz_tema,ogc_tema,download_tema,tags_tema,link_tema,desc_tema) VALUES ('$codigo_tema','$codigo_tema','SIM','NAO','SIM','SIM','','','')");} $dbhw = null; $dbh = null; return "ok"; } catch (PDOException $e) { return "Error!: " . $e->getMessage(); } } /* Function: alteraTemas Altera o registro de um tema. Se id for vazio acrescenta o registro */ function alteraTemas() { global $nome,$desc,$id,$codigo,$tipoa,$download,$ogc,$kml,$link,$tags,$kmz,$locaplic; //error_reporting(E_ALL); try { $retorna = "ok"; include("conexao.php"); if($convUTF) { $nome = utf8_encode($nome); $desc = utf8_encode($desc); $tags = utf8_encode($tags); } if($id != "") { if(!isset($kmz)) $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema='$tags', link_tema='$link', nome_tema ='$nome',desc_tema='$desc',codigo_tema='$codigo',tipoa_tema='$tipoa',download_tema='$download',ogc_tema='$ogc',kml_tema='$kml' WHERE id_tema = $id"); else $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema='$tags', link_tema='$link', nome_tema ='$nome',desc_tema='$desc',codigo_tema='$codigo',tipoa_tema='$tipoa',download_tema='$download',ogc_tema='$ogc',kml_tema='$kml',kmz_tema='$kmz' WHERE id_tema = $id"); $retorna = $id; if(!isset($kmz)){$kmz = "nao";} $sql = "SELECT * from i3geoadmin_temas where id_tema = '$id'"; $q = $dbh->query($sql,PDO::FETCH_ASSOC); $resultado = $q->fetchAll(); $mapfile = $resultado[0]["codigo_tema"]; $mapfile = $locaplic."/temas/".$mapfile.".map"; if($mapa = @ms_newMapObj($mapfile)) { $mapa = ms_newMapObj($mapfile); $nomes = $mapa->getalllayernames(); foreach($nomes as $nome) { $layer = $mapa->getlayerbyname($nome); $layer->setmetadata("permitedownload",strtolower($download)); $layer->setmetadata("permiteogc",strtolower($ogc)); $layer->setmetadata("permitekml",strtolower($kml)); $layer->setmetadata("permitekmz",strtolower($kmz)); } $mapa->save($mapfile); removeCabecalho($mapfile); } } else { $dbhw->query("INSERT INTO i3geoadmin_temas (nome_tema) VALUES ('xxxxxX')");// (link_tema,kml_tema,ogc_tema,download_tema,nome_tema,desc_tema,codigo_tema,tipoa_tema,tags_tema) VALUES ('','', '','','','','','','')"); $id = $dbh->query("SELECT * FROM i3geoadmin_temas WHERE nome_tema = 'xxxxxX'"); $id = $id->fetchAll(); $id = intval($id[0]['id_tema']); if(!isset($kmz)) $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema='', link_tema='', nome_tema ='',desc_tema='',codigo_tema='',tipoa_tema='',download_tema='',ogc_tema='',kml_tema='' WHERE id_tema = $id"); else $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema='', link_tema='', nome_tema ='',desc_tema='',codigo_tema='',tipoa_tema='',download_tema='',ogc_tema='',kml_tema='',kmz_tema='' WHERE id_tema = $id"); $retorna = $id; } //verifica se é necessário adicionar algum tag novo $tags = explode(" ",$tags); foreach($tags as $tag) { if(!(verificaDuplicados("select * from i3geoadmin_tags where nome = '$tag'",$dbh))) { $dbhw->query("INSERT INTO i3geoadmin_tags (nome) VALUES ('$tag')"); } } $dbhw = null; $dbh = null; return $retorna; } catch (PDOException $e) { return "Error!: " . $e->getMessage(); } } /* Function: listaMapsTemas Retorna a lista de mapfiles do diretorio i3geo/temas Parameters: cp - objeto CPAINT locaplic - localização da instalação do I3Geo */ function listaMapsTemas() { global $cp,$locaplic; $arquivos = array(); if (is_dir($locaplic."/temas")) { if ($dh = opendir($locaplic."/temas")) { while (($file = readdir($dh)) !== false) { if(!stristr($file, '.map') === FALSE || !stristr($file, ".php")===FALSE) { $file = str_replace(".map","",$file); $file = str_replace(".php","",$file); $arquivos[] = $file; } } } closedir($dh); } sort($arquivos); return $arquivos; } /* /* Function importarXmlMenu Importa um arquivo xml do tipo "menutemas" para o banco de dados */ function importarXmlMenu() { global $nomemenu,$xml; error_reporting(E_ALL); set_time_limit(0); $listaDeTags = array(); if(!file_exists($xml)) {return "
Arquivo $xml não encontrado";} include_once("../../classesphp/funcoes_gerais.php"); include("conexao.php"); if($convUTF) $nomemenu = utf8_encode($nomemenu); $dbhw->query("INSERT INTO i3geoadmin_menus (perfil_menu,desc_menu,nome_menu,publicado_menu,aberto) VALUES ('','','$nomemenu','SIM','NAO')"); $id_menu = $dbh->query("SELECT id_menu FROM i3geoadmin_menus where nome_menu = '$nomemenu'"); $id_menu = $id_menu->fetchAll(); $id_menu = $id_menu[0]['id_menu']; $xml = simplexml_load_file($xml); // //importa os grupos // $gruposExistentes = array(); $q = $dbh->query("select * from i3geoadmin_grupos"); $resultado = $q->fetchAll(); foreach($resultado as $r) {$gruposExistentes[$r["nome_grupo"]] = 0;} foreach($xml->GRUPO as $grupo) { $nome = html_entity_decode(ixml($grupo,"GTIPO")); $descricao = html_entity_decode(ixml($grupo,"DTIPO")); if($convUTF) { $nome = utf8_encode($nome); $descricao = utf8_encode($descricao); } if(!isset($gruposExistentes[$nome])) { $nome = str_replace("'","",$nome); $descricao = str_replace("'","",$descricao); $dbhw->query("INSERT INTO i3geoadmin_grupos (desc_grupo,nome_grupo) VALUES ('$descricao','$nome')"); } $gruposExistentes[$nome] = 0; } // //importa os sub-grupos // $subgruposExistentes = array(); $q = $dbh->query("select * from i3geoadmin_subgrupos"); $resultado = $q->fetchAll(); foreach($resultado as $r) {$subgruposExistentes[$r["nome_subgrupo"]] = 0;} foreach($xml->GRUPO as $grupo) { foreach($grupo->SGRUPO as $sgrupo) { $nome = html_entity_decode(ixml($sgrupo,"SDTIPO")); if($convUTF) { $nome = utf8_encode($nome); } $descricao = ""; if(!isset($subgruposExistentes[$nome])) { $nome = str_replace("'","",$nome); $descricao = str_replace("'","",$descricao); $dbhw->query("INSERT INTO i3geoadmin_subgrupos (desc_subgrupo,nome_subgrupo) VALUES ('$descricao','$nome')"); $subgruposExistentes[$nome] = 0; } } } // //importa os temas // $temasExistentes = array(); $q = $dbh->query("select * from i3geoadmin_temas"); $resultado = $q->fetchAll(); foreach($resultado as $r) { if($r["codigo_tema"]) $temasExistentes[$r["codigo_tema"]] = 0; } foreach($xml->TEMA as $tema) { $nome = html_entity_decode(ixml($tema,"TNOME")); $descricao = html_entity_decode(ixml($tema,"TDESC")); if($convUTF) { $nome = utf8_encode($nome); $descricao = utf8_encode($descricao); } $codigo = ixml($tema,"TID"); $link = ixml($tema,"TLINK"); $tipo = ixml($tema,"TIPOA"); $tags = ixml($tema,"TAGS"); if($convUTF) $tags = utf8_encode($tags); $down = ixml($tema,"DOWNLOAD"); $kml = ixml($tema,"KML"); $ogc = ixml($tema,"OGC"); $listaDeTags = array_merge($listaDeTags,explode(" ",$tags)); if(!isset($temasExistentes[$codigo])) { $nome = str_replace("'","",$nome); $descricao = str_replace("'","",$descricao); $dbhw->query("INSERT INTO i3geoadmin_temas (nacessos,kml_tema,kmz_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,nome_tema,codigo_tema) VALUES (0,'$kml','NAO','$ogc','$down','$tags','$tipo','$link','$descricao','$nome','$codigo')"); } $temasExistentes[$codigo] = 0; } foreach($xml->GRUPO as $grupo) { foreach($grupo->TEMA as $tema) { $nome = html_entity_decode(ixml($tema,"TNOME")); $descricao = html_entity_decode(ixml($tema,"TDESC")); if($convUTF) { $nome = utf8_encode($nome); $descricao = utf8_encode($descricao); } $codigo = ixml($tema,"TID"); $link = ixml($tema,"TLINK"); $tipo = ixml($tema,"TIPOA"); $tags = ixml($tema,"TAGS"); if($convUTF) $tags = utf8_encode($tags); $down = ixml($tema,"DOWNLOAD"); $kml = ixml($tema,"KML"); $ogc = ixml($tema,"OGC"); $listaDeTags = array_merge($listaDeTags,explode(" ",$tags)); if(!isset($temasExistentes[$codigo])) { $nome = str_replace("'","",$nome); $descricao = str_replace("'","",$descricao); $dbhw->query("INSERT INTO i3geoadmin_temas (nacessos,kml_tema,kmz_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,nome_tema,codigo_tema) VALUES (0,'$kml','NAO','$ogc','$down','$tags','$tipo','$link','$descricao','$nome','$codigo')"); } $temasExistentes[$codigo] = 0; } foreach($grupo->SGRUPO as $sgrupo) { foreach($sgrupo->TEMA as $tema) { $nome = html_entity_decode(ixml($tema,"TNOME")); $descricao = html_entity_decode(ixml($tema,"TDESC")); if($convUTF) { $nome = utf8_encode($nome); $descricao = utf8_encode($descricao); } $codigo = ixml($tema,"TID"); $link = ixml($tema,"TLINK"); $tipo = ixml($tema,"TIPOA"); $tags = html_entity_decode(ixml($tema,"TAGS")); if($convUTF) $tags = utf8_encode($tags); $down = ixml($tema,"DOWNLOAD"); $kml = ixml($tema,"KML"); $ogc = ixml($tema,"OGC"); $listaDeTags = array_merge($listaDeTags,explode(" ",$tags)); if(!isset($temasExistentes[$codigo])) { $nome = str_replace("'","",$nome); $descricao = str_replace("'","",$descricao); $dbhw->query("INSERT INTO i3geoadmin_temas (nacessos,kml_tema,kmz_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,nome_tema,codigo_tema) VALUES (0,'$kml','NAO','$ogc','$down','$tags','$tipo','$link','$descricao','$nome','$codigo')"); } $temasExistentes[$codigo] = 0; } } } // //monta árvore // // //registra os temas no nível da raiz // foreach($xml->TEMA as $tema) { $codigo = ixml($tema,"TID"); $perfil = ixml($tema,"PERFIL"); $r = $dbh->query("select id_tema from i3geoadmin_temas where codigo_tema = '$codigo'"); $id_tema = $r->fetchAll(); $id_tema = $id_tema[0]['id_tema']; $dbhw->query("INSERT INTO i3geoadmin_raiz (id_tema,id_menu,id_nivel,nivel,perfil,ordem) VALUES ('$id_tema','$id_menu','0','0','$perfil','0')"); } // //registra o restante // $contaGrupo = 0; foreach($xml->GRUPO as $grupo) { $gtipo = html_entity_decode(ixml($grupo,"GTIPO")); if($convUTF) $gtipo = utf8_encode($gtipo); $n1_perfil = ixml($grupo,"PERFIL"); $r = $dbh->query("select id_grupo from i3geoadmin_grupos where nome_grupo = '$gtipo'"); $id_grupo = $r->fetchAll(); $id_grupo = $id_grupo[0]['id_grupo']; //echo "INSERT INTO i3geoadmin_n1 (ordem,publicado,id_menu,id_grupo,n1_perfil) VALUES ($contaGrupo,'SIM',$id_menu,$id_grupo,'$n1_perfil')"."
"; $dbhw->query("INSERT INTO i3geoadmin_n1 (ordem,publicado,id_menu,id_grupo,n1_perfil) VALUES ($contaGrupo,'SIM',$id_menu,$id_grupo,'$n1_perfil')"); $contaGrupo++; $id_n1 = $dbh->query("SELECT id_n1 FROM i3geoadmin_n1 where id_menu = '$id_menu' and id_grupo = '$id_grupo'"); $id_n1 = $id_n1->fetchAll(); $id_n1 = $id_n1[0]['id_n1']; foreach($grupo->TEMA as $tema) { $codigo = ixml($tema,"TID"); $perfil = ixml($tema,"PERFIL"); $r = $dbh->query("select id_tema from i3geoadmin_temas where codigo_tema = '$codigo'"); $id_tema = $r->fetchAll(); $id_tema = $id_tema[0]['id_tema']; $dbhw->query("INSERT INTO i3geoadmin_raiz (id_tema,id_menu,id_nivel,nivel,perfil,ordem) VALUES ($id_tema,$id_menu,$id_n1,'1','$perfil','0')"); } $contaSubGrupo = 0; foreach($grupo->SGRUPO as $subgrupo) { $sdtipo = html_entity_decode(ixml($subgrupo,"SDTIPO")); if($convUTF) $sdtipo = utf8_encode($sdtipo); $n2_perfil = ixml($subgrupo,"PERFIL"); $r = $dbh->query("select id_subgrupo from i3geoadmin_subgrupos where nome_subgrupo = '$sdtipo'"); $id_subgrupo = $r->fetchAll(); $id_subgrupo = $id_subgrupo[0]['id_subgrupo']; $dbhw->query("INSERT INTO i3geoadmin_n2 (publicado,ordem,id_n1,id_subgrupo,n2_perfil) VALUES ('SIM',$contaSubGrupo,$id_n1,$id_subgrupo,'$n2_perfil')"); $contaSubGrupo++; $id_n2 = $dbh->query("SELECT id_n2 FROM i3geoadmin_n2 where id_n1='$id_n1' and id_subgrupo = '$id_subgrupo'"); $id_n2 = $id_n2->fetchAll(); $id_n2 = $id_n2[0]['id_n2']; $contaTema = 0; foreach($subgrupo->TEMA as $tema) { $codigo = ixml($tema,"TID"); $perfil = ixml($tema,"PERFIL"); $r = $dbh->query("select id_tema from i3geoadmin_temas where codigo_tema = '$codigo'"); $id_tema = $r->fetchAll(); $id_tema = $id_tema[0]['id_tema']; $dbhw->query("INSERT INTO i3geoadmin_n3 (publicado,ordem,id_n2,id_tema,n3_perfil) VALUES ('SIM',$contaTema,$id_n2,$id_tema,'$perfil')"); $contaTema++; } } } //registra os tags $listaDeTags = array_unique($listaDeTags); foreach ($listaDeTags as $t) { if($t != "" && !(verificaDuplicados("select * from i3geoadmin_tags where nome = '$t'",$dbh))) $dbhw->query("INSERT INTO i3geoadmin_tags (nome) VALUES ('$t')"); } $dbhw = null; $dbh = null; return "Dados importados."; } function removeCabecalho($arq,$symbolset=true) { $handle = fopen($arq, "r"); if ($handle) { $cabeca = array(); if($symbolset) { $cabeca[] = "MAP\n"; //$final[] = "SYMBOLSET ../symbols/simbolos.sym\n"; //$final[] = "FONTSET ".'"'."../symbols/fontes.txt".'"'."\n"; } $grava = false; while (!feof($handle)) { $linha = fgets($handle); if($symbolset) { if(strtoupper(trim($linha)) == "SYMBOLSET") {$cabeca[] = $linha;} if(strtoupper(trim($linha)) == "FONTSET") {$cabeca[] = $linha;} } if(strtoupper(trim($linha)) == "LAYER") {$grava = true;} if($grava) {$final[] = rtrim($linha, "\r\n") . PHP_EOL;} } fclose($handle); } $final = array_merge($cabeca,$final); $handle = fopen($arq, "w+"); foreach ($final as $f) { // //remove resultados em branco //e grava a linha // $teste = strtoupper($f); $teste = trim($teste); $teste = str_replace(" ","",$teste); $teste = str_replace("'","",$teste); $teste = str_replace('"',"",$teste); $teste = preg_replace('/[\n\r\t ]*/', '', $teste); $testar = array("KEYIMAGE","TILEINDEX","TILEITEM","SYMBOL","LABELITEM","FILTERITEM","GROUP","ENCODING","TIP","CLASSE","ITENSDESC","CLASSESNOME","ITENSLINK","ESCALA","CLASSESSIMBOLO","MENSAGEM","EXTENSAO","CLASSESITEM","ESCONDIDO","CLASSESCOR","DOWNLOAD","CLASSESTAMANHO","ITENS","TEMA","APLICAEXTENSAO","IDENTIFICA"); $passou = true; foreach ($testar as $t) {if($teste == $t){$passou = false;}} if($passou) fwrite($handle,$f); } fclose($handle); chmod($arq, 0666); } ?>