Commit 886ef04b57af7c1b380b3d9cb0ec4443e3ac1b52

Authored by Edmar Moretti
1 parent 19841cbf

Inicio do desenvolvimento do editor de mapfiles em bootstrap

admin/admin.db
No preview for this file type
admin/php/admin.php
... ... @@ -156,15 +156,19 @@ function exclui($tabela,$coluna,$id){
156 156 }
157 157 }
158 158 //usar esse para nao haver confusao com o nome "exclui"
159   -function i3GeoAdminExclui($tabela,$coluna,$id){
  159 +function i3GeoAdminExclui($tabela,$coluna,$id,$dbhw="",$close=true){
160 160 try {
161   - include("conexao.php");
  161 + if($dbh == "" || is_string($dbh)){
  162 + include(dirname(__FILE__)."/conexao.php");
  163 + }
162 164 $sql = "DELETE from $tabela WHERE $coluna = ?";
163 165 $prep = $dbhw->prepare($sql);
164 166 $prep->execute(array($id));
165 167 i3GeoAdminInsertLog($dbhw,$sql,array($id));
166   - $dbhw = null;
167   - $dbh = null;
  168 + if($close == true){
  169 + $dbh = null;
  170 + $dbhw = null;
  171 + }
168 172 return "ok";
169 173 }
170 174 catch (PDOException $e) {
... ...
admin/php/conexao.php
... ... @@ -65,7 +65,7 @@ if(!isset($logTransacoes)){
65 65 $convUTF = true;
66 66 if($conexaoadmin == ""){
67 67 $arquivosqlite = $locaplic."/admin/admin.db";
68   - chmod($arquivosqlite,0777);
  68 + chmod($arquivosqlite,0774);
69 69 //echo $arquivosqlite;exit;
70 70 if(!file_exists($arquivosqlite)){
71 71 echo "O arquivo admin.db não existe. Utilize i3geo/admin/criabanco.php para criar o banco de dados SQLITE.";
... ...
admin1/cadastros/identifica/exec.php
... ... @@ -114,7 +114,7 @@ function adicionar($publicado_i, $abrir_i, $nome_i, $target_i,$dbhw) {
114 114 }
115 115 // $papeis deve ser um array
116 116 function alterar($id_i, $publicado_i, $abrir_i, $nome_i, $target_i, $dbhw) {
117   - global $esquemaadmin;
  117 + global $convUTF, $esquemaadmin;
118 118 if($convUTF){
119 119 $nome_i = utf8_encode($nome_i);
120 120 }
... ...
admin1/cadastros/perfis/exec.php
... ... @@ -113,7 +113,7 @@ function adicionar($perfil, $dbhw) {
113 113 }
114 114 // $papeis deve ser um array
115 115 function alterar($id_perfil, $perfil,$dbhw) {
116   - global $esquemaadmin;
  116 + global $convUTF, $esquemaadmin;
117 117 //pega o nome conforme o ID
118 118 $original = pegaDados ( "SELECT perfil from ".$esquemaadmin."i3geoadmin_perfis WHERE id_perfil = $id_perfil", $dbh, false );
119 119 $original = $original[0]["perfil"];
... ...
admin1/cadastros/servicos/exec.php
... ... @@ -115,7 +115,7 @@ function adicionar($autor_ws,$desc_ws,$link_ws,$nome_ws,$tipo_ws,$dbhw) {
115 115 }
116 116 // $papeis deve ser um array
117 117 function alterar($id_ws,$autor_ws,$desc_ws,$link_ws,$nome_ws,$tipo_ws,$dbhw) {
118   - global $esquemaadmin;
  118 + global $convUTF, $esquemaadmin;
119 119 if($convUTF){
120 120 $nome_ws = utf8_encode($nome_ws);
121 121 $desc_ws = utf8_encode($desc_ws);
... ...
admin1/cadastros/tags/exec.php
... ... @@ -113,7 +113,7 @@ function adicionar($nome, $dbhw) {
113 113 }
114 114 // $papeis deve ser um array
115 115 function alterar($id_tag, $nome,$dbhw) {
116   - global $esquemaadmin;
  116 + global $convUTF, $esquemaadmin;
117 117 if($convUTF){
118 118 $nome = utf8_encode($nome);
119 119 }
... ...
admin1/catalogo/atlas/exec.php
... ... @@ -132,7 +132,7 @@ function adicionar( $titulo_atlas, $publicado_atlas, $ordem_atlas, $basemapfile_
132 132 }
133 133 // $papeis deve ser um array
134 134 function alterar($id_atlas, $titulo_atlas, $publicado_atlas, $ordem_atlas, $basemapfile_atlas, $desc_atlas, $h_atlas, $w_atlas, $icone_atlas, $link_atlas, $pranchadefault_atlas, $template_atlas, $tipoguias_atlas, $dbhw) {
135   - global $esquemaadmin;
  135 + global $convUTF, $esquemaadmin;
136 136 if($convUTF){
137 137 $desc_atlas = utf8_encode($desc_atlas);
138 138 $titulo_atlas = utf8_encode($titulo_atlas);
... ...
admin1/catalogo/atlas/pranchas/exec.php
... ... @@ -129,7 +129,7 @@ function adicionar( $id_atlas, $titulo_prancha, $ordem_prancha, $desc_prancha, $
129 129 }
130 130 // $papeis deve ser um array
131 131 function alterar($id_atlas, $id_prancha, $titulo_prancha, $ordem_prancha, $desc_prancha, $h_prancha, $icone_prancha, $link_prancha, $mapext_prancha, $w_prancha, $dbhw) {
132   - global $esquemaadmin;
  132 + global $convUTF, $esquemaadmin;
133 133 if($convUTF){
134 134 $desc_prancha = utf8_encode($desc_prancha);
135 135 $titulo_prancha = utf8_encode($titulo_prancha);
... ...
admin1/catalogo/mapas/exec.php
... ... @@ -31,7 +31,8 @@ include_once (dirname ( __FILE__ ) . "/../../../admin/php/login.php");
31 31 $funcoesEdicao = array (
32 32 "ADICIONAR",
33 33 "ALTERAR",
34   - "EXCLUIR"
  34 + "EXCLUIR",
  35 + "LIMPACACHE"
35 36 );
36 37 if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) {
37 38 if (verificaOperacaoSessao ( "admin/html/mapas" ) === false) {
... ... @@ -41,13 +42,15 @@ if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) {
41 42 }
42 43 include (dirname ( __FILE__ ) . "/../../../admin/php/conexao.php");
43 44  
44   -$id_mapa = $_POST["id_mapa"];
45   -testaSafeNumerico([$id_mapa]);
  45 +$id_mapa = $_POST ["id_mapa"];
  46 +testaSafeNumerico ( [
  47 + $id_mapa
  48 +] );
46 49  
47 50 $funcao = strtoupper ( $funcao );
48 51 switch ($funcao) {
49 52 case "ADICIONAR" :
50   - $novo = adicionar( $_POST["publicado_mapa"], $_POST["ordem_mapa"], $_POST["perfil_mapa"], $_POST["ligados_mapa"], $_POST["temas_mapa"], $_POST["desc_mapa"], $_POST["ext_mapa"], $_POST["imagem_mapa"], $_POST["linkdireto_mapa"], $_POST["nome_mapa"], $_POST["outros_mapa"], $dbhw );
  53 + $novo = adicionar ( $_POST ["publicado_mapa"], $_POST ["ordem_mapa"], $_POST ["perfil_mapa"], $_POST ["ligados_mapa"], $_POST ["temas_mapa"], $_POST ["desc_mapa"], $_POST ["ext_mapa"], $_POST ["imagem_mapa"], $_POST ["linkdireto_mapa"], $_POST ["nome_mapa"], $_POST ["outros_mapa"], $dbhw );
51 54 if ($novo === false) {
52 55 header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
53 56 exit ();
... ... @@ -55,12 +58,12 @@ switch ($funcao) {
55 58 exit ();
56 59 break;
57 60 case "ALTERAR" :
58   - $novo = alterar ( $id_mapa, $_POST["publicado_mapa"], $_POST["ordem_mapa"], $_POST["perfil_mapa"], $_POST["ligados_mapa"], $_POST["temas_mapa"], $_POST["desc_mapa"], $_POST["ext_mapa"], $_POST["imagem_mapa"], $_POST["linkdireto_mapa"], $_POST["nome_mapa"], $_POST["outros_mapa"], $_POST["mapfile"] , $dbhw );
  61 + $novo = alterar ( $id_mapa, $_POST ["publicado_mapa"], $_POST ["ordem_mapa"], $_POST ["perfil_mapa"], $_POST ["ligados_mapa"], $_POST ["temas_mapa"], $_POST ["desc_mapa"], $_POST ["ext_mapa"], $_POST ["imagem_mapa"], $_POST ["linkdireto_mapa"], $_POST ["nome_mapa"], $_POST ["outros_mapa"], $_POST ["mapfile"], $dbhw );
59 62 if ($novo === false) {
60 63 header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
61 64 exit ();
62 65 }
63   - $dados = pegaDados ( "SELECT id_mapa from ".$esquemaadmin."i3geoadmin_mapas WHERE id_mapa = $id_mapa order by ordem_mapa, nome_mapa", $dbh, false );
  66 + $dados = pegaDados ( "SELECT id_mapa from " . $esquemaadmin . "i3geoadmin_mapas WHERE id_mapa = $id_mapa order by ordem_mapa, nome_mapa", $dbh, false );
64 67  
65 68 if ($dados === false) {
66 69 header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
... ... @@ -72,22 +75,26 @@ switch ($funcao) {
72 75 exit ();
73 76 break;
74 77 case "LISTA" :
75   - $semmapfile = pegaDados("SELECT id_mapa, publicado_mapa, ordem_mapa, perfil_mapa, ligados_mapa, temas_mapa, desc_mapa, ext_mapa, imagem_mapa, linkdireto_mapa, nome_mapa, outros_mapa, 'nao' as contemmapfile from ".$esquemaadmin."i3geoadmin_mapas where mapfile = '' or mapfile is null order by ordem_mapa, nome_mapa", $dbh, false);
76   - $commapfile = pegaDados("SELECT id_mapa, publicado_mapa, ordem_mapa, perfil_mapa, ligados_mapa, temas_mapa, desc_mapa, ext_mapa, imagem_mapa, linkdireto_mapa, nome_mapa, outros_mapa, 'sim' as contemmapfile from ".$esquemaadmin."i3geoadmin_mapas where mapfile != '' and mapfile is not null order by ordem_mapa, nome_mapa", $dbh, false);
  78 + $semmapfile = pegaDados ( "SELECT id_mapa, publicado_mapa, ordem_mapa, perfil_mapa, ligados_mapa, temas_mapa, desc_mapa, ext_mapa, imagem_mapa, linkdireto_mapa, nome_mapa, outros_mapa, 'nao' as contemmapfile from " . $esquemaadmin . "i3geoadmin_mapas where mapfile = '' or mapfile is null order by ordem_mapa, nome_mapa", $dbh, false );
  79 + $commapfile = pegaDados ( "SELECT id_mapa, publicado_mapa, ordem_mapa, perfil_mapa, ligados_mapa, temas_mapa, desc_mapa, ext_mapa, imagem_mapa, linkdireto_mapa, nome_mapa, outros_mapa, 'sim' as contemmapfile from " . $esquemaadmin . "i3geoadmin_mapas where mapfile != '' and mapfile is not null order by ordem_mapa, nome_mapa", $dbh, false );
77 80 if ($semmapfile === false || $commapfile === false) {
78 81 $dbhw = null;
79 82 $dbh = null;
80 83 header ( "HTTP/1.1 500 erro ao consultar banco de dados tabela de mapas" );
81 84 exit ();
82 85 }
83   - $perfis = pegaDados ( "SELECT id_perfil, perfil from ".$esquemaadmin."i3geoadmin_perfis order by perfil", $dbh, false );
  86 + $perfis = pegaDados ( "SELECT id_perfil, perfil from " . $esquemaadmin . "i3geoadmin_perfis order by perfil", $dbh, false );
84 87 $dbhw = null;
85 88 $dbh = null;
86   - //pega a lista de temas
87   - include("../../../admin/php/classe_arvore.php");
88   - $arvore = new Arvore($locaplic);
89   - $temas = $arvore->pegaTodosTemas(true);
90   - retornaJSON ( array("dados"=>array_merge($semmapfile,$commapfile), "perfis"=>$perfis, "temas"=>$temas) );
  89 + // pega a lista de temas
  90 + include ("../../../admin/php/classe_arvore.php");
  91 + $arvore = new Arvore ( $locaplic );
  92 + $temas = $arvore->pegaTodosTemas ( true );
  93 + retornaJSON ( array (
  94 + "dados" => array_merge ( $semmapfile, $commapfile ),
  95 + "perfis" => $perfis,
  96 + "temas" => $temas
  97 + ) );
91 98 break;
92 99 case "EXCLUIR" :
93 100 $retorna = excluir ( $id_mapa, $dbhw );
... ... @@ -100,27 +107,27 @@ switch ($funcao) {
100 107 retornaJSON ( $id_mapa );
101 108 exit ();
102 109 break;
  110 +
103 111 }
104 112 cpjson ( $retorno );
105   -
106   -function adicionar( $publicado_mapa, $ordem_mapa, $perfil_mapa, $ligados_mapa, $temas_mapa, $desc_mapa, $ext_mapa, $imagem_mapa, $linkdireto_mapa, $nome_mapa, $outros_mapa, $dbhw) {
  113 +function adicionar($publicado_mapa, $ordem_mapa, $perfil_mapa, $ligados_mapa, $temas_mapa, $desc_mapa, $ext_mapa, $imagem_mapa, $linkdireto_mapa, $nome_mapa, $outros_mapa, $dbhw) {
107 114 global $esquemaadmin;
108 115 try {
109   - $dataCol = array(
110   - "publicado_mapa" => '',
111   - "ordem_mapa" => 0,
112   - "perfil_mapa" => '',
113   - "desc_mapa" => '',
114   - "ext_mapa" => '',
115   - "imagem_mapa" => '',
116   - "linkdireto_mapa" => '',
117   - "outros_mapa" => '',
118   - "temas_mapa" => '',
119   - "ligados_mapa" => '',
120   - "nome_mapa" => '',
121   - "mapfile" => ''
  116 + $dataCol = array (
  117 + "publicado_mapa" => '',
  118 + "ordem_mapa" => 0,
  119 + "perfil_mapa" => '',
  120 + "desc_mapa" => '',
  121 + "ext_mapa" => '',
  122 + "imagem_mapa" => '',
  123 + "linkdireto_mapa" => '',
  124 + "outros_mapa" => '',
  125 + "temas_mapa" => '',
  126 + "ligados_mapa" => '',
  127 + "nome_mapa" => '',
  128 + "mapfile" => ''
122 129 );
123   - $id_mapa = i3GeoAdminInsertUnico($dbhw,"i3geoadmin_mapas",$dataCol,"nome_mapa","id_mapa");
  130 + $id_mapa = i3GeoAdminInsertUnico ( $dbhw, "i3geoadmin_mapas", $dataCol, "nome_mapa", "id_mapa" );
124 131 $retorna = alterar ( $id_mapa, $publicado_mapa, $ordem_mapa, $perfil_mapa, $ligados_mapa, $temas_mapa, $desc_mapa, $ext_mapa, $imagem_mapa, $linkdireto_mapa, $nome_mapa, $outros_mapa, '', $dbhw );
125 132  
126 133 return $retorna;
... ... @@ -129,34 +136,34 @@ function adicionar( $publicado_mapa, $ordem_mapa, $perfil_mapa, $ligados_mapa, $
129 136 }
130 137 }
131 138 // $papeis deve ser um array
132   -function alterar($id_mapa, $publicado_mapa, $ordem_mapa, $perfil_mapa, $ligados_mapa, $temas_mapa, $desc_mapa, $ext_mapa, $imagem_mapa, $linkdireto_mapa, $nome_mapa, $outros_mapa, $mapfile ,$dbhw) {
133   - global $esquemaadmin;
134   - if($convUTF){
135   - $nome_mapa = utf8_encode($nome_mapa);
136   - $desc_mapa = utf8_encode($desc_mapa);
137   - $perfil_menu = utf8_encode($perfil_mapa);
  139 +function alterar($id_mapa, $publicado_mapa, $ordem_mapa, $perfil_mapa, $ligados_mapa, $temas_mapa, $desc_mapa, $ext_mapa, $imagem_mapa, $linkdireto_mapa, $nome_mapa, $outros_mapa, $mapfile, $dbhw) {
  140 + global $convUTF, $esquemaadmin;
  141 + if ($convUTF) {
  142 + $nome_mapa = utf8_encode ( $nome_mapa );
  143 + $desc_mapa = utf8_encode ( $desc_mapa );
  144 + $perfil_menu = utf8_encode ( $perfil_mapa );
138 145 }
139   - $perfil_mapa = str_replace(","," ",trim($perfil_mapa));
140   - //verifica a consistencia da lista de perfis
141   - $perfis = pegaDados ( "SELECT perfil from ".$esquemaadmin."i3geoadmin_perfis order by perfil", $dbw, false );
142   - $p = array();
143   - foreach ($perfis as $perfil){
144   - $p[] = $perfil["perfil"];
  146 + $perfil_mapa = str_replace ( ",", " ", trim ( $perfil_mapa ) );
  147 + // verifica a consistencia da lista de perfis
  148 + $perfis = pegaDados ( "SELECT perfil from " . $esquemaadmin . "i3geoadmin_perfis order by perfil", $dbw, false );
  149 + $p = array ();
  150 + foreach ( $perfis as $perfil ) {
  151 + $p [] = $perfil ["perfil"];
145 152 }
146   - $perfil_mapa = implode(" ",array_intersect(explode(" ",$perfil_mapa),$p));
  153 + $perfil_mapa = implode ( " ", array_intersect ( explode ( " ", $perfil_mapa ), $p ) );
147 154  
148   - $dataCol = array(
149   - "publicado_mapa" => $publicado_mapa,
150   - "ordem_mapa" => $ordem_mapa,
151   - "desc_mapa" => $desc_mapa,
152   - "ext_mapa" => $ext_mapa,
153   - "imagem_mapa" => $imagem_mapa,
154   - "outros_mapa" => $outros_mapa,
155   - "nome_mapa" => $nome_mapa,
156   - "linkdireto_mapa" => $linkdireto_mapa,
157   - "temas_mapa" => $temas_mapa,
158   - "ligados_mapa" => $ligados_mapa,
159   - "perfil_mapa" => $perfil_mapa
  155 + $dataCol = array (
  156 + "publicado_mapa" => $publicado_mapa,
  157 + "ordem_mapa" => $ordem_mapa,
  158 + "desc_mapa" => $desc_mapa,
  159 + "ext_mapa" => $ext_mapa,
  160 + "imagem_mapa" => $imagem_mapa,
  161 + "outros_mapa" => $outros_mapa,
  162 + "nome_mapa" => $nome_mapa,
  163 + "linkdireto_mapa" => $linkdireto_mapa,
  164 + "temas_mapa" => $temas_mapa,
  165 + "ligados_mapa" => $ligados_mapa,
  166 + "perfil_mapa" => $perfil_mapa
160 167 );
161 168 $resultado = i3GeoAdminUpdate ( $dbhw, "i3geoadmin_mapas", $dataCol, "WHERE id_mapa = $id_mapa" );
162 169 if ($resultado === false) {
... ... @@ -172,4 +179,5 @@ function excluir($id_mapa, $dbhw) {
172 179 }
173 180 return $resultado;
174 181 }
  182 +
175 183 ?>
... ...
admin1/catalogo/mapfile/exec.php
... ... @@ -29,7 +29,8 @@ error_reporting ( 0 );
29 29  
30 30 include_once (dirname ( __FILE__ ) . "/../../../admin/php/login.php");
31 31 $funcoesEdicao = array (
32   - "LISTA"
  32 + "LISTA",
  33 + "ADICIONAR"
33 34 );
34 35 if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) {
35 36 if (verificaOperacaoSessao ( "admin/html/editormapfile" ) === false) {
... ... @@ -39,131 +40,348 @@ if (in_array ( strtoupper ( $funcao ), $funcoesEdicao )) {
39 40 }
40 41 include (dirname ( __FILE__ ) . "/../../../admin/php/conexao.php");
41 42  
42   -//$id_mapa = $_POST["id_mapa"];
43   -//testaSafeNumerico([$id_mapa]);
  43 +// $id_mapa = $_POST["id_mapa"];
  44 +// testaSafeNumerico([$id_mapa]);
44 45  
45 46 $funcao = strtoupper ( $funcao );
46 47 switch ($funcao) {
  48 + case "ADICIONAR" :
  49 + $codigo = $_POST ["codigo"];
  50 + $codigo = str_replace ( " ", "", removeAcentos ( $codigo ) );
  51 + $codigo = str_replace ( ".", "", $codigo );
  52 + $codigo = strip_tags ( $codigo );
  53 + $codigo = htmlspecialchars ( $codigo, ENT_QUOTES );
  54 + $arq = $locaplic . "/temas/" . $codigo . ".map";
  55 + if ($codigo == "" || file_exists ( $arq )) {
  56 + header ( "HTTP/1.1 400 arquivo ja existe" );
  57 + exit ();
  58 + }
  59 + $novo = adicionar ( $locaplic, $_POST ["link_tema"], $codigo, $_POST ["acessopublico"], $_POST ["metaestat"], $_POST ["titulo"], $_POST ["desc_tema"], $_POST ["tituloEN"], $_post ["tituloES"], $dbhw );
  60 + if ($novo === false) {
  61 + header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
  62 + exit ();
  63 + }
  64 + retornaJSON ( array (
  65 + "codigo" => $codigo
  66 + ) );
  67 + exit ();
  68 + break;
  69 + case "EXCLUIR" :
  70 + $codigo = $_POST ["codigo"];
  71 + $codigo = str_replace ( " ", "", removeAcentos ( $codigo ) );
  72 + $codigo = str_replace ( ".", "", $codigo );
  73 + $codigo = strip_tags ( $codigo );
  74 + $codigo = htmlspecialchars ( $codigo, ENT_QUOTES );
  75 + $retorna = excluir ( $codigo, $dbhw );
  76 + $dbhw = null;
  77 + $dbh = null;
  78 + if ($retorna === false) {
  79 + header ( "HTTP/1.1 400 $retorna" );
  80 + exit ();
  81 + }
  82 + retornaJSON ( array (
  83 + "codigo" => $codigo
  84 + ) );
  85 + exit ();
  86 + break;
47 87 case "LISTA" :
48   - $retorna = lista($dbh);
  88 + $retorna = lista ( $dbh );
49 89 $dbhw = null;
50 90 $dbh = null;
51 91 if ($retorna === false) {
52 92 header ( "HTTP/1.1 500 erro ao consultar banco de dados" );
53 93 exit ();
54 94 }
55   - retornaJSON ($retorna);
56   - exit();
  95 + retornaJSON ( $retorna );
  96 + exit ();
  97 + break;
  98 + case "LIMPACACHE" :
  99 + $mapfile = $locaplic."/temas/".$_POST["codigo"].".map";
  100 + if(!file_exists($mapfile)){
  101 + header ( "HTTP/1.1 403 arquivo nao existe" );
  102 + exit ();
  103 + }
  104 + $mapa = ms_newMapObj($mapfile);
  105 + $nomes = $mapa->getalllayernames();
  106 + //$cachedir e $dir_tmp vem de ms_configura.php
  107 + if($cachedir != ""){
  108 + $d = $cachedir;
  109 + }
  110 + else{
  111 + $d = $dir_tmp."/cache";
  112 + }
  113 + foreach($nomes as $nome){
  114 + $nome = str_replace(".","",$nome);
  115 + $nome = strip_tags($nome);
  116 + $nome = htmlspecialchars($nome, ENT_QUOTES);
  117 + $dirs[] = $d."/".$nome;
  118 + $dirs[] = $d."/googlemaps/".$nome;
  119 + $dirs[] = $d."/wmts/".$nome;
  120 + foreach($dirs as $dir){
  121 + rrmdir($dir);
  122 + }
  123 + }
  124 + retornaJSON("ok");
  125 + exit ();
57 126 break;
58 127 }
59 128 cpjson ( $retorno );
  129 +function excluir($codigo, $dbhw) {
  130 + global $locaplic, $esquemaadmin;
  131 + // pega o id do tema
  132 + // se o mapfile nao estiver registrado, $id sera vazio
  133 + $dados = pegaDados ( "SELECT id_tema from " . $esquemaadmin . "i3geoadmin_temas WHERE codigo_tema = '" . $codigo . "'", $dbhw, false );
  134 + if (count ( $dados ) > 0) {
  135 + $id = $dados [0] ["id_tema"];
  136 + } else {
  137 + $id = "";
  138 + }
  139 + // verifica se o tema esta em uso
  140 + if ($id != "") {
  141 + $r = pegaDados ( "SELECT id_tema from " . $esquemaadmin . "i3geoadmin_n3 where id_tema ='$id'", $dbhw, false );
  142 + if (count ( $r ) > 0) {
  143 + return "o tema e utilizado em algum subgrupo";
  144 + }
  145 + $r = pegaDados ( "SELECT id_tema from " . $esquemaadmin . "i3geoadmin_raiz where id_tema ='$id'", $dbhw, false );
  146 + if (count ( $r ) > 0) {
  147 + return "o tema e utilizado em alguma raiz";
  148 + }
  149 + }
  150 + if (!file_exists ( "$locaplic/temas/" . $codigo . ".map" )) {
  151 + return "o arquivo mapfile nao existe";
  152 + }
  153 + //verifica se pode escrever
  154 + $handle = fopen("$locaplic/temas/" . $codigo . ".map", "r+");
  155 + if($handle == false){
  156 + return "o arquivo nao pode ser apagado verifique as permissoes";
  157 + }
  158 + fclose($handle);
  159 + //tenta excluir do banco
  160 + $resultado = i3GeoAdminExclui ( $esquemaadmin . "i3geoadmin_temas", "id_tema", $id, $dbhw, true );
  161 + if ($resultado === false) {
  162 + return "nao foi possivel excluir do banco de dados";
  163 + }
  164 + unlink("$locaplic/temas/" . $codigo . ".map");
  165 + return true;
  166 +}
  167 +function adicionar($locaplic, $link_tema, $codigo, $acessopublico, $metaestat, $titulo, $desc_tema, $tituloEN, $tituloES, $dbhw) {
  168 + global $convUTF, $esquemaadmin;
  169 + $arq = $locaplic . "/temas/" . $codigo . ".map";
  170 + if (empty ( $acessopublico ) || $acessopublico == "on") {
  171 + $acessopublico = "SIM";
  172 + } else {
  173 + $acessopublico = "SIM";
  174 + }
  175 + $tipoLayer = "line";
  176 + $dados [] = "MAP";
  177 + $dados [] = "SYMBOLSET ../symbols/simbolosv6.sym";
  178 + $dados [] = 'FONTSET "../symbols/fontes.txt"';
  179 + $dados [] = "LAYER";
  180 + $dados [] = ' NAME "' . $codigo . '"';
  181 + $dados [] = ' TEMPLATE "none.htm"';
  182 + if (! empty ( $metaestat ) && $metaestat == "SIM") {
  183 + $dados [] = ' CONNECTIONTYPE POSTGIS';
  184 + $tipoLayer = "polygon";
  185 + }
  186 + $dados [] = " TYPE " . $tipoLayer;
  187 + $dados [] = ' DATA ""';
  188 + $dados [] = ' CONNECTION ""';
  189 + $dados [] = ' STATUS DEFAULT';
  190 + $dados [] = ' METADATA';
  191 + $dados [] = ' TEMA "' . $titulo . '"';
  192 + $dados [] = ' CLASSE "SIM"';
  193 + $tipoa_tema = "";
  194 + if (! empty ( $metaestat ) && $metaestat == "SIM") {
  195 + $dados [] = ' METAESTAT "SIM"';
  196 + // para marcar no banco de dados de administracao
  197 + $tipoa_tema = "META";
  198 + }
  199 + $dados [] = ' permiteogc "' . $acessopublico . '"';
  200 + $dados [] = ' permitedownload "' . $acessopublico . '"';
  201 + $dados [] = ' permitekml "' . $acessopublico . '"';
  202 + $dados [] = ' permitekmz "' . $acessopublico . '"';
  203 + $dados [] = ' END';
  204 + $dados [] = ' CLASS';
  205 + $dados [] = ' NAME ""';
  206 + $dados [] = ' STYLE';
  207 + $dados [] = ' COLOR 0 0 0';
  208 + $dados [] = ' SIZE 12';
  209 + $dados [] = ' END';
  210 + $dados [] = ' END';
  211 + $dados [] = "END";
  212 + $dados [] = "END";
60 213  
61   -function lista($dbh,$filtro=""){
62   - global $locaplic,$esquemaadmin;
63   - $arquivos = array();
64   - if (is_dir($locaplic."/temas")){
65   - if ($dh = opendir($locaplic."/temas")){
  214 + // abre o arquivo para ver se nao deu erro antes de adicionar ao banco
  215 + $fp = fopen ( $arq, "w" );
  216 + if ($fp === false) {
  217 + return false;
  218 + }
  219 + if ($convUTF != true) {
  220 + $titulo = utf8_decode ( $titulo );
  221 + $desc_tema = utf8_decode ( $desc_tema );
  222 + }
  223 + try {
  224 + $dataCol = array (
  225 + "link_tema" => $link_tema,
  226 + "kml_tema" => $acessopublico,
  227 + "kmz_tema" => $acessopublico,
  228 + "ogc_tema" => $acessopublico,
  229 + "download_tema" => $acessopublico,
  230 + "desc_tema" => $desc_tema,
  231 + "tipoa_tema" => $tipoa_tema,
  232 + "tags_tema" => '',
  233 + "nome_tema" => $titulo,
  234 + "codigo_tema" => $codigo,
  235 + "it" => "",
  236 + "es" => $tituloES,
  237 + "en" => $tituloEN
  238 + );
  239 + i3GeoAdminInsert ( $dbhw, "i3geoadmin_temas", $dataCol );
  240 + // salva o arquivo mapfile
  241 + foreach ( $dados as $dado ) {
  242 + fwrite ( $fp, $dado . "\n" );
  243 + }
  244 + fclose ( $fp );
  245 + return $retorna;
  246 + } catch ( PDOException $e ) {
  247 + return false;
  248 + }
  249 +}
  250 +function lista($dbh, $filtro = "") {
  251 + global $locaplic, $esquemaadmin;
  252 + $arquivos = array ();
  253 + if (is_dir ( $locaplic . "/temas" )) {
  254 + if ($dh = opendir ( $locaplic . "/temas" )) {
66 255 $extensao = "";
67   - while (($file = readdir($dh)) !== false){
68   - if(!stristr($file, '.map') === FALSE){
69   - $file = str_replace(".map","",$file);
70   - $arquivos[] = array("nome"=>$file);
  256 + while ( ($file = readdir ( $dh )) !== false ) {
  257 + if (! stristr ( $file, '.map' ) === FALSE) {
  258 + $file = str_replace ( ".map", "", $file );
  259 + $arquivos [] = array (
  260 + "nome" => $file
  261 + );
71 262 }
72 263 }
73 264 }
74   - closedir($dh);
  265 + closedir ( $dh );
75 266 }
76   - sort($arquivos);
  267 + sort ( $arquivos );
77 268  
78 269 //
79   - //pega o nome de cada tema filtrando a listagem se for o caso
  270 + // pega o nome de cada tema filtrando a listagem se for o caso
80 271 //
81   - $regs = pegaDados("select * from ".$esquemaadmin."i3geoadmin_temas ", $dbh, false);
82   - //pega os grupos de usuarios que podem acessar o tema
83   - $grpids = array();
84   - $sql = "select nome,descricao,a.id_grupo,id_tema from ".$esquemaadmin."i3geousr_grupotema as a,".$esquemaadmin."i3geousr_grupos as b where a.id_grupo = b.id_grupo";
85   - $gs = pegaDados($sql, $dbh, false);
86   - //agrupa o array
87   - foreach($gps as $g){
88   - array_push($grpids[$g["id_tema"]],array("id_grupo"=>$g["id_grupo"],"nome"=>$g["nome"],"descricao"=>$g["descricao"]));
89   - }
  272 + $regs = pegaDados ( "select * from " . $esquemaadmin . "i3geoadmin_temas ", $dbh, false );
90 273  
91   - $nomes = array();
92   - $ids = array();
93   - foreach($regs as $reg){
94   - $nomes[$reg["codigo_tema"]] = $reg["nome_tema"];
95   - $ids[$reg["codigo_tema"]] = $reg["id_tema"];
  274 + $nomes = array ();
  275 + $ids = array ();
  276 + foreach ( $regs as $reg ) {
  277 + $nomes [$reg ["codigo_tema"]] = $reg ["nome_tema"];
  278 + $ids [$reg ["codigo_tema"]] = $reg ["id_tema"];
96 279 }
97   - $lista = array();
  280 + $lista = array ();
98 281  
99   - foreach($arquivos as $arq){
100   - $arq = $arq["nome"];
101   - $nT = explode(".",$arq);
102   - $n = $nomes[$nT[0]];
103   - if(!$n){
  282 + foreach ( $arquivos as $arq ) {
  283 + $arq = $arq ["nome"];
  284 + $nT = explode ( ".", $arq );
  285 + $n = $nomes [$nT [0]];
  286 + if (! $n) {
104 287 $n = "";
105 288 }
106   - $id = $ids[$nT[0]];
107   - if(!$id){
  289 + $id = $ids [$nT [0]];
  290 + if (! $id) {
108 291 $id = "";
109 292 }
110   - //pega os grupos de usuarios
111   - $grupousr = $grpids[$id];
112   - if(!$grupousr){
113   - $grupousr = "";
114   - }
115 293 $imagem = "";
116   - if(file_exists($locaplic."/temas/miniaturas/".$arq.".map.mini.png")){
117   - $imagem = $arq.".map.mini.png";
  294 + if (file_exists ( $locaplic . "/temas/miniaturas/" . $arq . ".map.mini.png" )) {
  295 + $imagem = $arq . ".map.mini.png";
118 296 }
119 297  
120   - if($_POST["checaNomes"] == "true"){
121   - if(file_exists($locaplic."/temas/".$arq.".map")){
122   - $handle = fopen($locaplic."/temas/".$arq.".map", "r");
123   - while (!feof($handle)){
124   - $linha = fgets($handle);
125   - if(stripos($linha,"'TEMA'") !== false || stripos($linha,'"TEMA"') !== false){
126   - $ntema = str_replace(array("'TEMA'",'"TEMA"',"'tema'",'"tema"'),"",$linha);
127   - $ntema = trim(str_replace(array("'",'"'),"",$ntema));
128   - if($n != $ntema && $n != utf8_encode($ntema) && $n != ""){
129   - $n .= "<span style=color:red;margin-left:5px >".utf8_encode($ntema)."</span>";
  298 + if ($_POST ["checaNomes"] == "true") {
  299 + if (file_exists ( $locaplic . "/temas/" . $arq . ".map" )) {
  300 + $handle = fopen ( $locaplic . "/temas/" . $arq . ".map", "r" );
  301 + while ( ! feof ( $handle ) ) {
  302 + $linha = fgets ( $handle );
  303 + if (stripos ( $linha, "'TEMA'" ) !== false || stripos ( $linha, '"TEMA"' ) !== false) {
  304 + $ntema = str_replace ( array (
  305 + "'TEMA'",
  306 + '"TEMA"',
  307 + "'tema'",
  308 + '"tema"'
  309 + ), "", $linha );
  310 + $ntema = trim ( str_replace ( array (
  311 + "'",
  312 + '"'
  313 + ), "", $ntema ) );
  314 + if ($n != $ntema && $n != utf8_decode ( $ntema ) && $n != "") {
  315 + $n .= "<span style=color:red;margin-left:5px >" . utf8_decode ( $ntema ) . "</span>";
130 316 }
131 317 break;
132 318 }
133 319 }
134   - fclose($handle);
  320 + fclose ( $handle );
135 321 }
136 322 }
137   - if($_POST["checaNames"] == "true"){
138   - if(file_exists($locaplic."/temas/".$arq.".map")){
139   - $handle = fopen($locaplic."/temas/".$arq.".map", "r");
140   - //deve buscar dentro de LAYER pois pode haver simbolos antes
  323 + if ($_POST ["checaNames"] == "true") {
  324 + if (file_exists ( $locaplic . "/temas/" . $arq . ".map" )) {
  325 + $handle = fopen ( $locaplic . "/temas/" . $arq . ".map", "r" );
  326 + // deve buscar dentro de LAYER pois pode haver simbolos antes
141 327 $elayer = false;
142   - while (!feof($handle)){
143   - $linha = trim(fgets($handle));
144   - if(stripos($linha,"LAYER") === 0){
  328 + while ( ! feof ( $handle ) ) {
  329 + $linha = trim ( fgets ( $handle ) );
  330 + if (stripos ( $linha, "LAYER" ) === 0) {
145 331 $elayer = true;
146 332 }
147   - if($elayer == true && stripos($linha,"NAME") === 0){
148   - $ntema = ltrim($linha,"NAMEname");
149   - $ntema = trim(str_replace(array("'",'"'),"",$ntema));
150   - if($arq != $ntema){
  333 + if ($elayer == true && stripos ( $linha, "NAME" ) === 0) {
  334 + $ntema = ltrim ( $linha, "NAMEname" );
  335 + $ntema = trim ( str_replace ( array (
  336 + "'",
  337 + '"'
  338 + ), "", $ntema ) );
  339 + if ($arq != $ntema) {
151 340 $n .= "<img style='margin-left:3px;' src='../imagens/face-sad.png' title='Nome do LAYER diferente do nome do arquivo' />";
152 341 }
153 342 break;
154 343 }
155 344 }
156   - fclose($handle);
  345 + fclose ( $handle );
157 346 }
158 347 }
159   - if(isset($filtro) && $filtro != "" && $n != ""){
160   - $lista[] = array("grupousr"=>$grupousr,"id_tema"=>$id,"nome"=>$n,"codigo"=>$arq,"imagem"=>$imagem,"extensao"=>$extensao);
  348 + if (isset ( $filtro ) && $filtro != "" && $n != "") {
  349 + $lista [] = array (
  350 + "id_tema" => $id,
  351 + "nome" => $n,
  352 + "codigo" => $arq,
  353 + "imagem" => $imagem,
  354 + "extensao" => $extensao
  355 + );
161 356 }
162   - if(!isset($filtro) || $filtro == ""){
163   - $lista[] = array("grupousr"=>$grupousr,"id_tema"=>$id,"nome"=>$n,"codigo"=>$arq,"imagem"=>$imagem,"extensao"=>$extensao);
  357 + if (! isset ( $filtro ) || $filtro == "") {
  358 + $lista [] = array (
  359 + "id_tema" => $id,
  360 + "nome" => $n,
  361 + "codigo" => $arq,
  362 + "imagem" => $imagem,
  363 + "extensao" => $extensao
  364 + );
164 365 }
165   -
166 366 }
167 367 return $lista;
168 368 }
  369 +function rrmdir($dir) {
  370 + if (is_dir($dir)) {
  371 + $objects = scandir($dir);
  372 + foreach ($objects as $object) {
  373 + if ($object != "." && $object != "..") {
  374 + if (filetype($dir."/".$object) == "dir") {
  375 + rrmdir($dir."/".$object);
  376 + } else {
  377 + $object = str_replace(".png","",$object).".png";
  378 + chmod($dir."/".$object,077);
  379 + unlink($dir."/".$object);
  380 + }
  381 + }
  382 + }
  383 + reset($objects);
  384 + //rmdir($dir);
  385 + }
  386 +}
169 387 ?>
... ...
admin1/catalogo/mapfile/index.js
... ... @@ -48,43 +48,14 @@ Obt&amp;eacute;m a lista
48 48 var filtro = i3GEOadmin.core.valorFiltro();
49 49 //objeto json com os dados viondos do banco
50 50 var json = jQuery.parseJSON(data);
51   - //template do form de cada operacao
52 51 var templateLista = $("#templateLista").html();
53   - //combo com temas
54   - var opcoesTema = '<option value="">---</option>' + Mustache.to_html(
55   - "{{#data}}" + $("#templateTemas").html() + "{{/data}}",
56   - {"data":json["temas"]}
57   - );
58   - //combo com perfis
59   - var opcoesPerfil = '<option value="">---</option>' + Mustache.to_html(
60   - "{{#data}}" + $("#templateOpcoesPerfil").html() + "{{/data}}",
61   - {"data":json["perfis"]}
62   - );
63   - //lista todas as menus
64 52 var html = Mustache.to_html(
65 53 "{{#data}}" + templateLista + "{{/data}}",
66 54 $.extend(
67 55 {},
68 56 i3GEOadmin.mapfile.dicionario,
69 57 {
70   - "data": json,
71   - "onExcluir": "i3GEOadmin.mapfile.excluirDialogo",//funcao
72   - "onSalvar": "i3GEOadmin.mapfile.salvarDialogo",//funcao
73   - "opcoesPublicado": function(){
74   - var hash = {};
75   - hash["sim"] = i3GEOadmin.mapfile.dicionario.sim;
76   - hash["nao"] = i3GEOadmin.mapfile.dicionario.nao;
77   - if(this.publicado_mapa == ""){
78   - this.publicado_mapa = "SIM";
79   - }
80   - hash[this.publicado_mapa + "-sel"] = "selected";
81   - return Mustache.to_html(
82   - $("#templateOpcoesPublicado").html(),
83   - hash
84   - );
85   - },
86   - "opcoesPerfil": opcoesPerfil,
87   - "opcoesTema": opcoesTema
  58 + "data": json
88 59 }
89 60 )
90 61 );
... ... @@ -119,9 +90,7 @@ Obt&amp;eacute;m a lista
119 90 {},
120 91 i3GEOadmin.mapfile.dicionario,
121 92 {
122   - "data": "modal",
123   - "onExcluir": "i3GEOadmin.core.fechaModalGeral",
124   - "onSalvar": "i3GEOadmin.mapfile.salvarDialogo"
  93 + "data": "modal"
125 94 }
126 95 )
127 96 );
... ... @@ -129,7 +98,7 @@ Obt&amp;eacute;m a lista
129 98 },
130 99 // os parametros sao obtidos do formulario aberto do modal
131 100 adiciona: function(){
132   - var parametros = $("#form-modal form").serialize();
  101 + var parametros = $("#form-modal-adiciona").serialize();
133 102 i3GEOadmin.core.fechaModalGeral();
134 103 i3GEOadmin.core.modalAguarde(true);
135 104 $.post(
... ... @@ -138,8 +107,10 @@ Obt&amp;eacute;m a lista
138 107 )
139 108 .done(
140 109 function(data, status){
  110 + var json = jQuery.parseJSON(data);
141 111 i3GEOadmin.core.modalAguarde(false);
142 112 i3GEOadmin.core.iconeAguarde(i3GEOadmin.mapfile.ondeLista);
  113 + i3GEOadmin.mapfile.favoritosArray.push(json.codigo);
143 114 i3GEOadmin.mapfile.lista();
144 115 }
145 116 )
... ... @@ -164,45 +135,14 @@ Obt&amp;eacute;m a lista
164 135 i3GEOadmin.core.modalAguarde(true);
165 136 $.post(
166 137 "exec.php?funcao=excluir",
167   - "id_mapa="+id
168   - )
169   - .done(
170   - function(data, status){
171   - i3GEOadmin.core.modalAguarde(false);
172   - var json = jQuery.parseJSON(data)*1;
173   - $("#form-" + json).remove();
174   - }
175   - )
176   - .fail(
177   - function(data){
178   - i3GEOadmin.core.modalAguarde(false);
179   - i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
180   - }
181   - );
182   - },
183   - salvarDialogo: function(id){
184   - var hash = {
185   - "mensagem": i3GEOadmin.mapfile.dicionario.confirma,
186   - "onBotao1": "i3GEOadmin.mapfile.salvar('"+id+"')",
187   - "botao1": i3GEOadmin.mapfile.dicionario.sim,
188   - "onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
189   - "botao2": i3GEOadmin.mapfile.dicionario.nao
190   - };
191   - i3GEOadmin.core.abreModalConfirma(hash);
192   - },
193   - salvar: function(id){
194   - var parametros = $("#form-" + id + " form").serialize();
195   - i3GEOadmin.core.fechaModalGeral();
196   - i3GEOadmin.core.modalAguarde(true);
197   - $.post(
198   - "exec.php?funcao=alterar",
199   - "id_mapa="+ id+"&"+parametros
  138 + "codigo="+id
200 139 )
201 140 .done(
202 141 function(data, status){
203 142 i3GEOadmin.core.modalAguarde(false);
204   - i3GEOadmin.core.iconeAguarde(i3GEOadmin.mapfile.ondeLista);
205   - i3GEOadmin.mapfile.lista();
  143 + var json = jQuery.parseJSON(data);
  144 + $("#form-" + json.codigo).remove();
  145 + i3GEOadmin.mapfile.registraFavoritos(json.codigo);
206 146 }
207 147 )
208 148 .fail(
... ... @@ -212,10 +152,6 @@ Obt&amp;eacute;m a lista
212 152 }
213 153 );
214 154 },
215   - addInput: function(id,valor){
216   - var i = $("#"+id);
217   - $(i.val(i.val() + ' ' + valor));
218   - },
219 155 retornaFavoritosArray: function(){
220 156 var temp = i3GEO.util.pegaCookie("I3GEOfavoritosEditorMapfile");
221 157 if(temp){
... ... @@ -227,6 +163,7 @@ Obt&amp;eacute;m a lista
227 163 return i3GEOadmin.mapfile.favoritosArray;
228 164 },
229 165 registraFavoritos: function(codigoTema){
  166 + i3GEOadmin.mapfile.favoritosArray.remove("NaN");
230 167 if(i3GEO.util.in_array(codigoTema,i3GEOadmin.mapfile.favoritosArray)){
231 168 i3GEOadmin.mapfile.favoritosArray.remove(codigoTema);
232 169 } else {
... ... @@ -236,16 +173,46 @@ Obt&amp;eacute;m a lista
236 173 i3GEOadmin.mapfile.montaFavoritos();
237 174 },
238 175 montaFavoritos: function(){
239   - var mapfile, i, conteudo = [], n, codigo;
  176 + var mapfile, i, conteudo = [], n, codigo, h;
240 177 n = i3GEOadmin.mapfile.favoritosArray.length;
241 178 for (i=0; i<n; i++){
242 179 codigo = i3GEOadmin.mapfile.favoritosArray[i];
243   - mapfile = '<div class="panel panel-default">' + $("#form-" + codigo + " .panel-heading").html();
244   - conteudo.push(mapfile);
245   - mapfile = '<div class="panel-body">' + $("#form-" + codigo + " .panel-footer").html() + "</div></div>";
246   - conteudo.push(mapfile);
  180 + h = $("#form-" + codigo + " .panel-heading").html();
  181 + if(h != undefined){
  182 + mapfile = '<div class="panel panel-default">' + h;
  183 + conteudo.push(mapfile);
  184 + mapfile = '<div class="panel-body">' + $("#form-" + codigo + " .panel-body").html() + "</div></div>";
  185 + conteudo.push(mapfile);
  186 + }
247 187 }
248 188 $("#body-favoritos").html(conteudo.join("\n"));
  189 + },
  190 + limpaCacheDialogo: function(codigo){
  191 + var hash = {
  192 + "mensagem": i3GEOadmin.mapfile.dicionario.excluiCache,
  193 + "onBotao1": "i3GEOadmin.mapfile.limpaCache('"+codigo+"')",
  194 + "botao1": i3GEOadmin.mapfile.dicionario.sim,
  195 + "onBotao2": "i3GEOadmin.core.fechaModalConfirma();",
  196 + "botao2": i3GEOadmin.mapfile.dicionario.nao
  197 + };
  198 + i3GEOadmin.core.abreModalConfirma(hash);
  199 + },
  200 + limpaCache: function(codigo){
  201 + i3GEOadmin.core.modalAguarde(true);
  202 + $.post(
  203 + "exec.php?funcao=limpaCache",
  204 + "codigo="+codigo
  205 + )
  206 + .done(
  207 + function(data, status){
  208 + i3GEOadmin.core.modalAguarde(false);
  209 + }
  210 + )
  211 + .fail(
  212 + function(data){
  213 + i3GEOadmin.core.modalAguarde(false);
  214 + i3GEOadmin.core.mostraErro(data.status + " " +data.statusText);
  215 + }
  216 + );
249 217 }
250   -
251 218 };
252 219 \ No newline at end of file
... ...
admin1/catalogo/mapfile/index.php
... ... @@ -68,24 +68,18 @@ include &quot;../../head.php&quot;;
68 68 <div class="panel panel-default" id="form-{{codigo}}">
69 69 <div class="panel-heading" role="tab">
70 70 <h4 class="panel-title {{escondido}}">
71   - <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{codigo}}"
72   - aria-expanded="false" aria-controls="#body-form-{{codigo}}"> {{{codigo}}} <small> {{{nome}}}</small> </a>
  71 + <a title="{{{favorito}}}" href="javascript:void(0)" onclick="i3GEOadmin.mapfile.registraFavoritos('{{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
  72 + <i class="material-icons">favorite_border</i>
  73 + </a>
  74 + <a class="collapsed in" role="button" data-toggle="collapse" href="#body-form-{{codigo}}" aria-expanded="false" aria-controls="#body-form-{{codigo}}">
  75 + &nbsp;
  76 + <small> {{{arquivoTxt}}}:</small> {{{codigo}}} <small> {{{tituloTxt}}}:</small> {{{nome}}}
  77 + </a>
73 78 </h4>
74 79 </div>
75 80 <div class="panel-body panel-collapse collapse" id="body-form-{{codigo}}">
76   - <form style="" action="#" onsubmit="{{onSalvar}}('{{id_mapa}}');return false;" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" >
77   - <div class="row">
78   - <div class="col-md-12">
79   - </div>
80   - </div>
81   - <div class="pull-right">
82   - <button type="submit" class="btn btn-primary" role="button" style="color:#008579;">{{salvar}}</button>
83   - </div>
84   - </form>
85   - </div>
86   - <div class="panel-footer">
87 81 <div>
88   - <a title="{{{excluir}}}" href="javascript:void(0)" onclick="{{onExcluir}}('{{id_tema}}','{{codigo}}')" class="btn btn-danger btn-fab btn-fab-mini" role="button">
  82 + <a title="{{{excluir}}}" href="javascript:void(0)" onclick="i3GEOadmin.mapfile.excluirDialogo('{{codigo}}','{{codigo}}')" class="btn btn-danger btn-fab btn-fab-mini" role="button">
89 83 <i class="material-icons">delete_forever</i>
90 84 </a>
91 85 &nbsp;
... ... @@ -93,31 +87,28 @@ include &quot;../../head.php&quot;;
93 87 <i class="material-icons">filter_list</i>
94 88 </a>
95 89 &nbsp;
96   - <a title="{{{favorito}}}" href="javascript:void(0)" onclick="i3GEOadmin.mapfile.registraFavoritos('{{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
97   - <i class="material-icons">favorite_border</i>
98   - </a>
99   - &nbsp;
  90 +
100 91 <a title="{{{criaCopia}}}" href="javascript:void(0)" onclick="{{onExcluir}}('{{id_tema}}','{{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
101 92 <i class="material-icons">content_copy</i>
102 93 </a>
103 94 &nbsp;
104   - <a title="{{{limpaCache}}}" href="javascript:void(0)" onclick="{{onExcluir}}('{{id_tema}}','{{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
  95 + <a title="{{{limpaCache}}}" href="javascript:void(0)" onclick="i3GEOadmin.mapfile.limpaCacheDialogo('{{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
105 96 <i class="material-icons">layers_clear</i>
106 97 </a>
107 98 &nbsp;
108   - <a title="{{{editaTema}}}" href="javascript:void(0)" onclick="{{onExcluir}}('{{id_tema}}','{{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
109   - <i class="material-icons">link</i>
  99 + <a title="{{{editorTxt}}}" href="javascript:void(0)" onclick="window.open('../../../admin/php/editortexto.php?mapfile={{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
  100 + <i class="material-icons">mode_edit</i>
110 101 </a>
111 102 &nbsp;
112   - <a title="{{{testaLayer}}}" href="javascript:void(0)" onclick="{{onExcluir}}('{{id_tema}}','{{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
  103 + <a title="{{{testaLayer}}}" href="javascript:void(0)" onclick="window.open('../../../testamapfile.php?map={{codigo}}.map')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
113 104 <i class="material-icons">report</i>
114 105 </a>
115 106 &nbsp;
116   - <a title="{{{editarI3geo}}}" href="javascript:void(0)" onclick="{{onExcluir}}('{{id_tema}}','{{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
  107 + <a title="{{{editarI3geo}}}" href="javascript:void(0)" onclick="window.open('../../../interface/black_editor.php?&temaEdicao={{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
117 108 <i class="material-icons">settings</i>
118 109 </a>
119 110 &nbsp;
120   - <a title="{{{testarI3geo}}}" href="javascript:void(0)" onclick="{{onExcluir}}('{{id_tema}}','{{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
  111 + <a title="{{{testarI3geo}}}" href="javascript:void(0)" onclick="window.open('../../../ms_criamapa.php?temasa={{codigo}}&layers={{codigo}}')" class="btn btn-primary btn-fab btn-fab-mini" role="button">
121 112 <i class="material-icons">sending</i>
122 113 </a>
123 114 </div>
... ... @@ -125,23 +116,69 @@ include &quot;../../head.php&quot;;
125 116 </div>
126 117 </script>
127 118 <script id="templateAdicionarTema" type="x-tmpl-mustache">
128   -<div class="panel panel-default">
129   - <div class="panel-body">
130 119 <h4>{{{criaMapfile}}}</h4>
131   - <form style="" action="#" onsubmit="{{onSalvar}}();return false;" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" >
  120 + <blockquote>{{{criaMapfileDesc}}}</blockquote>
  121 + <form id="form-modal-adiciona" style="" action="#" onsubmit="i3GEOadmin.mapfile.adiciona();return false;" onchange="this.style.boxShadow='2px 2px 5px 0 #009688';" class="form-horizontal" role="form" method="post" >
132 122 <div class="row">
133 123 <div class="col-md-12">
134 124 <div class="form-group form-group-lg">
135   - <label class="col-md-4 control-label" for="codigo" >{{{nomeMap}}}</label>
136   - <div class="col-md-8">
  125 + <label class="col-md-6 control-label" for="codigo" >{{{nomeMap}}}</label>
  126 + <div class="col-md-6">
137 127 <input title="{{{nomeMap}}}" type="text" value="" class="form-control" name="codigo" required>
138 128 </div>
139 129 </div>
  130 + <div class="form-group form-group-lg">
  131 + <label class="col-md-6 control-label" for="titulo" >{{{tituloTema}}}. {{{tituloPt}}}</label>
  132 + <div class="col-md-6">
  133 + <input title="{{{tituloTema}}}" type="text" value="" class="form-control" name="titulo" >
  134 + </div>
  135 + </div>
  136 + <div class="form-group form-group-lg">
  137 + <label class="col-md-6 control-label" for="tituloES" >{{{tituloEs}}}</label>
  138 + <div class="col-md-6">
  139 + <input title="{{{tituloEs}}}" type="text" value="" class="form-control" name="tituloES" >
  140 + </div>
  141 + </div>
  142 + <div class="form-group form-group-lg">
  143 + <label class="col-md-6 control-label" for="tituloEN" >{{{tituloEn}}}</label>
  144 + <div class="col-md-6">
  145 + <input title="{{{tituloEn}}}" type="text" value="" class="form-control" name="tituloEN" >
  146 + </div>
  147 + </div>
  148 + <div class="form-group form-group-lg">
  149 + <label class="col-md-6 control-label" for="desc_tema" >{{{descricaoTxt}}}</label>
  150 + <div class="col-md-6">
  151 + <input title="{{{descricaoTxt}}}" type="text" value="" class="form-control" name="desc_tema" >
  152 + </div>
  153 + </div>
  154 + <div class="form-group form-group-lg">
  155 + <label class="col-md-6 control-label" for="link_tema" >{{{fonteTema}}}</label>
  156 + <div class="col-md-6">
  157 + <input title="{{{fonteTema}}}" type="text" value="" class="form-control" name="link_tema" >
  158 + </div>
  159 + </div>
  160 + <div class="form-group form-group-lg">
  161 + <label class="col-md-6 control-label" for="metaestat">{{{metaestat}}}</label>
  162 + <div class="col-md-6">
  163 + <select title="{{{metaestat}}}" class="form-control" name="metaestat">
  164 + <option value="SIM" >{{{sim}}}</option>
  165 + <option value="NAO" selected >{{{nao}}}</option>
  166 + </select>
  167 + </div>
  168 + </div>
  169 + <div class="form-group form-group-lg">
  170 + <div class="checkbox col-md-12">
  171 + <label>
  172 + <input title="{{{permiteOgc}}}" type="checkbox" checked name="acessopublico" /> {{{permiteOgc}}}
  173 + </label>
  174 + </div>
  175 + </div>
140 176 </div>
  177 + <div class="pull-right">
  178 + <button type="submit" class="btn btn-primary" role="button" style="color:#008579;">{{salva}}</button>
  179 + </div>
141 180 </div>
142 181 </form>
143   - </div>
144   -</div>
145 182 </script>
146 183 <script type="text/javascript" src="index.js"></script>
147 184 <script type="text/javascript" src="../../dicionario/editormapfile.js"></script>
... ...
admin1/catalogo/menus/exec.php
... ... @@ -131,7 +131,7 @@ function adicionar($publicado_menu, $perfil_menu, $aberto, $desc_menu, $nome_men
131 131 }
132 132 // $papeis deve ser um array
133 133 function alterar($id_menu, $publicado_menu, $perfil_menu, $aberto, $desc_menu, $nome_menu, $es, $en,$dbhw) {
134   - global $esquemaadmin;
  134 + global $convUTF, $esquemaadmin;
135 135 if($convUTF){
136 136 $nome_menu = utf8_encode($nome_menu);
137 137 $desc_menu = utf8_encode($desc_menu);
... ...
admin1/catalogo/menus/grupos/listadegrupos/exec.php
... ... @@ -124,7 +124,7 @@ function adicionar($nome_grupo, $desc_grupo, $en, $es, $dbhw) {
124 124 }
125 125 // $papeis deve ser um array
126 126 function alterar($id_grupo, $nome_grupo, $desc_grupo, $en, $es, $dbhw) {
127   - global $esquemaadmin;
  127 + global $convUTF, $esquemaadmin;
128 128 if($convUTF){
129 129 $nome_grupo = utf8_encode($nome_grupo);
130 130 $desc_grupo = utf8_encode($desc_grupo);
... ...
admin1/catalogo/menus/grupos/subgrupos/listadesubgrupos/exec.php
... ... @@ -124,7 +124,7 @@ function adicionar($nome_subgrupo, $desc_subgrupo, $en, $es, $dbhw) {
124 124 }
125 125 // $papeis deve ser um array
126 126 function alterar($id_subgrupo, $nome_subgrupo, $desc_subgrupo, $en, $es, $dbhw) {
127   - global $esquemaadmin;
  127 + global $convUTF, $esquemaadmin;
128 128 if($convUTF){
129 129 $nome_subgrupo = utf8_encode($nome_subgrupo);
130 130 $desc_subgrupo = utf8_encode($desc_subgrupo);
... ...
admin1/dicionario/core.js
... ... @@ -419,5 +419,15 @@ i3GEOadmin.core.dicionario = {
419 419 pt : "Editar lista",
420 420 en : "",
421 421 es : ""
  422 + } ],
  423 + 'arquivoTxt' : [ {
  424 + pt : "Arquivo",
  425 + en : "",
  426 + es : ""
  427 + } ],
  428 + 'tituloTxt' : [ {
  429 + pt : "T&iacute;tulo",
  430 + en : "",
  431 + es : ""
422 432 } ]
423 433 };
... ...
admin1/dicionario/editormapfile.js
... ... @@ -1505,9 +1505,14 @@ i3GEOadmin.mapfile.dicionario = {
1505 1505 en : "",
1506 1506 es : ""
1507 1507 } ],
1508   - '' : [ {
1509   - pt : "",
  1508 + 'criaMapfileDesc' : [ {
  1509 + pt : "Ser&aacute; criado um arquivo mapfile na pasta i3geo/temas e registrado no banco de dados de administra&ccedil;&atilde;o. Para facilitar a edi&ccedil;&atilde;o posterior, os mapfiles criados s&atilde;o adicionados na lista de favoritos.",
  1510 + en : "",
  1511 + es : ""
  1512 + } ],
  1513 + 'fonteTema' : [{
  1514 + pt : "Link para os metadados",
1510 1515 en : "",
1511 1516 es : ""
1512   - } ]
  1517 + }]
1513 1518 };
... ...
admin1/usuarios/cadastro/exec.php
... ... @@ -192,9 +192,9 @@ function adicionar($ativo, $data_cadastro, $email, $login, $nome_usuario, $senha
192 192 }
193 193 // $papeis deve ser um array
194 194 function alterar($id_usuario, $ativo, $data_cadastro, $email, $login, $nome_usuario, $senha, $papeis, $dbhw) {
195   - global $esquemaadmin;
196   - if ($convUTF) {
197   - $nome_usuario = utf8_encode ( $nome_usuario );
  195 + global $convUTF, $esquemaadmin;
  196 + if ($convUTF != true) {
  197 + $nome_usuario = utf8_decode ( $nome_usuario );
198 198 }
199 199 $dataCol = array (
200 200 "nome_usuario" => $nome_usuario,
... ...
admin1/usuarios/grupos/exec.php
... ... @@ -151,10 +151,10 @@ function adicionar($nome, $descricao, $usuarios, $dbhw) {
151 151 }
152 152 // $papeis deve ser um array
153 153 function alterar($id_grupo, $nome, $descricao, $usuarios, $dbhw) {
154   - global $esquemaadmin;
155   - if ($convUTF) {
156   - $nome = utf8_encode ( $nome );
157   - $descricao = utf8_encode ( $descricao );
  154 + global $convUTF, $esquemaadmin;
  155 + if ($convUTF != true) {
  156 + $nome = utf8_decode ( $nome );
  157 + $descricao = utf8_decode ( $descricao );
158 158 }
159 159 $dataCol = array (
160 160 "nome" => $nome,
... ...
admin1/usuarios/operacoes/exec.php
... ... @@ -153,7 +153,7 @@ function adicionar($codigo,$descricao,$papeis,$dbhw){
153 153 }
154 154 //$papeis deve ser um array
155 155 function alterar($id_operacao,$codigo,$descricao,$papeis,$dbhw){
156   - global $esquemaadmin;
  156 + global $convUTF, $esquemaadmin;
157 157 if($convUTF){
158 158 $descricao = utf8_encode($descricao);
159 159 }
... ...
classesphp/mapa_openlayers.php
... ... @@ -503,6 +503,7 @@ function salvaCacheImagem($cachedir,$map,$tms){
503 503 else{
504 504 $nome = $cachedir.$tms;
505 505 }
  506 + $nome = str_replace(".png","",$nome);
506 507 $nome = $nome.".png";
507 508 if(!file_exists($nome)){
508 509 @mkdir(dirname($nome),0744,true);
... ...
ogc.php
... ... @@ -132,7 +132,9 @@ if(isset($_GET[&quot;TileMatrix&quot;])){
132 132 $res[] = $temp;
133 133 $temp = $temp / 2;
134 134 }
135   - $_GET["tms"] = "/wmts/".$tema."/".$_GET["TileMatrix"]."/".$_GET["TileCol"]."/".$_GET["TileRow"].".png";
  135 + $_GET["tms"] = "/wmts/".$tema."/".$_GET["TileMatrix"]."/".$_GET["TileCol"]."/".$_GET["TileRow"];
  136 + $_GET["tms"] = str_replace(".png","",$_GET["tms"]).".png";
  137 +
136 138 if($_GET["TileMatrix"]."/".$_GET["TileCol"]."/".$_GET["TileRow"] == "0/0/0" || $_GET["TileCol"] == -1 || $_GET["TileRow"]== -1){
137 139 return;
138 140 }
... ...