Commit 11579fe5d5ae6215c60c2e82bf840d46a2c7f560

Authored by Edmar Moretti
1 parent 973d1ed2
Exists in master

i3geosaude - inclusão de opção para acessar o saiku fora do i3geo

acesse.html
... ... @@ -21,6 +21,14 @@
21 21 <span style="vertical-align:top">Interface que utiliza o Google Maps como mecanismo de navega&ccedil;&atilde;o e base cartogr&aacute;fica</span>
22 22 </a>
23 23 </p>
  24 + <p>
  25 + <a id="saiku" href="i3geo/ferramentas/saiku/esquemaxml.php" target="_blank">
  26 + <img title="SAIKU" src="Imagens/saiku_free_small.png" style="min-width:0px;width: 30px; height: 20px; cursor: pointer; border: 1px solid gray; border-radius: 5px 5px 5px 5px;" />
  27 + <span style="vertical-align:top">
  28 + Ferramenta de an&aacute;lise de vari&aacute;veis cadastradas
  29 + </span>
  30 + </a>
  31 + </p>
24 32 </div>
25 33 <table>
26 34 <tr>
... ...
i3geo/ferramentas/saiku/esquemaxml.php
1 1 <?php
2   -if(empty($_GET["g_sid"])){
3   - echo "erro";
4   - exit;
5   -}
  2 +
6 3 include(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php");
7 4 include(dirname(__FILE__)."/../../admin/php/classe_metaestat.php");
8 5 if(!isset($dir_tmp)){
9 6 include(dirname(__FILE__)."/../../ms_configura.php");
10 7 }
11   -//pega a sessao PHP aberta pelo i3Geo
  8 +$nomeConexao = nomeRandomico();
  9 +$nomeDatasource = $dir_tmp."/saiku-datasources/".$nomeConexao;
  10 +
  11 +//quando o saiku e iniciado de fora do i3geo, e necessario inicializar um mapfile para uso como base dos mapas
  12 +if(empty($_GET["g_sid"])){
  13 + include(dirname(__FILE__)."/../../ms_criamapa.php");
  14 + //reinicia a url
  15 + $urln = "?g_sid=".session_id();
  16 + header("Location:".$urln);
  17 + exit;
  18 +}
  19 +
  20 +//pega a sessao PHP aberta pelo i3Geo ou ms_criamapa.php
12 21 session_name("i3GeoPHP");
13 22 session_id($_GET["g_sid"]);
14 23 session_start();
15   -
16 24 $map_file = $_SESSION["map_file"];
17   -$nomeConexao = nomeRandomico();
18   -$nomeDatasource = $dir_tmp."/saiku-datasources/".$nomeConexao;
19 25 $urlXmlEsquema = $_SESSION["tmpurl"].basename(dirname($map_file))."/".$nomeConexao.".xml";
20 26 $arquivoXmlEsquema = dirname($map_file)."/".$nomeConexao.".xml";
  27 +
21 28 /*
22 29 $saikuConfigDataSource vem do ms_configura.php
23 30  
... ... @@ -55,49 +62,51 @@ password={$saikuConfigDataSource[&quot;password&quot;]}
55 62 gravaDados(array($stringDatasource),$nomeDatasource);
56 63 $m = new Metaestat();
57 64 $selecaoRegiao = array();
58   -//obtem os layers que sao do sistema metaestat, sao regioes e que possuem selecao
59   -$mapa = ms_newMapObj($map_file);
60   -$c = $mapa->numlayers;
  65 +//obtem do mapfile em uso os layers que sao do sistema metaestat, sao regioes e que possuem selecao
61 66 $codigo_tipo_regiao = "";
62   -for ($i=0;$i < $c;++$i){
63   - $l = $mapa->getlayer($i);
64   - //verifica o alias na conexao
65   - if (!empty($postgis_mapa)){
66   - if ($l->connectiontype == MS_POSTGIS){
67   - $lcon = $l->connection;
68   - if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){
69   - if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade
70   - {$l->set("connection",$postgis_mapa);}
71   - else{
72   - $l->set("connection",$postgis_mapa[$lcon]);
  67 +if($map_file != ""){
  68 + $mapa = ms_newMapObj($map_file);
  69 + $c = $mapa->numlayers;
  70 + for ($i=0;$i < $c;++$i){
  71 + $l = $mapa->getlayer($i);
  72 + //verifica o alias na conexao
  73 + if (!empty($postgis_mapa)){
  74 + if ($l->connectiontype == MS_POSTGIS){
  75 + $lcon = $l->connection;
  76 + if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){
  77 + if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade
  78 + {$l->set("connection",$postgis_mapa);}
  79 + else{
  80 + $l->set("connection",$postgis_mapa[$lcon]);
  81 + }
73 82 }
74 83 }
75 84 }
76   - }
77   - //
78   - $registros = array();
79   - if($l->status == MS_DEFAULT && $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO") != ""){
80   - $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO");
81   - //verifica se tem selecao
82   - $qyfile = dirname($map_file)."/".$l->name.".php";
83   - if(file_exists($qyfile)){
84   - //pega os registros
85   - $shapes = retornaShapesSelecionados($l,$map_file,$mapa);
86   - //pega o nome da coluna que identifica cada registro
87   - $regiao = $m->listaTipoRegiao($codigo_tipo_regiao);
88   - $item = $regiao["identificador"];
89   - foreach($shapes as $shape){
90   - $registros[] = $shape->values[$item];
  85 + //
  86 + $registros = array();
  87 + if($l->status == MS_DEFAULT && $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO") != ""){
  88 + //verifica se tem selecao
  89 + $qyfile = dirname($map_file)."/".$l->name.".php";
  90 + if(file_exists($qyfile)){
  91 + $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO");
  92 + //pega os registros
  93 + $shapes = retornaShapesSelecionados($l,$map_file,$mapa);
  94 + //pega o nome da coluna que identifica cada registro
  95 + $regiao = $m->listaTipoRegiao($codigo_tipo_regiao);
  96 + $item = $regiao["identificador"];
  97 + foreach($shapes as $shape){
  98 + $registros[] = $shape->values[$item];
  99 + }
  100 + $reg = $item." IN ('".implode("','",$registros)."') ";
  101 + $selecaoRegiao[$codigo_tipo_regiao] = array(
  102 + "item" => $item,
  103 + "sql" => $reg
  104 + );
  105 + break; //mantem a primeira ocorrencia de regiao que possui selecao
  106 + }
  107 + else{
  108 + $selecaoRegiao[$codigo_tipo_regiao] = "";
91 109 }
92   - $reg = $item." IN ('".implode("','",$registros)."') ";
93   - $selecaoRegiao[$codigo_tipo_regiao] = array(
94   - "item" => $item,
95   - "sql" => $reg
96   - );
97   - break; //mantem a primeira ocorrencia de regiao que possui selecao
98   - }
99   - else{
100   - $selecaoRegiao[$codigo_tipo_regiao] = "";
101 110 }
102 111 }
103 112 }
... ... @@ -258,7 +267,7 @@ $medidas = $m-&gt;listaMedidaVariavel();
258 267 $tbs = array();
259 268  
260 269 foreach($medidas as $medida){
261   - if($medida["codigo_tipo_regiao"] == $codigo_tipo_regiao){
  270 + if($codigo_tipo_regiao == "" || $medida["codigo_tipo_regiao"] == $codigo_tipo_regiao){
262 271 $k = $medida["esquemadb"].$medida["tabela"];
263 272 if(empty($tbs[$k])){
264 273 $tbs[$k] = array($medida);
... ... @@ -268,10 +277,10 @@ foreach($medidas as $medida){
268 277 }
269 278 }
270 279 }
271   -
272 280 //monta os cubos para cada esquema.tabela diferente
273 281 $VirtualCubeDimension = array();
274 282 $VirtualCubeMeasure = array();
  283 +
275 284 foreach($tbs as $tb){
276 285 //cabecalho de cada cubo obtido da primeira medida
277 286 $c = $tb[0];
... ... @@ -344,6 +353,7 @@ error_reporting(0);
344 353 ob_end_clean();
345 354  
346 355 gravaDados(array($xml),$arquivoXmlEsquema);
  356 +
347 357 header("Location:".$saikuUrl."/?nomeConexao=".$nomeConexao."&locaplic=".$_GET["locaplic"]."&g_sid=".$_GET["g_sid"]."&mapext=".$_GET["mapext"]);
348 358  
349 359 function converte($texto){
... ...