Commit cdabc834431e9590bb1bfdd78906a71f44de0a2e

Authored by Edmar Moretti
1 parent 25ccad56
Exists in master

V5.0 - inclusão de opção para acessar o saiku fora do 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){
... ...
init/dicionario.js
... ... @@ -142,5 +142,11 @@ es:&quot;&quot;
142 142 pt:"Documenta&ccedil;&atilde;o da API",
143 143 en:"",
144 144 es:""
  145 +}],
  146 +25: [
  147 +{
  148 +pt:"SAIKU - an&aacute;lise de dados estat&iacute;sticos",
  149 +en:"",
  150 +es:""
145 151 }]
146   -};
147 152 \ No newline at end of file
  153 +};
... ...
init/index.php
... ... @@ -170,6 +170,10 @@ botoesIni.push({
170 170 "href":"../kml.php",
171 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 177 "img":"insert-link.png",
174 178 "href":"../geradordelinks.htm",
175 179 "titulo":$trad(13,g_traducao_init)
... ... @@ -179,11 +183,11 @@ botoesIni.push({
179 183 "titulo":$trad(14,g_traducao_init)
180 184 },{
181 185 "img":"accessories-dictionary.png",
182   - "href":"../documentacao/manual-i3geo-5_0-pt.pdf",
  186 + "href":"../documentacao/manual-i3geo-6_0-pt.pdf",
183 187 "titulo":$trad(15,g_traducao_init)
184 188 },{
185 189 "img":"accessories-dictionary.png",
186   - "href":"../documentacao/manual-admin-i3geo-5_0-pt.pdf",
  190 + "href":"../documentacao/manual-admin-i3geo-6_0-pt.pdf",
187 191 "titulo":$trad(21,g_traducao_init)
188 192 },{
189 193 "img":"accessories-dictionary.png",
... ...