Commit 461945f9de4f555cb55ce72c29377a88bc92b530
1 parent
59f1a387
Exists in
master
and in
7 other branches
--no commit message
Showing
2 changed files
with
53 additions
and
37 deletions
Show diff stats
ferramentas/parametrossql/exec.php
| @@ -15,47 +15,63 @@ Aplica a substituicao de chaves pelos valores enviados | @@ -15,47 +15,63 @@ Aplica a substituicao de chaves pelos valores enviados | ||
| 15 | $map = ms_newMapObj($map_file); | 15 | $map = ms_newMapObj($map_file); |
| 16 | $layer = $map->getlayerbyname($tema); | 16 | $layer = $map->getlayerbyname($tema); |
| 17 | $data = $layer->data; | 17 | $data = $layer->data; |
| 18 | - //verifica se o layer ja teve os parametros substituidos anteriormente | ||
| 19 | - //nesse caso, o data he obtido do metadata que guarda o valor original | ||
| 20 | - if($layer->getmetadata("DATAORIGINAL") != ""){ | ||
| 21 | - $data = $layer->getmetadata("DATAORIGINAL"); | 18 | + //pega as chaves do proprio mapfile |
| 19 | + $c = $layer->getmetadata("PLUGINI3GEO"); | ||
| 20 | + if($c == ""){ | ||
| 21 | + $retorno = "erro"; | ||
| 22 | } | 22 | } |
| 23 | else{ | 23 | else{ |
| 24 | - $layer->setmetadata("DATAORIGINAL",$data); | ||
| 25 | - } | ||
| 26 | - $filtro = $layer->getFilterString(); | ||
| 27 | - if($layer->getmetadata("FILTROORIGINAL") != ""){ | ||
| 28 | - $filtro = $layer->getmetadata("FILTROORIGINAL"); | ||
| 29 | - } | ||
| 30 | - else{ | ||
| 31 | - $layer->setmetadata("FILTROORIGINAL",$filtro); | ||
| 32 | - } | ||
| 33 | - $chaves = str_ireplace(array("and", "or", "select","from","where","update","delete","insert","--"),"",$chaves); | ||
| 34 | - $chaves = explode(",",$chaves); | ||
| 35 | - $valores = str_ireplace(array("and", "or", "select","from","where","update","delete","insert","--"),"",$valores); | ||
| 36 | - $valores = explode(",",strip_tags($valores)); | ||
| 37 | - $n = count($chaves); | ||
| 38 | - for($i = 0; $i < $n; $i++){ | ||
| 39 | - $v = $valores[$i]; | ||
| 40 | - $data = str_replace($chaves[$i],$v,$data); | 24 | + $cs = json_decode($c,true); |
| 25 | + $cs = $cs["parametros"]; | ||
| 26 | + $chaves = array(); | ||
| 27 | + foreach($cs as $c){ | ||
| 28 | + $chaves[] = $c["chave"]; | ||
| 29 | + } | ||
| 30 | + $chaves = implode(",",$chaves); | ||
| 31 | + //verifica se o layer ja teve os parametros substituidos anteriormente | ||
| 32 | + //nesse caso, o data he obtido do metadata que guarda o valor original | ||
| 33 | + if($layer->getmetadata("DATAORIGINAL") != ""){ | ||
| 34 | + $data = $layer->getmetadata("DATAORIGINAL"); | ||
| 35 | + } | ||
| 36 | + else{ | ||
| 37 | + $layer->setmetadata("DATAORIGINAL",$data); | ||
| 38 | + } | ||
| 39 | + $filtro = $layer->getFilterString(); | ||
| 40 | + if($layer->getmetadata("FILTROORIGINAL") != ""){ | ||
| 41 | + $filtro = $layer->getmetadata("FILTROORIGINAL"); | ||
| 42 | + } | ||
| 43 | + else{ | ||
| 44 | + $layer->setmetadata("FILTROORIGINAL",$filtro); | ||
| 45 | + } | ||
| 46 | + $chaves = str_ireplace(array("and", "or", "select","from","where","update","delete","insert","--"),"",$chaves); | ||
| 47 | + $chaves = explode(",",$chaves); | ||
| 48 | + $valores = str_ireplace(array("and", "or", "select","from","where","update","delete","insert","--"),"",$valores); | ||
| 49 | + $valores = explode(",",strip_tags($valores)); | ||
| 50 | + $n = count($chaves); | ||
| 51 | + for($i = 0; $i < $n; $i++){ | ||
| 52 | + if($chaves[$i] != ""){ | ||
| 53 | + $v = $valores[$i]; | ||
| 54 | + $data = str_replace($chaves[$i],$v,$data); | ||
| 55 | + if($filtro != ""){ | ||
| 56 | + $filtro = str_replace($chaves[$i],$v,$filtro); | ||
| 57 | + } | ||
| 58 | + } | ||
| 59 | + } | ||
| 41 | if($filtro != ""){ | 60 | if($filtro != ""){ |
| 42 | - $filtro = str_replace($chaves[$i],$v,$filtro); | 61 | + $layer->setfilter($filtro); |
| 43 | } | 62 | } |
| 63 | + $data = str_replace("--","",$data); | ||
| 64 | + $layer->set("data",$data); | ||
| 65 | + $layer->set("status",MS_DEFAULT); | ||
| 66 | + $layer->setmetadata("PLUGINI3GEO",""); | ||
| 67 | + $layer->setmetadata("TEMA",$layer->getmetadata("TEMA")." - ".implode(",",$valores)); | ||
| 68 | + $layer->set("name","plugin".nomeRandomico()); | ||
| 69 | + if (connection_aborted()){ | ||
| 70 | + exit(); | ||
| 71 | + } | ||
| 72 | + $salvo = $map->save($map_file); | ||
| 73 | + $retorno = "ok"; | ||
| 44 | } | 74 | } |
| 45 | - if($filtro != ""){ | ||
| 46 | - $layer->setfilter($filtro); | ||
| 47 | - } | ||
| 48 | - $data = str_replace("--","",$data); | ||
| 49 | - $layer->set("data",$data); | ||
| 50 | - $layer->set("status",MS_DEFAULT); | ||
| 51 | - $layer->setmetadata("PLUGINI3GEO",""); | ||
| 52 | - $layer->setmetadata("TEMA",$layer->getmetadata("TEMA")." - ".implode(",",$valores)); | ||
| 53 | - $layer->set("name","plugin".nomeRandomico()); | ||
| 54 | - if (connection_aborted()){ | ||
| 55 | - exit(); | ||
| 56 | - } | ||
| 57 | - $salvo = $map->save($map_file); | ||
| 58 | - $retorno = "ok"; | ||
| 59 | break; | 75 | break; |
| 60 | case "REMOVER": | 76 | case "REMOVER": |
| 61 | $map = ms_newMapObj($map_file); | 77 | $map = ms_newMapObj($map_file); |
temas/teste.map
| @@ -4,7 +4,7 @@ MAP | @@ -4,7 +4,7 @@ MAP | ||
| 4 | LAYER | 4 | LAYER |
| 5 | CONNECTION "teste" | 5 | CONNECTION "teste" |
| 6 | CONNECTIONTYPE POSTGIS | 6 | CONNECTIONTYPE POSTGIS |
| 7 | - DATA "geom from (select * from ambiente.queim2013 WHERE data >= 999 and data <= 20131231 ) as foo using unique gid using srid=4326" | 7 | + DATA "geom from (select * from ambiente.queim2013 WHERE data >= 2013999 and data <= 20131231 ) as foo using unique gid using srid=4326" |
| 8 | METADATA | 8 | METADATA |
| 9 | "METAESTAT_ID_MEDIDA_VARIAVEL" "" | 9 | "METAESTAT_ID_MEDIDA_VARIAVEL" "" |
| 10 | "cache" "nao" | 10 | "cache" "nao" |