Commit 4ca2a1cbb000cf03707cb65cbd456387bb39146b

Authored by Edmar Moretti
1 parent df8dbdd2

Modificações na função de geração do mapfile, baseado no sistema de metadados es…

…tatísticos, para evitar passagem de parâmetros inválidos na criação do SQL
classesphp/metaestat_controle.php
... ... @@ -198,7 +198,6 @@ switch (strtoupper($funcao)) {
198 198 break;
199 199 case "MAPFILEMEDIDAVARIAVEL":
200 200 // $filtro usa aspas duplas para enviar os parametros
201   - $_pg["filtro"] = str_replace('"', "'", $_pg["filtro"]);
202 201 $m = new MetaestatInfo();
203 202 if (! isset($_pg["codigo_tipo_regiao"])) {
204 203 $_pg["codigo_tipo_regiao"] = "";
... ... @@ -211,6 +210,25 @@ switch (strtoupper($funcao)) {
211 210 } else {
212 211 $_pg["cachemapfile"] = true;
213 212 }
  213 + //valida o filtro
  214 +
  215 + if(!empty($_pg["filtro"])){
  216 + $_pg["filtro"] = str_replace('"', "'", $_pg["filtro"]);
  217 + $final = array();
  218 + $sepands = explode("|",$_pg["filtro"]);
  219 + foreach($sepands as $sepand){
  220 + $linhas = explode("*",$sepand);
  221 + if(!is_numeric(str_replace(array("'",","),"",$linhas[1]))){
  222 + exit;
  223 + }
  224 + if(count(explode(",",$linhas[1])) == 1){
  225 + $final[] = $linhas[0]." = ". $linhas[1];
  226 + } else {
  227 + $final[] = $linhas[0]." IN (".$linhas[1].")";
  228 + }
  229 + }
  230 + $_pg["filtro"] = implode(" and ", $final);
  231 + }
214 232 if ($_pg["formato"] == "json") {
215 233 retornaJSON($m->mapfileMedidaVariavel($_pg["id_medida_variavel"], $_pg["filtro"], $_GET["todasascolunas"], $_GET["tipolayer"], $_GET["titulolayer"], $_pg["id_classificacao"], $_GET["agruparpor"], $_pg["codigo_tipo_regiao"], $_GET["opacidade"], false, $_GET["cachemapfile"]));
216 234 }
... ...
ferramentas/metaestat/index.js
... ... @@ -583,7 +583,8 @@ i3GEOF.metaestat = {
583 583 }
584 584 };
585 585 if(v != true){
586   - i3GEO.janela.tempoMsg("erro: "+v);
  586 + i3GEOF.metaestat.comum.aguarde("hidden");
  587 + i3GEO.janela.tempoMsg("erro: "+v);
587 588 return;
588 589 }
589 590 //e necessario obter os parametros nessa interface
... ... @@ -696,18 +697,20 @@ i3GEOF.metaestat = {
696 697 c = $i("comboparametro_"+dados[i].id_parametro_medida+"_"+dados[i].id_pai);
697 698 if(c){
698 699 if(c.value != "" && i3GEOF.metaestat.MULTIPARAMETROS === false){
699   - t.push(dados[i].coluna+'="'+c.value+'"');
  700 + //t.push(dados[i].coluna+'="'+c.value+'"');
  701 + t.push(dados[i].coluna+'*"'+c.value+'"');
700 702 }
701 703 else{
702 704 val = i3GEO.util.valoresCheckCombo(c.id);
703 705 if(val.length > 0){
704   - t.push(dados[i].coluna+' IN ("'+val.join('","')+'")');
  706 + //t.push(dados[i].coluna+' IN ("'+val.join('","')+'")');
  707 + t.push(dados[i].coluna+' * "'+val.join('","')+'"');
705 708 }
706 709 }
707 710 }
708 711 }
709 712 if(t.length > 0){
710   - return t.join(" and ");
  713 + return t.join("|");
711 714 }
712 715 else{
713 716 return "";
... ... @@ -1414,7 +1417,6 @@ i3GEOF.metaestat = {
1414 1417 var temp = function(dados){
1415 1418 i3GEOF.metaestat.parametros.dados = dados;
1416 1419 i3GEOF.metaestat.parametros.combos("0");
1417   - i3GEOF.metaestat.comum.aguarde("hidden");
1418 1420 };
1419 1421 i3GEO.php.listaParametrosMedidaVariavel(id_medida_variavel,temp);
1420 1422 },
... ...