Commit c2ed7523eb78f3ca513bc58a27f95f6c9f6ec144

Authored by Edmar Moretti
1 parent 07ccb75b

Adaptação dos códigos e criação de programa para adaptação dos mapfiles à versão…

… nova do Mapserver (5.2.2) que exige a tag MAP no início dos arquivos
admin/html/incluimap.html 0 → 100644
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2 +<html>
  3 +<head>
  4 + <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  5 + <link rel="stylesheet" type="text/css" href="admin.css">
  6 +</head>
  7 +<body>
  8 +<p>
  9 +As versões novas do Mapserver exigem que os arquivos mapfile iniciem com a palavra "MAP"
  10 +</p>
  11 +<p>
  12 +Os mapfiles utilizados pelo i3geo, até a versão 4.1, e armazenados no diretório i3Geo/temas não iniciam com "MAP". Para ajustar os mapfiles
  13 +você pode editá-los individulamente ou rodar o programa i3geo/admin/php/incluiMAP.php
  14 +<p>
  15 +Antes de fazer isso, faça um backup do seu diretório i3geo/temas
  16 +<p>
  17 +<a href="../php/incluiMAP.php" >Executar o ajuste dos mapfiles</a>
  18 +</body>
admin/index.html
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
8 <body> 8 <body>
9 <div style=width:80%;text-align:left;> 9 <div style=width:80%;text-align:left;>
10 <h1>Administração do i3geo</h1> 10 <h1>Administração do i3geo</h1>
  11 +<p>Se você atualizou o Mapserver para a versão 5.2.2, seus mapfiles antigos podem não funcionar. Veja em "Outras opções" o item "Ajusta mapfiles".
11 <fieldset> 12 <fieldset>
12 <legend>Leia-me</legend> 13 <legend>Leia-me</legend>
13 <div style=display:none; > 14 <div style=display:none; >
@@ -16,14 +17,14 @@ @@ -16,14 +17,14 @@
16 Com a nova estrutura de administração, esses arquivos podem ser substituídos por registros em bancos de dados. 17 Com a nova estrutura de administração, esses arquivos podem ser substituídos por registros em bancos de dados.
17 Se você optar por usar um banco de dados, os arquivos antigos poderão ser importados para o banco 18 Se você optar por usar um banco de dados, os arquivos antigos poderão ser importados para o banco
18 (veja as opções de importação). Se vc desejar continuar utilizando os arquivos XML em disco, basta 19 (veja as opções de importação). Se vc desejar continuar utilizando os arquivos XML em disco, basta
19 -editar as variáveis de configuração existentes emi3geo/ms_configura.php.</p> 20 +editar as variáveis de configuração existentes em i3geo/ms_configura.php.</p>
20 <p>Para possibilitar a distribuição do i3geo de forma independente de banco de dados, optou-se pelo uso do gerenciador 21 <p>Para possibilitar a distribuição do i3geo de forma independente de banco de dados, optou-se pelo uso do gerenciador
21 SQLITE, cujo arquivo com os dados fica armazenado em i3geo/menutemas/admin.db. Os programas em PHP que gerenciam esse banco 22 SQLITE, cujo arquivo com os dados fica armazenado em i3geo/menutemas/admin.db. Os programas em PHP que gerenciam esse banco
22 utilizam o pacote PDO, possibilitando que seja utilizado outro gerenciador, como o POSTGRESQL, entre outros.</p> 23 utilizam o pacote PDO, possibilitando que seja utilizado outro gerenciador, como o POSTGRESQL, entre outros.</p>
23 <p>Para modificar a configuração do PDO, e utilizar outro gerenciador, deve-se editar o arquivo i3geo/admin/conexao.php 24 <p>Para modificar a configuração do PDO, e utilizar outro gerenciador, deve-se editar o arquivo i3geo/admin/conexao.php
24 ou então alterar a variável de configuração, definida no ms_configura.php, chamada $conexaoadmin. Essa variável indica o nome de um 25 ou então alterar a variável de configuração, definida no ms_configura.php, chamada $conexaoadmin. Essa variável indica o nome de um
25 programa em PHP que será incluído nos programas que fazem acesso ao banco de dados de administração. Um exemplo de 26 programa em PHP que será incluído nos programas que fazem acesso ao banco de dados de administração. Um exemplo de
26 -conexão em PHP pode ser visto em i3geo/admin/conexaomma.php.</p> 27 +conexão em PHP pode ser visto em i3geo/admin/php/conexaomma.php.</p>
27 <p>Para usar um gerenciador diferente do SQLITE é necessário criar as tabelas no novo banco de dados. Os sqls para 28 <p>Para usar um gerenciador diferente do SQLITE é necessário criar as tabelas no novo banco de dados. Os sqls para
28 essa criação podem ser obtidos no item "Outras opções".</p> 29 essa criação podem ser obtidos no item "Outras opções".</p>
29 30
@@ -183,6 +184,8 @@ essa criação podem ser obtidos no item &quot;Outras opções&quot;.&lt;/p&gt; @@ -183,6 +184,8 @@ essa criação podem ser obtidos no item &quot;Outras opções&quot;.&lt;/p&gt;
183 <legend>Outras opções</legend> 184 <legend>Outras opções</legend>
184 <div style=display:none; > 185 <div style=display:none; >
185 <table class=lista1 > 186 <table class=lista1 >
  187 +<tr onclick="abre('html/incluimap.html')"><td><div class=aplicar ></div></td><td>Ajusta mapfiles</td></tr>
  188 +
186 <tr onclick="abre('php/sqlite.php')"><td><div class=aplicar ></div></td><td>Descrição do banco padrão (SQLITE)</td></tr> 189 <tr onclick="abre('php/sqlite.php')"><td><div class=aplicar ></div></td><td>Descrição do banco padrão (SQLITE)</td></tr>
187 <tr onclick="abre('php/criabanco.php')"><td><div class=aplicar ></div></td><td>Criar banco de dados</td></tr> 190 <tr onclick="abre('php/criabanco.php')"><td><div class=aplicar ></div></td><td>Criar banco de dados</td></tr>
188 <tr onclick="abre('../geraminiatura.php')"><td><div class=aplicar ></div></td><td>Gera as miniaturas (thumbnails) para os temas existentes no diretório i3geo/temas</td></tr> 191 <tr onclick="abre('../geraminiatura.php')"><td><div class=aplicar ></div></td><td>Gera as miniaturas (thumbnails) para os temas existentes no diretório i3geo/temas</td></tr>
admin/php/admin.php
@@ -162,6 +162,7 @@ function exclui() @@ -162,6 +162,7 @@ function exclui()
162 include("conexao.php"); 162 include("conexao.php");
163 $dbhw->query("DELETE from $tabela WHERE $coluna = $id"); 163 $dbhw->query("DELETE from $tabela WHERE $coluna = $id");
164 $dbhw = null; 164 $dbhw = null;
  165 + $dbh = null;
165 return "ok"; 166 return "ok";
166 } 167 }
167 catch (PDOException $e) 168 catch (PDOException $e)
@@ -186,6 +187,7 @@ function pegaDados($sql,$locaplic=&quot;&quot;) @@ -186,6 +187,7 @@ function pegaDados($sql,$locaplic=&quot;&quot;)
186 $q = $dbh->query($sql,PDO::FETCH_ASSOC); 187 $q = $dbh->query($sql,PDO::FETCH_ASSOC);
187 $resultado = $q->fetchAll(); 188 $resultado = $q->fetchAll();
188 $dbh = null; 189 $dbh = null;
  190 + $dbhw = null;
189 return $resultado; 191 return $resultado;
190 } 192 }
191 catch (PDOException $e) 193 catch (PDOException $e)
admin/php/editormapfile.php
@@ -265,6 +265,7 @@ function criarNovoMap() @@ -265,6 +265,7 @@ function criarNovoMap()
265 $arq = $locaplic."/temas/".$codigo.".map"; 265 $arq = $locaplic."/temas/".$codigo.".map";
266 if(!file_exists($arq)) 266 if(!file_exists($arq))
267 { 267 {
  268 + $dados[] = "MAP";
268 $dados[] = "SYMBOLSET ../symbols/simbolos.sym"; 269 $dados[] = "SYMBOLSET ../symbols/simbolos.sym";
269 $dados[] = 'FONTSET "../symbols/fontes.txt"'; 270 $dados[] = 'FONTSET "../symbols/fontes.txt"';
270 $dados[] = "LAYER"; 271 $dados[] = "LAYER";
@@ -874,6 +875,7 @@ function removeCabecalho($arq,$symbolset=true) @@ -874,6 +875,7 @@ function removeCabecalho($arq,$symbolset=true)
874 { 875 {
875 if($symbolset) 876 if($symbolset)
876 { 877 {
  878 + $final[] = "MAP\n";
877 $final[] = "SYMBOLSET ../symbols/simbolos.sym\n"; 879 $final[] = "SYMBOLSET ../symbols/simbolos.sym\n";
878 $final[] = "FONTSET ".'"'."../symbols/fontes.txt".'"'."\n"; 880 $final[] = "FONTSET ".'"'."../symbols/fontes.txt".'"'."\n";
879 } 881 }
admin/php/incluiMAP.php 0 → 100644
@@ -0,0 +1,80 @@ @@ -0,0 +1,80 @@
  1 +<?php
  2 +/*
  3 +Title: Inclui teg MAP
  4 +
  5 +About: Licença
  6 +
  7 +I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  8 +
  9 +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
  10 +Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br
  11 +
  12 +Este programa é software livre; você pode redistribuí-lo
  13 +e/ou modificá-lo sob os termos da Licença Pública Geral
  14 +GNU conforme publicada pela Free Software Foundation;
  15 +tanto a versão 2 da Licença.
  16 +Este programa é distribuído na expectativa de que seja útil,
  17 +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
  18 +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
  19 +Consulte a Licença Pública Geral do GNU para mais detalhes.
  20 +Você deve ter recebido uma cópia da Licença Pública Geral do
  21 +GNU junto com este programa; se não, escreva para a
  22 +Free Software Foundation, Inc., no endereço
  23 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  24 +
  25 +19/6/2007
  26 +
  27 +*/
  28 +
  29 +include_once("admin.php");
  30 +error_reporting(0);
  31 +if(verificaEditores($editores) == "nao")
  32 +{echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;}
  33 +
  34 +$arquivos = array();
  35 +if (is_dir($locaplic."/temas"))
  36 +{
  37 + if ($dh = opendir($locaplic."/temas"))
  38 + {
  39 + while (($file = readdir($dh)) !== false)
  40 + {
  41 + if(!stristr($file, '.map') === FALSE)
  42 + {
  43 + $arquivos[] = $file;
  44 + }
  45 + }
  46 + }
  47 + closedir($dh);
  48 +}
  49 +echo "Arquivos convertidos: <br>";
  50 +foreach($arquivos as $arquivo)
  51 +{
  52 + $arq = $locaplic."/temas/".$arquivo;
  53 + $abre = fopen($arq, "r");
  54 + $maparray = array();
  55 + $maparray[] = "MAP";
  56 + $maparray[] = "\n";
  57 + while (!feof($abre))
  58 + {
  59 + $buffer = fgets($abre);
  60 + $buffer = str_replace(PHP_EOL,"",rtrim($buffer));
  61 + if(trim($buffer) != "MAP" && $buffer != "")
  62 + {
  63 + $maparray[] = $buffer;
  64 + }
  65 + }
  66 + fclose($abre);
  67 + //echo "<pre>";
  68 + //var_dump($maparray);
  69 + //exit;
  70 + $abre = fopen($arq, "wt");
  71 + foreach($maparray as $linha)
  72 + {
  73 + fwrite ($abre,$linha);
  74 + fwrite ($abre,"\n");
  75 + }
  76 + $fecha = fclose ($abre);
  77 + echo $arquivo."<br>";
  78 +}
  79 +
  80 +?>
0 \ No newline at end of file 81 \ No newline at end of file
admin/php/menutemas.php
@@ -90,6 +90,7 @@ switch ($funcao) @@ -90,6 +90,7 @@ switch ($funcao)
90 $dados = pegaDados('SELECT * from i3geoadmin_perfis order by perfil'); 90 $dados = pegaDados('SELECT * from i3geoadmin_perfis order by perfil');
91 if(count($dados) == 0){$dados = array("id_perfil"=>"","perfil"=>"");} 91 if(count($dados) == 0){$dados = array("id_perfil"=>"","perfil"=>"");}
92 retornaJSON($dados); 92 retornaJSON($dados);
  93 + exit;
93 break; 94 break;
94 95
95 case "alteraMenus": 96 case "alteraMenus":
@@ -139,6 +140,8 @@ switch ($funcao) @@ -139,6 +140,8 @@ switch ($funcao)
139 registraTema(); 140 registraTema();
140 $dados = pegaDados($sql); 141 $dados = pegaDados($sql);
141 } 142 }
  143 + if(count($dados) > 1)
  144 + {$dados = "erro. Mais de um mapfile com mesmo código registrado no banco";}
142 retornaJSON($dados); 145 retornaJSON($dados);
143 exit; 146 exit;
144 break; 147 break;
@@ -703,7 +706,10 @@ function registraTema() @@ -703,7 +706,10 @@ function registraTema()
703 { 706 {
704 $retorna = "ok"; 707 $retorna = "ok";
705 include("conexao.php"); 708 include("conexao.php");
706 - $dbhw->query("INSERT INTO i3geoadmin_temas (nome_tema,codigo_tema,kml_tema,ogc_tema,download_tema,tags_tema,link_tema,desc_tema) VALUES ('$codigo_tema','$codigo_tema','SIM','SIM','SIM','','','')");// (link_tema,kml_tema,ogc_tema,download_tema,nome_tema,desc_tema,codigo_tema,tipoa_tema,tags_tema) VALUES ('','', '','','','','','','')"); 709 + $sql = "SELECT * from i3geoadmin_temas where codigo_tema = '$codigo_tema'";
  710 + $dados = pegaDados($sql);
  711 + if(count($dados) == 0)
  712 + {$dbhw->query("INSERT INTO i3geoadmin_temas (nome_tema,codigo_tema,kml_tema,ogc_tema,download_tema,tags_tema,link_tema,desc_tema) VALUES ('$codigo_tema','$codigo_tema','SIM','SIM','SIM','','','')");}
707 $dbhw = null; 713 $dbhw = null;
708 $dbh = null; 714 $dbh = null;
709 return "ok"; 715 return "ok";