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,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"