From 461945f9de4f555cb55ce72c29377a88bc92b530 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Fri, 16 Jan 2015 13:41:03 +0000 Subject: [PATCH] --- ferramentas/parametrossql/exec.php | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------ temas/teste.map | 2 +- 2 files changed, 53 insertions(+), 37 deletions(-) diff --git a/ferramentas/parametrossql/exec.php b/ferramentas/parametrossql/exec.php index 7311559..dd51f12 100755 --- a/ferramentas/parametrossql/exec.php +++ b/ferramentas/parametrossql/exec.php @@ -15,47 +15,63 @@ Aplica a substituicao de chaves pelos valores enviados $map = ms_newMapObj($map_file); $layer = $map->getlayerbyname($tema); $data = $layer->data; - //verifica se o layer ja teve os parametros substituidos anteriormente - //nesse caso, o data he obtido do metadata que guarda o valor original - if($layer->getmetadata("DATAORIGINAL") != ""){ - $data = $layer->getmetadata("DATAORIGINAL"); + //pega as chaves do proprio mapfile + $c = $layer->getmetadata("PLUGINI3GEO"); + if($c == ""){ + $retorno = "erro"; } else{ - $layer->setmetadata("DATAORIGINAL",$data); - } - $filtro = $layer->getFilterString(); - if($layer->getmetadata("FILTROORIGINAL") != ""){ - $filtro = $layer->getmetadata("FILTROORIGINAL"); - } - else{ - $layer->setmetadata("FILTROORIGINAL",$filtro); - } - $chaves = str_ireplace(array("and", "or", "select","from","where","update","delete","insert","--"),"",$chaves); - $chaves = explode(",",$chaves); - $valores = str_ireplace(array("and", "or", "select","from","where","update","delete","insert","--"),"",$valores); - $valores = explode(",",strip_tags($valores)); - $n = count($chaves); - for($i = 0; $i < $n; $i++){ - $v = $valores[$i]; - $data = str_replace($chaves[$i],$v,$data); + $cs = json_decode($c,true); + $cs = $cs["parametros"]; + $chaves = array(); + foreach($cs as $c){ + $chaves[] = $c["chave"]; + } + $chaves = implode(",",$chaves); + //verifica se o layer ja teve os parametros substituidos anteriormente + //nesse caso, o data he obtido do metadata que guarda o valor original + if($layer->getmetadata("DATAORIGINAL") != ""){ + $data = $layer->getmetadata("DATAORIGINAL"); + } + else{ + $layer->setmetadata("DATAORIGINAL",$data); + } + $filtro = $layer->getFilterString(); + if($layer->getmetadata("FILTROORIGINAL") != ""){ + $filtro = $layer->getmetadata("FILTROORIGINAL"); + } + else{ + $layer->setmetadata("FILTROORIGINAL",$filtro); + } + $chaves = str_ireplace(array("and", "or", "select","from","where","update","delete","insert","--"),"",$chaves); + $chaves = explode(",",$chaves); + $valores = str_ireplace(array("and", "or", "select","from","where","update","delete","insert","--"),"",$valores); + $valores = explode(",",strip_tags($valores)); + $n = count($chaves); + for($i = 0; $i < $n; $i++){ + if($chaves[$i] != ""){ + $v = $valores[$i]; + $data = str_replace($chaves[$i],$v,$data); + if($filtro != ""){ + $filtro = str_replace($chaves[$i],$v,$filtro); + } + } + } if($filtro != ""){ - $filtro = str_replace($chaves[$i],$v,$filtro); + $layer->setfilter($filtro); } + $data = str_replace("--","",$data); + $layer->set("data",$data); + $layer->set("status",MS_DEFAULT); + $layer->setmetadata("PLUGINI3GEO",""); + $layer->setmetadata("TEMA",$layer->getmetadata("TEMA")." - ".implode(",",$valores)); + $layer->set("name","plugin".nomeRandomico()); + if (connection_aborted()){ + exit(); + } + $salvo = $map->save($map_file); + $retorno = "ok"; } - if($filtro != ""){ - $layer->setfilter($filtro); - } - $data = str_replace("--","",$data); - $layer->set("data",$data); - $layer->set("status",MS_DEFAULT); - $layer->setmetadata("PLUGINI3GEO",""); - $layer->setmetadata("TEMA",$layer->getmetadata("TEMA")." - ".implode(",",$valores)); - $layer->set("name","plugin".nomeRandomico()); - if (connection_aborted()){ - exit(); - } - $salvo = $map->save($map_file); - $retorno = "ok"; break; case "REMOVER": $map = ms_newMapObj($map_file); diff --git a/temas/teste.map b/temas/teste.map index fe1afd2..5a75c32 100644 --- a/temas/teste.map +++ b/temas/teste.map @@ -4,7 +4,7 @@ MAP LAYER CONNECTION "teste" CONNECTIONTYPE POSTGIS - DATA "geom from (select * from ambiente.queim2013 WHERE data >= 999 and data <= 20131231 ) as foo using unique gid using srid=4326" + DATA "geom from (select * from ambiente.queim2013 WHERE data >= 2013999 and data <= 20131231 ) as foo using unique gid using srid=4326" METADATA "METAESTAT_ID_MEDIDA_VARIAVEL" "" "cache" "nao" -- libgit2 0.21.2