Commit c1c77a968e5552bd17eec2f70af80a8e74575255
1 parent
be216199
Exists in
master
and in
7 other branches
V6.0 - inclusão de opção para acessar o saiku fora do i3geo
Showing
4 changed files
with
69 additions
and
49 deletions
Show diff stats
admin/admin.db
No preview for this file type
ferramentas/saiku/esquemaxml.php
| 1 | <?php | 1 | <?php |
| 2 | -if(empty($_GET["g_sid"])){ | ||
| 3 | - echo "erro"; | ||
| 4 | - exit; | ||
| 5 | -} | 2 | + |
| 6 | include(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php"); | 3 | include(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php"); |
| 7 | include(dirname(__FILE__)."/../../admin/php/classe_metaestat.php"); | 4 | include(dirname(__FILE__)."/../../admin/php/classe_metaestat.php"); |
| 8 | if(!isset($dir_tmp)){ | 5 | if(!isset($dir_tmp)){ |
| 9 | include(dirname(__FILE__)."/../../ms_configura.php"); | 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 | session_name("i3GeoPHP"); | 21 | session_name("i3GeoPHP"); |
| 13 | session_id($_GET["g_sid"]); | 22 | session_id($_GET["g_sid"]); |
| 14 | session_start(); | 23 | session_start(); |
| 15 | - | ||
| 16 | $map_file = $_SESSION["map_file"]; | 24 | $map_file = $_SESSION["map_file"]; |
| 17 | -$nomeConexao = nomeRandomico(); | ||
| 18 | -$nomeDatasource = $dir_tmp."/saiku-datasources/".$nomeConexao; | ||
| 19 | $urlXmlEsquema = $_SESSION["tmpurl"].basename(dirname($map_file))."/".$nomeConexao.".xml"; | 25 | $urlXmlEsquema = $_SESSION["tmpurl"].basename(dirname($map_file))."/".$nomeConexao.".xml"; |
| 20 | $arquivoXmlEsquema = dirname($map_file)."/".$nomeConexao.".xml"; | 26 | $arquivoXmlEsquema = dirname($map_file)."/".$nomeConexao.".xml"; |
| 27 | + | ||
| 21 | /* | 28 | /* |
| 22 | $saikuConfigDataSource vem do ms_configura.php | 29 | $saikuConfigDataSource vem do ms_configura.php |
| 23 | 30 | ||
| @@ -55,49 +62,51 @@ password={$saikuConfigDataSource["password"]} | @@ -55,49 +62,51 @@ password={$saikuConfigDataSource["password"]} | ||
| 55 | gravaDados(array($stringDatasource),$nomeDatasource); | 62 | gravaDados(array($stringDatasource),$nomeDatasource); |
| 56 | $m = new Metaestat(); | 63 | $m = new Metaestat(); |
| 57 | $selecaoRegiao = array(); | 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 | $codigo_tipo_regiao = ""; | 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->listaMedidaVariavel(); | @@ -258,7 +267,7 @@ $medidas = $m->listaMedidaVariavel(); | ||
| 258 | $tbs = array(); | 267 | $tbs = array(); |
| 259 | 268 | ||
| 260 | foreach($medidas as $medida){ | 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 | $k = $medida["esquemadb"].$medida["tabela"]; | 271 | $k = $medida["esquemadb"].$medida["tabela"]; |
| 263 | if(empty($tbs[$k])){ | 272 | if(empty($tbs[$k])){ |
| 264 | $tbs[$k] = array($medida); | 273 | $tbs[$k] = array($medida); |
| @@ -268,10 +277,10 @@ foreach($medidas as $medida){ | @@ -268,10 +277,10 @@ foreach($medidas as $medida){ | ||
| 268 | } | 277 | } |
| 269 | } | 278 | } |
| 270 | } | 279 | } |
| 271 | - | ||
| 272 | //monta os cubos para cada esquema.tabela diferente | 280 | //monta os cubos para cada esquema.tabela diferente |
| 273 | $VirtualCubeDimension = array(); | 281 | $VirtualCubeDimension = array(); |
| 274 | $VirtualCubeMeasure = array(); | 282 | $VirtualCubeMeasure = array(); |
| 283 | + | ||
| 275 | foreach($tbs as $tb){ | 284 | foreach($tbs as $tb){ |
| 276 | //cabecalho de cada cubo obtido da primeira medida | 285 | //cabecalho de cada cubo obtido da primeira medida |
| 277 | $c = $tb[0]; | 286 | $c = $tb[0]; |
| @@ -344,6 +353,7 @@ error_reporting(0); | @@ -344,6 +353,7 @@ error_reporting(0); | ||
| 344 | ob_end_clean(); | 353 | ob_end_clean(); |
| 345 | 354 | ||
| 346 | gravaDados(array($xml),$arquivoXmlEsquema); | 355 | gravaDados(array($xml),$arquivoXmlEsquema); |
| 356 | + | ||
| 347 | header("Location:".$saikuUrl."/?nomeConexao=".$nomeConexao."&locaplic=".$_GET["locaplic"]."&g_sid=".$_GET["g_sid"]."&mapext=".$_GET["mapext"]); | 357 | header("Location:".$saikuUrl."/?nomeConexao=".$nomeConexao."&locaplic=".$_GET["locaplic"]."&g_sid=".$_GET["g_sid"]."&mapext=".$_GET["mapext"]); |
| 348 | 358 | ||
| 349 | function converte($texto){ | 359 | function converte($texto){ |
init/dicionario.js
| @@ -142,5 +142,11 @@ es:"" | @@ -142,5 +142,11 @@ es:"" | ||
| 142 | pt:"Documentação da API", | 142 | pt:"Documentação da API", |
| 143 | en:"", | 143 | en:"", |
| 144 | es:"" | 144 | es:"" |
| 145 | +}], | ||
| 146 | +25: [ | ||
| 147 | +{ | ||
| 148 | +pt:"SAIKU - análise de dados estatísticos", | ||
| 149 | +en:"", | ||
| 150 | +es:"" | ||
| 145 | }] | 151 | }] |
| 146 | -}; | ||
| 147 | \ No newline at end of file | 152 | \ No newline at end of file |
| 153 | +}; |
init/index.php
| @@ -170,6 +170,10 @@ botoesIni.push({ | @@ -170,6 +170,10 @@ botoesIni.push({ | ||
| 170 | "href":"../kml.php", | 170 | "href":"../kml.php", |
| 171 | "titulo":$trad(12,g_traducao_init) | 171 | "titulo":$trad(12,g_traducao_init) |
| 172 | },{ | 172 | },{ |
| 173 | + "img":"../imagens/saiku_free_small.png", | ||
| 174 | + "href":"../ferramentas/saiku/esquemaxml.php", | ||
| 175 | + "titulo":$trad(25,g_traducao_init) | ||
| 176 | + },{ | ||
| 173 | "img":"insert-link.png", | 177 | "img":"insert-link.png", |
| 174 | "href":"../geradordelinks.htm", | 178 | "href":"../geradordelinks.htm", |
| 175 | "titulo":$trad(13,g_traducao_init) | 179 | "titulo":$trad(13,g_traducao_init) |