Commit 461945f9de4f555cb55ce72c29377a88bc92b530

Authored by Edmar Moretti
1 parent 59f1a387

--no commit message

ferramentas/parametrossql/exec.php
... ... @@ -15,47 +15,63 @@ Aplica a substituicao de chaves pelos valores enviados
15 15 $map = ms_newMapObj($map_file);
16 16 $layer = $map->getlayerbyname($tema);
17 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 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 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 75 break;
60 76 case "REMOVER":
61 77 $map = ms_newMapObj($map_file);
... ...
temas/teste.map
... ... @@ -4,7 +4,7 @@ MAP
4 4 LAYER
5 5 CONNECTION "teste"
6 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 8 METADATA
9 9 "METAESTAT_ID_MEDIDA_VARIAVEL" ""
10 10 "cache" "nao"
... ...