Commit 149997e38188743aad015bebfe324f699b66ba7f

Authored by Edmar Moretti
1 parent e3cf0eb3

Correção na aplicação de filtros

classesphp/classe_temas.php
... ... @@ -529,6 +529,7 @@ $testa - Testa o filtro e retorna uma imagem.
529 529 $layer->set("template","none.htm");
530 530 $fil = $layer->getFilterString();
531 531 $filtro = str_replace("|","'",$filtro);
  532 + /*
532 533 if ($layer->connectiontype == MS_POSTGIS){
533 534 $filtro = str_replace("'[","",$filtro);
534 535 $filtro = str_replace("[","",$filtro);
... ... @@ -537,30 +538,37 @@ $testa - Testa o filtro e retorna uma imagem.
537 538 $filtro = str_replace("("," ",$filtro);
538 539 $filtro = str_replace(")"," ",$filtro);
539 540 }
540   - if ($filtro == ""){
541   - $layer->setfilter($filtro);
542   - }
543   - else{
544   - //testa o filtro
  541 + */
  542 + if ($filtro != ""){
  543 + //testa o filtro para resolver problemas de acentuacao
545 544 if(mb_convert_encoding($filtro,"UTF-8","ISO-8859-1") != mb_convert_encoding($filtro,"ISO-8859-1","UTF-8")){
546   - $teste = $layer->querybyattributes($items[0],$filtro,1);
547   - if($teste != MS_SUCCESS){
  545 + $filtro = str_replace("*","'",$filtro);
  546 + $teste = $layer->querybyattributes($items[0],$filtro,1);
  547 + if($teste != MS_SUCCESS){
548 548 $teste = $this->layer->queryByAttributes($items[0], mb_convert_encoding($filtro,"ISO-8859-1","UTF-8"), 1);
549 549 if($teste != MS_SUCCESS){
550   - $teste = $this->layer->queryByAttributes($items[0], mb_convert_encoding($filtro,"UTF-8","ISO-8859-1"), 1);
551 550 $filtro = mb_convert_encoding($filtro,"UTF-8","ISO-8859-1");
  551 + } else {
  552 + $filtro = mb_convert_encoding($filtro,"ISO-8859-1","UTF-8");
  553 + $teste = $layer->querybyattributes($items[0],$filtro,1);
  554 + if($teste != MS_SUCCESS){
  555 + $filtro = "";
  556 + }
552 557 }
553   - else{
554   - $filtro = mb_convert_encoding($filtro,"ISO-8859-1","UTF-8");
555   - }
556   - }
557   - if($teste == MS_SUCCESS){
558   - $layer->setfilter($filtro);
559 558 }
560 559 } else {
561   - $layer->setfilter($filtro);
  560 + //testa a questao de ser string ou numero
  561 + //$layer->setfilter($filtro);
  562 + $teste = $layer->querybyattributes($items[0],str_replace("*","'",$filtro),1);
  563 + if($teste != MS_SUCCESS){
  564 + $filtro = str_replace("*","",$filtro);
  565 + }
  566 + if($teste == MS_SUCCESS){
  567 + $filtro = str_replace("*","'",$filtro);
  568 + }
562 569 }
563 570 }
  571 + $layer->setfilter($filtro);
564 572 if ($testa == ""){
565 573 $layer->setMetaData("cache","");
566 574 } else {
... ...
ferramentas/filtro/exec.php
... ... @@ -34,6 +34,8 @@ Inclui um filtro no tema.
34 34 $_GET["testa"]="";
35 35 }
36 36 $m->insereFiltro("");
  37 + $m->salva();
  38 + $m = new Temas($map_file,$tema);
37 39 $retorno = $m->insereFiltro(base64_decode($_GET["filtro"]),$_GET["testa"],$_GET["base64"]);
38 40 if(strtolower($_GET["testa"]) != "sim"){
39 41 $m->salva();
... ...
ferramentas/identifica/index.js
... ... @@ -957,12 +957,15 @@ i3GEOF.identifica =
957 957 return;
958 958 }
959 959 i3GEOF.identifica.propJanelas[idjanela].aguarde.visibility = "visible";
960   - var filtro = "('[" + item + "]' = '" + valor + "')", temp = function(retorno) {
961   - i3GEOF.identifica.propJanelas[idjanela].aguarde.visibility = "hidden";
962   - i3GEO.Interface.atualizaTema(retorno, tema);
963   - }, p =
964   - i3GEO.configura.locaplic + "/ferramentas/filtro/exec.php?base64=sim&g_sid=" + i3GEO.configura.sid + "&funcao=inserefiltro", cp =
965   - new cpaint();
  960 + var filtro = "",
  961 + temp = function(retorno) {
  962 + i3GEOF.identifica.propJanelas[idjanela].aguarde.visibility = "hidden";
  963 + i3GEO.Interface.atualizaTema(retorno, tema);
  964 + },
  965 + p = i3GEO.configura.locaplic + "/ferramentas/filtro/exec.php?base64=sim&g_sid=" + i3GEO.configura.sid + "&funcao=inserefiltro",
  966 + cp = new cpaint();
  967 +
  968 + filtro = "(*[" + item + "]* = *" + valor + "*)";
966 969 cp.set_response_type("JSON");
967 970 cp.set_transfer_mode('POST');
968 971 cp.call(p, "insereFiltro", temp, "tema=" + tema + "&filtro=" + i3GEO.util.base64encode(filtro));
... ...