From 2d943b94c466ab8dbc219dd6233e0546e5f28cb3 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 8 Jan 2014 21:48:51 +0000 Subject: [PATCH] $1 --- classesphp/mapa_inicia.php | 6 ++++-- ferramentas/saiku/dicionario.js | 6 ++++++ ferramentas/saiku/esquemaxml.php | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------ ferramentas/saiku/index.js | 11 ++++++++--- ferramentas/saiku/instal.txt | 2 +- ms_configura.php | 43 ++++++++++++++++++++++++++++++++++++++++++- ms_criamapa.php | 4 ++++ 7 files changed, 151 insertions(+), 55 deletions(-) diff --git a/classesphp/mapa_inicia.php b/classesphp/mapa_inicia.php index 62e95cb..2f94544 100644 --- a/classesphp/mapa_inicia.php +++ b/classesphp/mapa_inicia.php @@ -102,7 +102,7 @@ Retorno: */ function iniciaMapa() { - global $emailInstituicao,$openid,$interfacePadrao,$mensagemInicia,$kmlurl,$tituloInstituicao,$tempo,$navegadoresLocais,$locaplic,$embedLegenda,$map_file,$mapext,$w,$h,$R_path,$locmapserv,$utilizacgi,$expoeMapfile,$interface; + global $saikuUrl,$emailInstituicao,$openid,$interfacePadrao,$mensagemInicia,$kmlurl,$tituloInstituicao,$tempo,$navegadoresLocais,$locaplic,$embedLegenda,$map_file,$mapext,$w,$h,$R_path,$locmapserv,$utilizacgi,$expoeMapfile,$interface; // //verifica se algum tema e restrito a determinado usuario //as funcoes de validacao encontram-se em funcoes_gerais.php @@ -330,6 +330,7 @@ function iniciaMapa() {$res["mapfile"] = "";} else {$res["mapfile"] = $map_file;} + $res["cgi"] = $locmapserv; $res["extentTotal"] = $ext; $res["mapimagem"] = $nomer; @@ -365,6 +366,7 @@ function iniciaMapa() $res["cordefundo"] = $cordefundo; $res["copyright"] = $copyright; $res["logado"] = $logado; + $res["saikuUrl"] = $saikuUrl; //parametros de inicializacao armazenados com o mapa quando o usuario utiliza a opcao de salvar mapa no nbanco de dados $customizacoesinit = $m->mapa->getmetadata("CUSTOMIZACOESINIT"); $res["editavel"] = $m->mapa->getmetadata("EDITAVEL"); @@ -375,4 +377,4 @@ function iniciaMapa() ob_clean(); cpjson(array("variaveis"=>$res,"temas"=>$temas,"customizacoesinit"=>$customizacoesinit)); } -?> \ No newline at end of file +?> diff --git a/ferramentas/saiku/dicionario.js b/ferramentas/saiku/dicionario.js index 801d07f..acb2141 100755 --- a/ferramentas/saiku/dicionario.js +++ b/ferramentas/saiku/dicionario.js @@ -11,5 +11,11 @@ i3GEOF.saiku.dicionario = { en:"", es:"", it:"" + }], + 3: [{ + pt:"O servidor SAIKU não está disponível nessa instalação do i3Geo", + en:"", + es:"", + it:"" }] }; diff --git a/ferramentas/saiku/esquemaxml.php b/ferramentas/saiku/esquemaxml.php index 4fba321..f2c7c7f 100644 --- a/ferramentas/saiku/esquemaxml.php +++ b/ferramentas/saiku/esquemaxml.php @@ -1,52 +1,91 @@ "OLAP", + "name"=>"i3geo", + "driver"=>"mondrian.olap4j.MondrianOlap4jDriver", + "location"=>"jdbc:mondrian:Jdbc=jdbc:postgresql", + "serverdb"=>"localhost", + "port"=>"5432", + "database"=>"i3geosaude", + "JdbcDrivers"=>"org.postgresql.Driver", + "username"=>"postgres", + "password"=>"postgres" +); +*/ +$stringDatasource = " +type={$saikuConfigDataSource["type"]} +name={$saikuConfigDataSource["name"]} +driver={$saikuConfigDataSource["driver"]} +location={$saikuConfigDataSource["location"]}://{$saikuConfigDataSource["serverdb"]}:{$saikuConfigDataSource["port"]}/{$saikuConfigDataSource["database"]};Catalog={$nomeXmlEsquema};JdbcDrivers={$saikuConfigDataSource["JdbcDrivers"]}; +username={$saikuConfigDataSource["username"]} +password={$saikuConfigDataSource["password"]} +"; +//salva o arquivo com a fonte +gravaDados(array($stringDatasource),$nomeDatasource); $m = new Metaestat(); $selecaoRegiao = array(); -//pega o filtro da sessao PHP aberta pelo i3Geo -if(!empty($_COOKIE["i3GeoPHP"])){ - include(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php"); - session_name("i3GeoPHP"); - session_id($_COOKIE["i3GeoPHP"]); - session_start(); - //obtem os layers que sao do sistema metaestat, sao regioes e que possuem selecao - $map_file = $_SESSION["map_file"]; - $mapa = ms_newMapObj($map_file); - $c = $mapa->numlayers; - for ($i=0;$i < $c;++$i){ - $l = $mapa->getlayer($i); - $registros = array(); - $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO"); - if($codigo_tipo_regiao != "" && $l->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL") == ""){ - //verifica se tem selecao - $qyfile = dirname($map_file)."/".$l->name.".php"; - if(file_exists($qyfile)){ - //pega os registros - $shapes = retornaShapesSelecionados($l,$map_file,$mapa); - //pega o nome da coluna que identifica cada registro - $regiao = $m->listaTipoRegiao($codigo_tipo_regiao); - $item = $regiao["identificador"]; - foreach($shapes as $shape){ - $registros[] = $shape->values[$item]; - } - $reg = $item." IN ('".implode("','",$registros)."') "; - $selecaoRegiao[$codigo_tipo_regiao] = array( - "item" => $item, - "sql" => $reg - ); - } - else{ - $selecaoRegiao[$codigo_tipo_regiao] = ""; +$mapa = ms_newMapObj($map_file); +$c = $mapa->numlayers; +for ($i=0;$i < $c;++$i){ + $l = $mapa->getlayer($i); + $registros = array(); + $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO"); + if($codigo_tipo_regiao != "" && $l->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL") == ""){ + //verifica se tem selecao + $qyfile = dirname($map_file)."/".$l->name.".php"; + if(file_exists($qyfile)){ + //pega os registros + $shapes = retornaShapesSelecionados($l,$map_file,$mapa); + //pega o nome da coluna que identifica cada registro + $regiao = $m->listaTipoRegiao($codigo_tipo_regiao); + $item = $regiao["identificador"]; + foreach($shapes as $shape){ + $registros[] = $shape->values[$item]; } + $reg = $item." IN ('".implode("','",$registros)."') "; + $selecaoRegiao[$codigo_tipo_regiao] = array( + "item" => $item, + "sql" => $reg + ); + } + else{ + $selecaoRegiao[$codigo_tipo_regiao] = ""; } } - $regiao = ""; - $item = ""; - $registros = ""; } -//echo "
".var_dump($_SESSION);exit;
+$regiao = "";
+$item = "";
+$registros = "";
 
 $regioes = $m->listaTipoRegiao();
 $xml = "";
@@ -101,7 +140,6 @@ foreach($regioes as $regiao){
 			column='codigo'
 			nameColumn='nome' uniqueMembers='true'>
 	";
-
 	//verifica outras colunas
 	$vis = $regiao['colunasvisiveis'];
 	if($vis != ""){
@@ -250,13 +288,13 @@ $xml .= '';
 $xml .= "";
 error_reporting(0);
 ob_end_clean();
-echo header("Content-type: application/xml");
-echo $xml;
-exit;
-function converte($texto)
-{
+
+gravaDados(array($xml),$nomeXmlEsquema);
+header("Location:".$saikuUrl);
+
+function converte($texto){
 	//$texto = str_replace("Í","&iacute",$texto);
-$texto = str_replace("&","&",htmlentities($texto));
+	$texto = str_replace("&","&",htmlentities($texto));
 	return $texto;
 }
 ?>
diff --git a/ferramentas/saiku/index.js b/ferramentas/saiku/index.js
index 1aa31ed..ef2bedf 100755
--- a/ferramentas/saiku/index.js
+++ b/ferramentas/saiku/index.js
@@ -102,8 +102,13 @@ i3GEOF.saiku = {
 	*/
 	html:function(){
 		var ins = "

Saiku: http://meteorite.bi/saiku

" + - "

" + $trad(1,i3GEOF.saiku.dicionario) + "

" + - ""; + "

" + $trad(1,i3GEOF.saiku.dicionario) + "

"; + if(i3GEO.parametros.saikuUrl !== ""){ + ins += ""; + } + else{ + ins += "

" + $trad(3,i3GEOF.saiku.dicionario) + "

"; + } return ins; }, @@ -140,6 +145,6 @@ i3GEOF.saiku = { i3GEOF.saiku.inicia(divid); }, aplicar: function(){ - window.open("http://localhost:9090?"+i3GEO.configura.sid); + window.open(i3GEO.configura.locaplic+"/ferramentas/saiku/esquemaxml.php?g_sid="+i3GEO.configura.sid); } }; diff --git a/ferramentas/saiku/instal.txt b/ferramentas/saiku/instal.txt index 1cd8ae6..f95ed83 100644 --- a/ferramentas/saiku/instal.txt +++ b/ferramentas/saiku/instal.txt @@ -31,7 +31,7 @@ Para mais informações veja em: http://docs.analytical-labs.com/ (/var/tmp/ms_tmp é a pasta temporária utilizada pelo i3Geo) rm -R -f /var/www/saiku-server/tomcat/webapps/saiku/WEB-INF/classes/saiku-datasources - ln -s /tmp/ms_tmp/saiku-datasources /var/www/saiku-server/tomcat/webapps/saiku/WEB-INF/classes/saiku-datasources + ln -s /tmp/ms_tmp/saiku-datasources /var/www_geosaude_16/saiku-server/tomcat/webapps/saiku/WEB-INF/classes/saiku-datasources - Arquivos alterados diff --git a/ms_configura.php b/ms_configura.php index 51eb128..2db75eb 100644 --- a/ms_configura.php +++ b/ms_configura.php @@ -60,7 +60,7 @@ array(array("usuario"=>"admin", "senha"=>"adminx")); */ //@TODO v5 alterar a senha para admin $i3geomaster = array( - array("usuario"=>"admin", "senha"=>"admin") + array("usuario"=>"admin", "senha"=>"admin") ); /* Variable: saikuUrl @@ -71,6 +71,47 @@ Para maiores informacoes sobre como instalar o SAIKU veja em http://localhost/i3 */ $saikuUrl = "http://localhost:9090"; /* +Variable: saikuConfigDataSource + +Parametros de configuracao da fonte de dados utilizada pelo applicativo SAIKU + +Indicam onde estao os dados utilizados pelo sistema de metadados estatisticos e que podem ser visualizados na forma +de cubos OLAP + +Ajuste os parametros indicando: + +serverdb - endereco do servidor postgres +port - porta de acesso ao servidor +database - nome do database que contem as tabelas +username - nome do usuario que pode acessar o database +password - senha desse usuario + +Os parametros sao utilizados pelo programa definido em Catalog. Ese programa monta o arquivo de fonte de dados temorario +e armazena em ms_tmp/saiku-datasources + +Esse arquivo contera uma string como esse exemplo: + +type=OLAP +name=i3geo +driver=mondrian.olap4j.MondrianOlap4jDriver +location=jdbc:mondrian:Jdbc=jdbc:postgresql://localhost:5432/i3geosaude;Catalog=http://localhost/i3geo/ferramentas/saiku/esquemaxml.php;JdbcDrivers=org.postgresql.Driver; +username=postgres +password=postgres + +*/ +$saikuConfigDataSource = array( + "type"=>"OLAP", + "name"=>"i3geo", + "driver"=>"mondrian.olap4j.MondrianOlap4jDriver", + "location"=>"jdbc:mondrian:Jdbc=jdbc:postgresql", + "serverdb"=>"localhost", + "port"=>"5432", + "database"=>"i3geosaude", + "JdbcDrivers"=>"org.postgresql.Driver", + "username"=>"postgres", + "password"=>"postgres" +); +/* Variable: i3georendermode Opcoes que definem a rotina que sera utilizada para enviar ao navegador as imagens geradas de cada camada diff --git a/ms_criamapa.php b/ms_criamapa.php index 356e866..237578d 100644 --- a/ms_criamapa.php +++ b/ms_criamapa.php @@ -229,6 +229,7 @@ else{ $mapext = str_replace(","," ",$mapext); setcookie("i3geoUltimaExtensao", $mapext); } +$saikuUrl_ = $saikuUrl; $cachedir_ = $cachedir; $dir_tmp_ = $dir_tmp; $emailInstituicao_ = $emailInstituicao; @@ -326,6 +327,9 @@ $_SESSION["mapdir"] = $diretorios[1]; $_SESSION["imgdir"] = $diretorios[2]; $_SESSION["contadorsalva"] = 0;//essa variavel e utilizada pela ferramenta telaremota. Toda vez que o mapa e salvo, acrescenta 1 (veja classesphp/mapa_controle.php) $_SESSION["i3georendermode"] = $i3georendermode_; +$_SESSION["saikuUrl"] = $saikuUrl_; + + // //pega todas as variáveis da sessão, mesmo as que foram definidas anteriormente // -- libgit2 0.21.2