From 5c8fdff9dece41b1b3bc994daa317542fc49722c Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 17 Oct 2017 09:36:00 -0200 Subject: [PATCH] Remoção da opção de edição de conexões do sistema de administração em prol de variável definida em ms_configura.php --- admin/admin.db | Bin 352256 -> 0 bytes admin1/dicionario/principal.js | 5 +++++ admin1/index.php | 1 + admin1/menu.js | 6 +++--- admin1/metaestat/regioes/funcoes.php | 5 +++-- admin1/metaestat/variaveis/medidas/funcoes.php | 5 +++-- admin1/php/bdexplorer.php | 11 ++++++++--- admin1/php/funcoesAdmin.php | 32 ++++++++++++++++++++++++++++++++ classesphp/classe_metaestatinfo.php | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----------- classesphp/metaestat_controle.php | 3 ++- ferramentas/saiku/cartograma.php | 3 ++- ms_configura.php | 6 +++++- 12 files changed, 118 insertions(+), 24 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index f4edb06..6f39129 100755 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin1/dicionario/principal.js b/admin1/dicionario/principal.js index a9a4486..f69df3e 100755 --- a/admin1/dicionario/principal.js +++ b/admin1/dicionario/principal.js @@ -80,6 +80,11 @@ i3GEOadmin.principal.dicionario = { en : "", es : "" } ], + 'leiaMe1' : [ { + pt : "Na versão 7 do i3Geo, a opção de cadastro de conexões com o banco de dados foi removida. A string de conexão deve ser definida no arquivo i3geo/ms_configura.php por meio da variável $postgis_mapa (veja detalhes nesse mesmo arquivo).", + en : "", + es : "" + } ], 'erroLogin' : [ { pt : "É necessário fazer login", en : "", diff --git a/admin1/index.php b/admin1/index.php index 57f0873..f50f1de 100755 --- a/admin1/index.php +++ b/admin1/index.php @@ -94,6 +94,7 @@ include "head.php";

{{{leiaMe}}}
+
{{{leiaMe1}}}
diff --git a/admin1/menu.js b/admin1/menu.js index 0755eb0..a33c188 100755 --- a/admin1/menu.js +++ b/admin1/menu.js @@ -46,9 +46,9 @@ menuPrincipal = [ html: ""+$trad("cadastroVariav",i3GEOadmin.menup.dicionario)+"" },{ html: ""+$trad("cadastroMedidas",i3GEOadmin.menup.dicionario)+"" - },{ - html: ""+$trad("cadastroPeriodos",i3GEOadmin.menup.dicionario)+"" - },{ + } + //,{html: ""+$trad("cadastroPeriodos",i3GEOadmin.menup.dicionario)+""} + ,{ html: ""+$trad("cadastroConexoes",i3GEOadmin.menup.dicionario)+"" },{ html: ""+$trad("cadastroTabelas",i3GEOadmin.menup.dicionario)+"" diff --git a/admin1/metaestat/regioes/funcoes.php b/admin1/metaestat/regioes/funcoes.php index e35a6c3..6412e02 100755 --- a/admin1/metaestat/regioes/funcoes.php +++ b/admin1/metaestat/regioes/funcoes.php @@ -92,8 +92,9 @@ function colunasRegiao($dbh,$codigo_tipo_regiao){ //parametros da regiao $regiao = \admin\metaestat\regioes\listar($dbh, $codigo_tipo_regiao); //parametros de conexao - $c = \admin\php\funcoesAdmin\pegaDados ( "SELECT * from " . $esquemaadmin . "i3geoestat_conexao WHERE codigo_estat_conexao = " . $regiao["codigo_estat_conexao"], $dbh, false ); - $c = $c[0]; + //$c = \admin\php\funcoesAdmin\pegaDados ( "SELECT * from " . $esquemaadmin . "i3geoestat_conexao WHERE codigo_estat_conexao = " . $regiao["codigo_estat_conexao"], $dbh, false ); + //$c = $c[0]; + $c = \admin\php\funcoesAdmin\listaConexaoMetaestat(); $dbhBD = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); $sql = "SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE c.relname = '" . $regiao["tabela"] . "' and p.nspname = '" . $regiao["esquemadb"] . "' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname"; diff --git a/admin1/metaestat/variaveis/medidas/funcoes.php b/admin1/metaestat/variaveis/medidas/funcoes.php index 6562864..196d4c1 100755 --- a/admin1/metaestat/variaveis/medidas/funcoes.php +++ b/admin1/metaestat/variaveis/medidas/funcoes.php @@ -82,8 +82,9 @@ function colunasMedida($dbh,$id_medida_variavel){ //parametros da regiao $medida = \admin\metaestat\variaveis\medidas\listar($dbh, "", $id_medida_variavel); //parametros de conexao - $c = \admin\php\funcoesAdmin\pegaDados ( "SELECT * from " . $esquemaadmin . "i3geoestat_conexao WHERE codigo_estat_conexao = " . $medida["codigo_estat_conexao"], $dbh, false ); - $c = $c[0]; + //$c = \admin\php\funcoesAdmin\pegaDados ( "SELECT * from " . $esquemaadmin . "i3geoestat_conexao WHERE codigo_estat_conexao = " . $medida["codigo_estat_conexao"], $dbh, false ); + //$c = $c[0]; + $c = \admin\php\funcoesAdmin\listaConexaoMetaestat(); $dbhBD = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); $sql = "SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE c.relname = '" . $medida["tabela"] . "' and p.nspname = '" . $medida["esquemadb"] . "' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname"; diff --git a/admin1/php/bdexplorer.php b/admin1/php/bdexplorer.php index 7d026e3..d87b4ca 100755 --- a/admin1/php/bdexplorer.php +++ b/admin1/php/bdexplorer.php @@ -49,7 +49,8 @@ switch ($funcao) { $parametros = $dbh; } else { $mt = new MetaestatInfo (); - $parametros = $mt->listaConexao ( ( int ) $_POST ["codigo_estat_conexao"], true, false ); + //$parametros = $mt->listaConexao ( ( int ) $_POST ["codigo_estat_conexao"], true, false ); + $parametros = $mt->listaConexaoMetaestat(); } $bd = new \i3geo\classesphp\bdexplorer\Bdexplorer ( $_SESSION ["locaplic"], $parametros ); $dados = $bd->listaDeTabelas ( $_POST ["esquema"] ); @@ -75,7 +76,8 @@ switch ($funcao) { case "LISTARCOLUNAS" : // pega os parametros de conexao $mt = new MetaestatInfo (); - $parametros = $mt->listaConexao ( ( int ) $_POST ["codigo_estat_conexao"], true, false ); + //$parametros = $mt->listaConexao ( ( int ) $_POST ["codigo_estat_conexao"], true, false ); + $parametros = $mt->listaConexaoMetaestat(); $bd = new \i3geo\classesphp\bdexplorer\Bdexplorer ( $_SESSION ["locaplic"], $parametros ); $dados = $bd->listaDeColunas ( $_POST ["esquema"], $_POST ["tabela"] ); if ($dados === false) { @@ -86,8 +88,10 @@ switch ($funcao) { break; case "LISTARCODIGOSCONEXAO" : // pega os parametros de conexao + \admin\php\funcoesAdmin\retornaJSON ( array() ); + /* $mt = new MetaestatInfo (); - $dados = $mt->listaConexao ( "", false, false ); + $dados = $mt->listaConexaoMetaestat(); if ($dados === false) { header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); } else { @@ -100,6 +104,7 @@ switch ($funcao) { } \admin\php\funcoesAdmin\retornaJSON ( $kv ); } + */ break; default : if (! empty ( $funcao )) diff --git a/admin1/php/funcoesAdmin.php b/admin1/php/funcoesAdmin.php index 38c6da5..07db844 100755 --- a/admin1/php/funcoesAdmin.php +++ b/admin1/php/funcoesAdmin.php @@ -3,6 +3,38 @@ namespace admin\php\funcoesAdmin; use PDO; use PDOException; use Services_JSON; + +function listaConexaoMetaestat(){ + if(!isset($_SESSION["postgis_mapa"])){ + include(dirname(__FILE__)."/../../ms_configura.php"); + } else { + $postgis_mapa = $_SESSION["postgis_mapa"]; + } + if(isset($postgis_mapa["metaestat"])){ + $m = $postgis_mapa["metaestat"]; + if($m == ""){ + return false; + } + $lista = explode(" ",$m); + $con = array(); + foreach($lista as $l){ + $teste = explode("=",$l); + $con[trim($teste[0])] = trim($teste[1]); + } + $c = array( + "codigo_estat_conexao" => "metaestat", + "bancodedados" => $con["dbname"], + "host" => $con["host"], + "porta" => $con["port"], + "usuario" => $con["user"], + "senha" => $con["password"], + "fonte" => "ms_configura" + ); + return $c; + } else { + return false; + } +} // // verifica se um determinado papel esta registrado na variavel SESSION // diff --git a/classesphp/classe_metaestatinfo.php b/classesphp/classe_metaestatinfo.php index 552fddd..4de1130 100755 --- a/classesphp/classe_metaestatinfo.php +++ b/classesphp/classe_metaestatinfo.php @@ -194,7 +194,8 @@ class MetaestatInfo{ function execSQLDB($codigo_estat_conexao,$sql){ $buscar = array("drop","update","insert","delete"); $sql = str_ireplace($buscar,"",$sql); - $c = $this->listaConexao($codigo_estat_conexao,true); + //$c = $this->listaConexao($codigo_estat_conexao,true); + $c = $this->listaConexaoMetaestat(); $dbhold = $this->dbh; $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); $this->dbh = $dbh; @@ -513,7 +514,8 @@ class MetaestatInfo{ if($meta["codigo_tipo_regiao"] == $codigo_tipo_regiao || empty($codigo_tipo_regiao) ){ $agruparpor = ""; } - $dconexao = $this->listaConexao($meta["codigo_estat_conexao"],true); + //$dconexao = $this->listaConexao($meta["codigo_estat_conexao"],true); + $dconexao = $this->listaConexaoMetaestat(); $conexao = "user=".$dconexao["usuario"]." password=".$dconexao["senha"]." dbname=".$dconexao["bancodedados"]." host=".$dconexao["host"]." port=".$dconexao["porta"].""; $sql = $this->sqlMedidaVariavel( $id_medida_variavel, @@ -642,7 +644,8 @@ class MetaestatInfo{ $dados[] = ' NAME "'.$this->nomecache.'"'; $dados[] = " TYPE $tipolayer"; $dados[] = ' DATA "'.$sqlf.'"'; - $dados[] = ' CONNECTION "'.$conexao.'"'; + //$dados[] = ' CONNECTION "'.$conexao.'"'; + $dados[] = ' CONNECTION "metaestat"'; $dados[] = ' CONNECTIONTYPE POSTGIS'; $dados[] = ' STATUS OFF'; $dados[] = ' TEMPLATE "none.htm"'; @@ -777,7 +780,8 @@ class MetaestatInfo{ $meta = $this->listaTipoRegiao($codigo_tipo_regiao); $titulolayer = $meta["nome_tipo_regiao"]; $titulolayer = mb_convert_encoding($titulolayer,"ISO-8859-1",mb_detect_encoding($titulolayer)); - $conexao = $this->listaConexao($meta["codigo_estat_conexao"],true); + //$conexao = $this->listaConexao($meta["codigo_estat_conexao"],true); + $conexao = $this->listaConexaoMetaestat(); $conexao = "user=".$conexao["usuario"]." password=".$conexao["senha"]." dbname=".$conexao["bancodedados"]." host=".$conexao["host"]." port=".$conexao["porta"].""; $colunageo = $meta["colunageo"]; $srid = $meta["srid"]; @@ -1000,7 +1004,8 @@ class MetaestatInfo{ //echo $sqlf;exit; $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); if(!empty($metaVariavel["codigo_estat_conexao"])){ - $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); + //$c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); + $c = $this->listaConexaoMetaestat(); $dbhold = $this->dbh; $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); $this->dbh = $dbh; @@ -1021,7 +1026,8 @@ class MetaestatInfo{ $sqlf = $sqlf["sqlagrupamento"]; $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); if(!empty($metaVariavel["codigo_estat_conexao"])){ - $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); + //$c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); + $c = $this->listaConexaoMetaestat(); $dbhold = $this->dbh; $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); $this->dbh = $dbh; @@ -1317,6 +1323,38 @@ class MetaestatInfo{ } return $regioes; } + function listaConexaoMetaestat(){ + if(!isset($_SESSION["postgis_mapa"])){ + include(dirname(__FILE__)."/../ms_configura.php"); + } else { + $postgis_mapa = $_SESSION["postgis_mapa"]; + } + if(isset($postgis_mapa["metaestat"])){ + $m = $postgis_mapa["metaestat"]; + if($m == ""){ + return false; + } + $lista = explode(" ",$m); + $con = array(); + foreach($lista as $l){ + $teste = explode("=",$l); + $con[trim($teste[0])] = trim($teste[1]); + } + $c = array( + "codigo_estat_conexao" => "metaestat", + "bancodedados" => $con["dbname"], + "host" => $con["host"], + "porta" => $con["port"], + "usuario" => $con["user"], + "senha" => $con["password"], + "options" => $con["options"], + "fonte" => "ms_configura" + ); + return $c; + } else { + return false; + } + } /** * Lista os dados de uma conexao ou de todas * @param id da conexao @@ -1494,7 +1532,8 @@ class MetaestatInfo{ function listaPropGeoRegiao($codigo_tipo_regiao){ //st_dimension returns 0 for POINT, 1 for LINESTRING, 2 for POLYGON $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); - $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); + //$c = $this->listaConexao($regiao["codigo_estat_conexao"],true); + $c = $this->listaConexaoMetaestat(); $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); $c = $regiao["colunageo"]; $sql = "select st_dimension(".$regiao["colunageo"].") as st_dimension from ".$regiao["esquemadb"].".".$regiao["tabela"]." limit 1"; @@ -1578,7 +1617,8 @@ class MetaestatInfo{ function listaDadosRegiao($codigo_tipo_regiao,$codigo_tipo_regiaopai="",$valorregiaopai=""){ //pega a tabela, esquema e conexao para acessar os dados da regiao $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); - $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); + //$c = $this->listaConexao($regiao["codigo_estat_conexao"],true); + $c = $this->listaConexaoMetaestat(); $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); $c = $regiao["colunageo"]; $bbox = "ST_XMin($c)||' '||ST_YMin($c)||' '||ST_XMax($c)||' '||ST_YMax($c) as ext "; @@ -1603,7 +1643,8 @@ class MetaestatInfo{ function listaDadosGeometriaRegiao($codigo_tipo_regiao){ //pega a tabela, esquema e conexao para acessar os dados da regiao $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); - $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); + //$c = $this->listaConexao($regiao["codigo_estat_conexao"],true); + $c = $this->listaConexaoMetaestat(); $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); $c = $regiao["colunageo"]; $s = "ST_dimension($c) as dimension "; @@ -1952,7 +1993,8 @@ class MetaestatInfo{ function xy2regiao($codigo_tipo_regiao,$x,$y){ //pega a tabela, esquema e conexao para acessar os dados da regiao $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); - $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); + //$c = $this->listaConexao($regiao["codigo_estat_conexao"],true); + $c = $this->listaConexaoMetaestat(); $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); $sql = "select ".$regiao["identificador"]." as identificador_regiao,".$regiao["colunanomeregiao"]." as nomeregiao from i3geo_metaestat.".$regiao["tabela"]." WHERE ST_within(ST_GeomFromText('POINT($x $y)',".$regiao["srid"]."),".$regiao["colunageo"].")"; $q = $dbh->query($sql,PDO::FETCH_ASSOC); @@ -1974,7 +2016,8 @@ class MetaestatInfo{ */ function listaAtributosMedidaVariavelRegiao ($identificador_regiao,$id_medida_variavel){ $medida = $this->listaMedidaVariavel("",$id_medida_variavel); - $c = $this->listaConexao($medida["codigo_estat_conexao"],true); + //$c = $this->listaConexao($medida["codigo_estat_conexao"],true); + $c = $this->listaConexaoMetaestat(); if($medida["colunavalor"] == ""){ return ""; } diff --git a/classesphp/metaestat_controle.php b/classesphp/metaestat_controle.php index 17b1db3..d0221cf 100755 --- a/classesphp/metaestat_controle.php +++ b/classesphp/metaestat_controle.php @@ -239,7 +239,8 @@ switch (strtoupper($funcao)) { break; case "LISTACONEXAO": $m = new MetaestatInfo(); - retornaJSON($m->listaConexao($_pg["codigo_estat_conexao"])); + //retornaJSON($m->listaConexao($_pg["codigo_estat_conexao"])); + retornaJSON($m->listaConexaoMetaestat()); exit(); break; case "ESQUEMASCONEXAO": diff --git a/ferramentas/saiku/cartograma.php b/ferramentas/saiku/cartograma.php index 1cbd09a..f40a216 100755 --- a/ferramentas/saiku/cartograma.php +++ b/ferramentas/saiku/cartograma.php @@ -62,7 +62,8 @@ else{ exit; } $titulolayer = mb_convert_encoding($titulolayer,"ISO-8859-1",mb_detect_encoding($titulolayer)); - $conexao = $m->listaConexao($meta["codigo_estat_conexao"],true); + //$conexao = $m->listaConexao($meta["codigo_estat_conexao"],true); + $conexao = $m->listaConexaoMetaestat(); $conexao = "user=".$conexao["usuario"]." password=".$conexao["senha"]." dbname=".$conexao["bancodedados"]." host=".$conexao["host"]." port=".$conexao["porta"].""; $colunageo = $meta["colunageo"]; $sqlColunaGeo = $meta["colunageo"]; diff --git a/ms_configura.php b/ms_configura.php index bbbdd74..39cb709 100755 --- a/ms_configura.php +++ b/ms_configura.php @@ -651,6 +651,10 @@ $postgis_mapa = array( No exemplo, vc pode usar "teste" ou "conexao2" no seu mapfile veja em i3geo/temas/testesubstring.map +A chave "metaestat" e utilizada pelo sistema de metadados estatisticos e indica o local onde as tabelas +com os dados estatisticos estao armazenadas. Ate a versao 6.0, a definicao da conexao era feita por meio +do banco de dados de administracao + Se vc não quiser usar essa substituição, deixe como está ou use $postgis_mapa = "" @@ -662,7 +666,7 @@ Tipo: $postgis_mapa = array( "teste"=>"user=postgres password=postgres dbname=teste host=localhost port=5432", "postgres"=>"user=postgres password=postgres dbname=postgres host=localhost port=5432", - "i3geosaude"=>"user=postgres password=postgres dbname=i3geosaude host=localhost port=5432 options='-c client_encoding=LATIN1'", + "metaestat"=>"user=postgres password=postgres dbname=i3geosaude host=localhost port=5432 options='-c client_encoding=LATIN1'", "i3geosaudeUtf"=>"user=postgres password=postgres dbname=i3geosaude host=localhost port=5432" ); /* -- libgit2 0.21.2