diff --git a/admin/php/editormapfile.php b/admin/php/editormapfile.php index 77f0894..0f8b3dd 100755 --- a/admin/php/editormapfile.php +++ b/admin/php/editormapfile.php @@ -300,7 +300,7 @@ switch (strtoupper($funcao)) $dirs[] = $d."/".$nome; $dirs[] = $d."/googlemaps/".$nome; foreach($dirs as $dir){ - rrmdir($dir); + rename($dir,$dir."_removido"); } } retornaJSON("ok"); @@ -2568,20 +2568,24 @@ function removeCabecalho($arq,$symbolset=true) } } fclose($handle); - chmod($arq, 0666); + //chmod($arq, 0666); } function rrmdir($dir) { if (is_dir($dir)) { - chmod($dir,0777); + //chmod($dir,0777); $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { - chmod($dir."/".$object,0777); - if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object); + //chmod($dir."/".$object,0777); + if (filetype($dir."/".$object) == "dir"){ + rrmdir($dir."/".$object); + } else { + rename($dir."/".$object,$dir."/".$object."_removido"); + } } } reset($objects); rmdir($dir); } } -?> +?> \ No newline at end of file diff --git a/classesphp/classe_metaestatinfo.php b/classesphp/classe_metaestatinfo.php index 9a14dbb..5973d5b 100755 --- a/classesphp/classe_metaestatinfo.php +++ b/classesphp/classe_metaestatinfo.php @@ -1210,7 +1210,7 @@ class MetaestatInfo{ * @param codigo da variavel * @param id da medida de variavel */ - function listaMedidaVariavel($codigo_variavel,$id_medida_variavel=""){ + function listaMedidaVariavel($codigo_variavel="",$id_medida_variavel=""){ $sql = "SELECT i3geoestat_medida_variavel.*,i3geoestat_variavel.nome as nome_variavel,i3geoestat_unidade_medida.permitemedia,i3geoestat_unidade_medida.permitesoma,i3geoestat_unidade_medida.nome as unidade_medida "; $sql .= "FROM ".$this->esquemaadmin."i3geoestat_variavel "; $sql .= "JOIN ".$this->esquemaadmin."i3geoestat_medida_variavel "; diff --git a/classesphp/funcoes_gerais.php b/classesphp/funcoes_gerais.php index bd74d91..e9f5d29 100755 --- a/classesphp/funcoes_gerais.php +++ b/classesphp/funcoes_gerais.php @@ -465,11 +465,13 @@ $arq {string} - Nome do arquivo que será gravado function gravaDados($dados,$arq) { $fp = fopen($arq,"w"); - foreach ($dados as $dado) - { - fwrite($fp,$dado."\n"); + if($fp != false){ + foreach ($dados as $dado) + { + fwrite($fp,$dado."\n"); + } + fclose($fp); } - fclose($fp); } /* Function: listaTrueType diff --git a/css/i3geo7.css.php b/css/i3geo7.css.php old mode 100755 new mode 100644 index ded3963..ded3963 --- a/css/i3geo7.css.php +++ b/css/i3geo7.css.php diff --git a/ferramentas/saiku/cartograma.php b/ferramentas/saiku/cartograma.php index b89bba6..87403f2 100755 --- a/ferramentas/saiku/cartograma.php +++ b/ferramentas/saiku/cartograma.php @@ -1,11 +1,11 @@ listaTipoRegiao($codigo_tipo_regiao); $titulolayer = $meta["nome_tipo_regiao"]; diff --git a/ferramentas/saiku/esquemaxml.php b/ferramentas/saiku/esquemaxml.php index 5ed2fc0..a9efe22 100755 --- a/ferramentas/saiku/esquemaxml.php +++ b/ferramentas/saiku/esquemaxml.php @@ -1,59 +1,34 @@ listaTipoRegiao(); } @@ -70,10 +44,7 @@ else{ $regioes = array($m->listaTipoRegiao($codigo_tipo_regiao)); } $s = ""; - -if(empty($saikuConfigDataSource['tabelaDimensaoTempo'])){ - $saikuConfigDataSource['tabelaDimensaoTempo'] = "i3geo_metaestat.dim_tempo"; -} +*/ $medidas = $m->listaMedidaVariavel(); @@ -85,9 +56,7 @@ $todasAsRegioes = $m->listaTipoRegiao(); foreach($todasAsRegioes as $R){ $chavesRegiao[$R["codigo_tipo_regiao"]] = $R; } - //inicia montagem do XML - // //cria as dimensoes de tipo temporal // @@ -149,14 +118,16 @@ ob_end_clean(); //grava os dados em um arquivo. O usuario pode evitar isso e imprimir direto na tela //usando output "xml" // -if($_GET["output"] != "xml"){ +/* +if(empty($_GET["output"]) || (!empty($_GET["output"]) && $_GET["output"] != "xml")){ gravaDados(array($xml),$arquivoXmlEsquema); } +*/ imprimeEsquema(); ////////////////////////////////////////////////////////////////////////////////////////// -function caminhoRegiao($hs,$chavesRegiao,$h,$regiaoInicial,$caminho) +function caminhoRegiao($hs,$chavesRegiao,$h,$regiaoInicial,$caminho=array()) { foreach($hs as $n){ if($n["codigo_tipo_regiao"] == $regiaoInicial){ @@ -170,28 +141,20 @@ function caminhoRegiao($hs,$chavesRegiao,$h,$regiaoInicial,$caminho) return $caminho; } function converte($texto){ - $texto = str_replace("&","&",htmlentities($texto,ENT_NOQUOTES,mb_detect_encoding($texto))); + $texto = str_replace("&","&",htmlentities($texto,ENT_NOQUOTES,'UTF-8')); return $texto; } function imprimeEsquema(){ global $saikuUrl,$nomeConexao,$xml; - if($_GET["output"] == "xml"){ - if(!empty($_GET["xmlesquema"])){ - echo header("Content-type: application/xml"); - header("Location:".$_GET["xmlesquema"]); - } - else{ - imprimeXml($xml); - } + @ob_end_clean(); + header("Content-type: application/xml"); + if(!empty($_GET["xmlesquema"])){ + header("Location:".$_GET["xmlesquema"]); } else{ - header("Location:".$saikuUrl."/?nomeConexao=".$nomeConexao."&locaplic=".$_GET["locaplic"]."&g_sid=".$_GET["g_sid"]."&mapext=".$_GET["mapext"]."&origem=".$_GET["origem"]."®iao=".$_GET["regiao"]); + echo $xml; } } -function imprimeXml($xml){ - echo header("Content-type: application/xml"); - echo $xml; -} function criaMapfileInicial(){ global $mapext; if(empty($_GET["g_sid"])){ @@ -209,17 +172,19 @@ function criaConexaoEsquema(){ global $dir_tmp, $urlXmlEsquema; $nomeConexao = nomeRandomico(); //pega a sessao PHP aberta pelo i3Geo ou ms_criamapa.php - session_name("i3GeoPHP"); - session_id($_GET["g_sid"]); - session_start(); - $map_file = $_SESSION["map_file"]; - if(empty($_GET["xmlesquema"])){ - $urlXmlEsquema = $_SESSION["tmpurl"].basename(dirname($map_file))."/".$nomeConexao.".xml"; - } - else{ - $urlXmlEsquema = $_GET["xmlesquema"]; - //cria um nome de arquivo reaproveitável - $nomeConexao = md5($_GET["xmlesquema"]); + if(!empty($_GET["g_sid"])){ + session_name("i3GeoPHP"); + session_id($_GET["g_sid"]); + session_start(); + $map_file = $_SESSION["map_file"]; + if(empty($_GET["xmlesquema"])){ + $urlXmlEsquema = $_SESSION["tmpurl"].basename(dirname($map_file))."/".$nomeConexao.".xml"; + } + else{ + $urlXmlEsquema = $_GET["xmlesquema"]; + //cria um nome de arquivo reaproveitável + $nomeConexao = md5($_GET["xmlesquema"]); + } } //$arquivoXmlEsquema = dirname($map_file)."/".$nomeConexao.".xml"; return $nomeConexao.".txt"; @@ -251,7 +216,11 @@ function gravaDataSource(){ ); */ global $arquivoXmlEsquema,$saikuConfigDataSource,$nomeConexao,$urlXmlEsquema,$dir_tmp; + $nomeDatasource = $dir_tmp."/saiku-datasources/".$nomeConexao; + //nao funciona como url + //error_reporting(E_ALL); + $urlXmlEsquema = "http//localhost/i3geo/ferramentas/saiku/esquemaxml.php?output=xml"; if(!file_exists($arquivoXmlEsquema)){ $stringDatasource = " type={$saikuConfigDataSource["type"]} @@ -406,10 +375,12 @@ function sqlDasRegioes($regiao,$caminho,$chavesRegiao){ function dimensoesGeo(){ global $chavesRegiao, $m, $selecaoRegiao, $regioes, $filhosDaRegiao, $VirtualCubeDimensionDaRegiao, $VirtualCubeMeasureDaRegiao; //essas variaveis sao globais e usadas em outras funcoes - foreach($regioes as $regiao){ - $filhosDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); - $VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); - $VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); + if(!empty($regioes)){ + foreach($regioes as $regiao){ + $filhosDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); + $VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); + $VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); + } } //xml normal $xml1 = ""; @@ -602,25 +573,26 @@ function dimensoesTabelas(){ $VirtualCubeDimension[] = " "; - - array_push( - $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], - "" - ); - array_push( - $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], - "" - ); - - array_push( - $VirtualCubeDimensionDaMedida[$c["nome_variavel"]], - "" - ); - array_push( - $VirtualCubeDimensionDaMedida[$c["nome_variavel"]], - "" - ); - + if(array_key_exists($c["codigo_tipo_regiao"],$VirtualCubeDimensionDaRegiao)){ + array_push( + $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], + "" + ); + array_push( + $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], + "" + ); + } + if(array_key_exists($c["nome_variavel"],$VirtualCubeDimensionDaMedida)){ + array_push( + $VirtualCubeDimensionDaMedida[$c["nome_variavel"]], + "" + ); + array_push( + $VirtualCubeDimensionDaMedida[$c["nome_variavel"]], + "" + ); + } //verifica as dimensoes do tipo tempo $dimEnsoes = array(); @@ -643,11 +615,12 @@ function dimensoesTabelas(){ "; $dimEnsoes[] = $u; - array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],""); + if(array_key_exists($c["codigo_tipo_regiao"],$VirtualCubeDimensionDaRegiao)){ + array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],""); + } } //outros parametros $outrosParametros = array(); - foreach($parametros as $parametro){ $k = $parametro["esquemadb"]."_".$parametro["tabela"]."_".$parametro["coluna"]; if($parametro["tipo"] > 5 || $parametro["tipo"] == 0){ @@ -655,7 +628,9 @@ function dimensoesTabelas(){ $VirtualCubeDimension[] = ""; $u = ""; $dimEnsoes[] = $u; - array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],""); + if(array_key_exists($c["codigo_tipo_regiao"],$VirtualCubeDimensionDaRegiao)){ + array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],""); + } } } @@ -722,13 +697,14 @@ function dimensoesTabelas(){ "; } //inclui as dimensoes filhas - foreach($filhosDaRegiao[$c["codigo_tipo_regiao"]] as $fr){ - $xml .= " - - - "; + if(array_key_exists($c["codigo_tipo_regiao"],$filhosDaRegiao)){ + foreach($filhosDaRegiao[$c["codigo_tipo_regiao"]] as $fr){ + $xml .= " + + + "; + } } - $xml .= implode(" ",array_unique($dimEnsoes)); //inclui cada elemento em medida @@ -753,7 +729,9 @@ function dimensoesTabelas(){ "; $VirtualCubeMeasure[] = $u; - array_push($VirtualCubeMeasureDaRegiao[$c["codigo_tipo_regiao"]],$u); + if(array_key_exists($c["codigo_tipo_regiao"],$VirtualCubeMeasureDaRegiao)){ + array_push($VirtualCubeMeasureDaRegiao[$c["codigo_tipo_regiao"]],$u); + } //verifica em qual variavel entra // $u = ""; @@ -778,18 +756,20 @@ function cuboTodas(){ function cuboRegioes(){ global $regioes, $VirtualCubeDimensionDaRegiao, $VirtualCubeMeasureDaRegiao, $filhosDaRegiao; $xml = ""; - foreach($regioes as $regiao){ - //inclui os parametros para a regiao de acordo com os filhos que possui - $d = $VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]]; - $mm = $VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]]; - foreach($filhosDaRegiao[$regiao["codigo_tipo_regiao"]] as $f){ - $mm = array_merge($mm,$VirtualCubeMeasureDaRegiao[$f]); - } - if(count(array_unique($mm)) > 0){ - $xml .= ''; - $xml .= implode(" ",array_unique($d)); - $xml .= implode(" ",array_unique($mm)); - $xml .= ''; + if(!empty($regioes)){ + foreach($regioes as $regiao){ + //inclui os parametros para a regiao de acordo com os filhos que possui + $d = $VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]]; + $mm = $VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]]; + foreach($filhosDaRegiao[$regiao["codigo_tipo_regiao"]] as $f){ + $mm = array_merge($mm,$VirtualCubeMeasureDaRegiao[$f]); + } + if(count(array_unique($mm)) > 0){ + $xml .= ''; + $xml .= implode(" ",array_unique($d)); + $xml .= implode(" ",array_unique($mm)); + $xml .= ''; + } } } return $xml; diff --git a/ferramentas/saiku/index.js b/ferramentas/saiku/index.js index ef46637..5782a08 100755 --- a/ferramentas/saiku/index.js +++ b/ferramentas/saiku/index.js @@ -167,7 +167,7 @@ i3GEOF.saiku = }, iniciaJanelaFlutuante2 : function() { var mapext = i3GEO.util.extOSM2Geo(i3GEO.parametros.mapexten), url = - i3GEO.configura.locaplic + "/ferramentas/saiku/esquemaxml.php?origem=i3geo&g_sid=" + i3GEO.configura.sid + "&locaplic=" + i3GEO.configura.locaplic + "/ferramentas/saiku/startsaiku.php?origem=i3geo&g_sid=" + i3GEO.configura.sid + "&locaplic=" + i3GEO.configura.locaplic + "&mapext=" + mapext, cabecalho = function() { }, minimiza = function() { i3GEO.janela.iconiza("i3GEOF.saikuMapa",100); @@ -198,7 +198,7 @@ i3GEOF.saiku = }, aplicar : function() { var mapext = i3GEO.util.extOSM2Geo(i3GEO.parametros.mapexten); - window.open(i3GEO.configura.locaplic + "/ferramentas/saiku/esquemaxml.php?origem=i3geo&g_sid=" + i3GEO.configura.sid + window.open(i3GEO.configura.locaplic + "/ferramentas/saiku/startsaiku.php?origem=i3geo&g_sid=" + i3GEO.configura.sid + "&locaplic=" + i3GEO.configura.locaplic + "&mapext=" + mapext); }, atualizaMapa : function() { diff --git a/ferramentas/saiku/startsaiku.php b/ferramentas/saiku/startsaiku.php new file mode 100755 index 0000000..06815ad --- /dev/null +++ b/ferramentas/saiku/startsaiku.php @@ -0,0 +1,119 @@ +"OLAP", + "driver"=>"mondrian.olap4j.MondrianOlap4jDriver", + "location"=>"jdbc:mondrian:Jdbc=jdbc:postgresql", + "serverdb"=>"localhost", + "port"=>"5432", + "database"=>"i3geosaude", + "JdbcDrivers"=>"org.postgresql.Driver", + "username"=>"postgres", + "password"=>"postgres" + ); + */ + global $arquivoXmlEsquema,$saikuConfigDataSource,$nomeConexao,$urlXmlEsquema,$dir_tmp; + + $nomeDatasource = $dir_tmp."/saiku-datasources/".$nomeConexao; + //nao funciona como url + //error_reporting(E_ALL); + //$urlXmlEsquema = "http://localhost/i3geo/ferramentas/saiku/esquemaxml.php"; + + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); + $protocolo = $protocolo[0]; + $protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; + $urlXmlEsquema = str_replace("startsaiku","esquemaxml",$protocolo.$_SERVER["PHP_SELF"]); + + //error_log($urlXmlEsquema); + + //if(!file_exists($arquivoXmlEsquema)){ + $stringDatasource = " + type={$saikuConfigDataSource["type"]} + name={$nomeConexao} + driver={$saikuConfigDataSource["driver"]} + location={$saikuConfigDataSource["location"]}://{$saikuConfigDataSource["serverdb"]}:{$saikuConfigDataSource["port"]}/{$saikuConfigDataSource["database"]};Catalog={$urlXmlEsquema};JdbcDrivers={$saikuConfigDataSource["JdbcDrivers"]}; + username={$saikuConfigDataSource["username"]} + password={$saikuConfigDataSource["password"]} + "; + //salva o arquivo com a fonte + gravaDados(array($stringDatasource),$nomeDatasource); + //} +} +?> diff --git a/init/index.js b/init/index.js index 1471e54..00e9f25 100755 --- a/init/index.js +++ b/init/index.js @@ -64,7 +64,7 @@ botoesIni = [ "target": "_self" },{ "img":"saiku_free_small", - "href": "../ferramentas/saiku/esquemaxml.php?locaplic="+window.location.href.replace("/init/index.php",""), + "href": "../ferramentas/saiku/startsaiku.php?locaplic="+window.location.href.replace("/init/index.php",""), "titulo":$trad(25,g_traducao_init), "subtitulo": $trad("25a",g_traducao_init), "fa": "bar-chart", diff --git a/js/i3geo_tudo_compacto7.js.php b/js/i3geo_tudo_compacto7.js.php old mode 100755 new mode 100644 index 2f44a2b..2f44a2b --- a/js/i3geo_tudo_compacto7.js.php +++ b/js/i3geo_tudo_compacto7.js.php diff --git a/ms_configura.php b/ms_configura.php index 07f7865..377737b 100755 --- a/ms_configura.php +++ b/ms_configura.php @@ -816,7 +816,7 @@ else //se for linux * * Para trocar, altere a linha abaixo */ -if(empty($_COOKIE["i3geolingua"])){ +if(empty($_COOKIE["i3geolingua"]) && array_key_exists('HTTP_ACCEPT_LANGUAGE',$_SERVER)){ $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); $l = "pt"; if($lang == "en" || $lang == "es"){ diff --git a/testainstal/index.js b/testainstal/index.js index 80e8a92..84ac8ce 100755 --- a/testainstal/index.js +++ b/testainstal/index.js @@ -78,7 +78,7 @@ botoesIni = [ "target": "_self" },{ "img":"../imagens/saiku_free_small.png", - "href":"../ferramentas/saiku/esquemaxml.php?locaplic="+window.location.href.replace("/init/index.php",""), + "href":"../ferramentas/saiku/startsaiku.php?locaplic="+window.location.href.replace("/init/index.php",""), "titulo":$trad(25,g_traducao_init), "subtitulo": $trad("25a",g_traducao_init), "fa": "bar-chart", -- libgit2 0.21.2