From 6f5adab922f84d52502118e0fa94e56221322a8f Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Thu, 18 Nov 2010 02:14:42 +0000 Subject: [PATCH] Inclusão da visualização da miniatura e do título de um tema no editor de mapfiles --- admin/html/editormapfile.html | 6 +++--- admin/js/core.js | 1 - admin/js/editormapfile.js | 11 +++++++---- admin/js/menutemas.js | 10 ---------- admin/php/admin.php | 14 ++++++++++++++ admin/php/classe_arvore.php | 2 -- admin/php/menutemas.php | 307 +++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ classesphp/funcoes_gerais.php | 2 +- 8 files changed, 50 insertions(+), 303 deletions(-) diff --git a/admin/html/editormapfile.html b/admin/html/editormapfile.html index 2572abf..fe73ce2 100644 --- a/admin/html/editormapfile.html +++ b/admin/html/editormapfile.html @@ -44,10 +44,9 @@

-Além de criar os mapfiles, é necessário definir as características de cada LAYER nas opções abaixo.
+Além de criar os mapfiles, é necessário definir as características de cada LAYER nas opções abaixo.
-

Mapfiles (arquivos .map existentes no diretório i3geo/temas):

@@ -110,11 +109,12 @@ var letras = "A B C D E F G H I J K L M N O P Q R S T U V X Y Z _ 1 2 3 4 5 6 7 for(i=0;i"+letras[i]+" "; } -document.getElementById("letras").innerHTML = ins; +document.getElementById("letras").innerHTML = ins+ " Mostra a miniatura se houver"; function filtraLetra(letra){ document.getElementById("tabela").innerHTML = "Aguarde..."; core_pegaMapfiles("montaArvore()",letra) } + diff --git a/admin/js/core.js b/admin/js/core.js index c5e4a6a..e4e01ac 100644 --- a/admin/js/core.js +++ b/admin/js/core.js @@ -364,7 +364,6 @@ function core_pegaMapfiles(funcaoM,letra) if(arguments.length == 1){ var letra = ""; } - var sUrl = "../php/menutemas.php?funcao=listaMapsTemas&letra="+letra; var callbackM = { diff --git a/admin/js/editormapfile.js b/admin/js/editormapfile.js index febcc9c..3211db2 100644 --- a/admin/js/editormapfile.js +++ b/admin/js/editormapfile.js @@ -230,10 +230,13 @@ function montaNosRaiz(redesenha) var nos = new Array() for (var i=0, j=$mapfiles.length; i" - conteudo += " " - conteudo += "  "+$mapfiles[i]+"" - var d = {html:conteudo,id:$mapfiles[i],codigoMap:$mapfiles[i]}; + conteudo = " " + conteudo += " " + conteudo += "  "+$mapfiles[i].codigo+" "+$mapfiles[i].nome+"" + if($mapfiles[i].imagem != "" && $i("mostraMini").checked == true){ + conteudo += "
"; + } + var d = {html:conteudo,id:$mapfiles[i].codigo,codigoMap:$mapfiles[i].codigo}; var tempNode = new YAHOO.widget.HTMLNode(d, root, false,true); nos.push(tempNode) } diff --git a/admin/js/menutemas.js b/admin/js/menutemas.js index 1031a72..91d2b2c 100644 --- a/admin/js/menutemas.js +++ b/admin/js/menutemas.js @@ -3,14 +3,6 @@ function iniciaAdmin() { verificaEditores() } -function importarXmlMenu() -{ - $i("resultado").innerHTML = $mensagemAguarde - var retorna = function(retorno) - {$i("resultado").innerHTML = retorno.data} - var p = "../php/menutemas.php?funcao=importarXmlMenu&nomemenu="+$i("nome").value+"&xml="+$i("arquivo").value; - cPaint.call(p,"",retorna); -} function montaParametros() { var ins = "" @@ -399,11 +391,9 @@ function excluir(prefixo,id) cPaint.call(p,"",retorna); } } - function pegaMapfiles(retorna) { var cPaint = new cpaint(); - //cPaint.set_async("true"); cPaint.set_response_type("JSON"); var p = "../php/menutemas.php?funcao=listaMapsTemas"; cPaint.call(p,"listaMapsTemas",retorna); diff --git a/admin/php/admin.php b/admin/php/admin.php index 2d6628a..cf40a3d 100644 --- a/admin/php/admin.php +++ b/admin/php/admin.php @@ -83,6 +83,19 @@ Imprime na saída a string JSON function retornaJSON($obj) { global $locaplic; + if(function_exists("json_encode")) + {echojson(json_encode($obj));} + else + { + include_once($locaplic."/pacotes/cpaint/JSON/json2.php"); + error_reporting(0); + $j = new Services_JSON(); + $texto = $j->encode($obj); + if (!mb_detect_encoding($texto,"UTF-8",true)) + $texto = utf8_encode($texto); + echo $texto; + } +/* include_once($locaplic."/pacotes/cpaint/JSON/json2.php"); error_reporting(0); $j = new Services_JSON(); @@ -96,6 +109,7 @@ function retornaJSON($obj) header('Pragma: no-cache'); echo $texto; exit; +*/ } /* Function: verificaDuplicados diff --git a/admin/php/classe_arvore.php b/admin/php/classe_arvore.php index 843f96e..c259643 100644 --- a/admin/php/classe_arvore.php +++ b/admin/php/classe_arvore.php @@ -140,9 +140,7 @@ Return: } else $sql = "SELECT publicado_menu,perfil_menu,aberto,desc_menu,id_menu,$coluna as nome_menu from i3geoadmin_menus where publicado_menu != 'NAO' or publicado_menu isnull order by nome_menu"; - $regs = $this->execSQL($sql); - $resultado = array(); foreach($regs as $reg) { diff --git a/admin/php/menutemas.php b/admin/php/menutemas.php index 848efaf..e8323df 100644 --- a/admin/php/menutemas.php +++ b/admin/php/menutemas.php @@ -749,15 +749,11 @@ function alteraMenus() return "ok"; } catch (PDOException $e) - { - return "Error!: " . $e->getMessage(); - } + {return "Error!: " . $e->getMessage();} } function alteraPerfis() { global $perfil,$id; - //$perfil = resolveAcentos($perfil,"html"); - try { $dbh = ""; @@ -860,18 +856,14 @@ function alteraPerfis() return $retorna; } catch (PDOException $e) - { - return "Error!: " . $e->getMessage(); - } + {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 = ""; @@ -884,20 +876,6 @@ function alteraTags() 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; } @@ -1069,18 +1047,14 @@ function alteraTemas() foreach($tags as $tag) { if(!(verificaDuplicados("select * from i3geoadmin_tags where nome = '$tag'",$dbh))) - { - $dbhw->query("INSERT INTO i3geoadmin_tags (nome) VALUES ('$tag')"); - } + {$dbhw->query("INSERT INTO i3geoadmin_tags (nome) VALUES ('$tag')");} } $dbhw = null; $dbh = null; return $retorna; } catch (PDOException $e) - { - return "Error!: " . $e->getMessage(); - } + {return "Error!: " . $e->getMessage();} } /* Retorna a lista de mapfiles do diretorio i3geo/temas @@ -1113,257 +1087,30 @@ function listaMapsTemas() closedir($dh); } sort($arquivos); - return $arquivos; -} -/* -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 + //pega o nome de cada tema // - 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) + $sql = "select nome_tema,codigo_tema from i3geoadmin_temas "; + $dbh = ""; + include($locaplic."/admin/php/conexao.php"); + $q = $dbh->query($sql,PDO::FETCH_ASSOC); + $regs = $q->fetchAll(); + $nomes = array(); + foreach($regs as $reg) + {$nomes[$reg["codigo_tema"]] = $reg["nome_tema"];} + $lista = array(); + foreach($arquivos as $arq) { - if($t != "" && !(verificaDuplicados("select * from i3geoadmin_tags where nome = '$t'",$dbh))) - $dbhw->query("INSERT INTO i3geoadmin_tags (nome) VALUES ('$t')"); + $n = explode(".",$arq); + $n = $nomes[$n[0]]; + if(!$n) + {$n = "";} + $imagem = ""; + if(file_exists($locaplic."/temas/miniaturas/".$arq.".map.mini.png")) + {$imagem = $arq.".map.mini.png";} + $lista[] = array("nome"=>$n,"codigo"=>$arq,"imagem"=>$imagem); } - $dbhw = null; - $dbh = null; - return "Dados importados."; + return $lista; } function removeCabecalho($arq,$symbolset=true) @@ -1373,11 +1120,7 @@ function removeCabecalho($arq,$symbolset=true) { $cabeca = array(); if($symbolset) - { - $cabeca[] = "MAP\n"; - //$final[] = "SYMBOLSET ../symbols/simbolos.sym\n"; - //$final[] = "FONTSET ".'"'."../symbols/fontes.txt".'"'."\n"; - } + {$cabeca[] = "MAP\n";} $grava = false; while (!feof($handle)) { diff --git a/classesphp/funcoes_gerais.php b/classesphp/funcoes_gerais.php index 255d38c..7778f18 100644 --- a/classesphp/funcoes_gerais.php +++ b/classesphp/funcoes_gerais.php @@ -2553,7 +2553,7 @@ function echojson($a) echo $a; if(extension_loaded('zlib')) {ob_end_flush();} - exit; + exit; } /* Function: cpjson -- libgit2 0.21.2