Commit 0bf40aa3bc98f1572e5fcc8109cfc889dd5be4d6

Authored by Edmar Moretti
1 parent 97c797b3

--no commit message

Showing 1 changed file with 68 additions and 50 deletions   Show diff stats
ferramentas/parametrossql/exec.php
@@ -13,63 +13,81 @@ Aplica a substituicao de chaves pelos valores enviados @@ -13,63 +13,81 @@ Aplica a substituicao de chaves pelos valores enviados
13 */ 13 */
14 case "APLICAR": 14 case "APLICAR":
15 $map = ms_newMapObj($map_file); 15 $map = ms_newMapObj($map_file);
16 - $layer = $map->getlayerbyname($tema);  
17 - $data = $layer->data;  
18 - //pega as chaves do proprio mapfile  
19 - $c = $layer->getmetadata("PLUGINI3GEO");  
20 - if($c == ""){  
21 - $retorno = "erro";  
22 - }  
23 - else{  
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"); 16 + //pega o layer
  17 + $nomeLayer = "";
  18 + $c = $map->numlayers;
  19 + for ($i=0;$i < $c;++$i){
  20 + $layer = $map->getlayer($i);
  21 + if($layer->name == $tema){
  22 + $nomeLayer = $tema;
  23 + break;
35 } 24 }
36 - else{  
37 - $layer->setmetadata("DATAORIGINAL",$data); 25 + elseif($tema == $layer->getmetadata("nomeoriginal")){
  26 + $nomeLayer = $layer->name;
38 } 27 }
39 - $filtro = $layer->getFilterString();  
40 - if($layer->getmetadata("FILTROORIGINAL") != ""){  
41 - $filtro = $layer->getmetadata("FILTROORIGINAL"); 28 + }
  29 + if($nomeLayer == ""){
  30 + $retorno = "layer nao encontrado";
  31 + }
  32 + else{
  33 + $layer = $map->getlayerbyname($nomeLayer);
  34 + $data = $layer->data;
  35 + //pega as chaves do proprio mapfile
  36 + $c = $layer->getmetadata("PLUGINI3GEO");
  37 + if($c == ""){
  38 + $retorno = "erro";
42 } 39 }
43 else{ 40 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); 41 + $cs = json_decode($c,true);
  42 + $cs = $cs["parametros"];
  43 + $chaves = array();
  44 + foreach($cs as $c){
  45 + $chaves[] = $c["chave"];
  46 + }
  47 + $chaves = implode(",",$chaves);
  48 + //verifica se o layer ja teve os parametros substituidos anteriormente
  49 + //nesse caso, o data he obtido do metadata que guarda o valor original
  50 + if($layer->getmetadata("DATAORIGINAL") != ""){
  51 + $data = $layer->getmetadata("DATAORIGINAL");
  52 + }
  53 + else{
  54 + $layer->setmetadata("DATAORIGINAL",$data);
  55 + }
  56 + $filtro = $layer->getFilterString();
  57 + if($layer->getmetadata("FILTROORIGINAL") != ""){
  58 + $filtro = $layer->getmetadata("FILTROORIGINAL");
  59 + }
  60 + else{
  61 + $layer->setmetadata("FILTROORIGINAL",$filtro);
  62 + }
  63 + $chaves = str_ireplace(array("and", "or", "select","from","where","update","delete","insert","--"),"",$chaves);
  64 + $chaves = explode(",",$chaves);
  65 + $valores = str_ireplace(array("and", "or", "select","from","where","update","delete","insert","--"),"",$valores);
  66 + $valores = explode(",",strip_tags($valores));
  67 + $n = count($chaves);
  68 + for($i = 0; $i < $n; $i++){
  69 + if($chaves[$i] != ""){
  70 + $v = $valores[$i];
  71 + $data = str_replace($chaves[$i],$v,$data);
  72 + if($filtro != ""){
  73 + $filtro = str_replace($chaves[$i],$v,$filtro);
  74 + }
57 } 75 }
58 } 76 }
  77 + if($filtro != ""){
  78 + $layer->setfilter($filtro);
  79 + }
  80 + $layer->set("data",$data);
  81 + $layer->set("status",MS_DEFAULT);
  82 + $layer->setmetadata("PLUGINI3GEO","");
  83 + $layer->setmetadata("TEMA",$layer->getmetadata("TEMA")." - ".implode(",",$valores));
  84 + $layer->set("name","plugin".nomeRandomico());
  85 + if (connection_aborted()){
  86 + exit();
  87 + }
  88 + $salvo = $map->save($map_file);
  89 + $retorno = "ok";
59 } 90 }
60 - if($filtro != ""){  
61 - $layer->setfilter($filtro);  
62 - }  
63 - $layer->set("data",$data);  
64 - $layer->set("status",MS_DEFAULT);  
65 - $layer->setmetadata("PLUGINI3GEO","");  
66 - $layer->setmetadata("TEMA",$layer->getmetadata("TEMA")." - ".implode(",",$valores));  
67 - $layer->set("name","plugin".nomeRandomico());  
68 - if (connection_aborted()){  
69 - exit();  
70 - }  
71 - $salvo = $map->save($map_file);  
72 - $retorno = "ok";  
73 } 91 }
74 break; 92 break;
75 case "REMOVER": 93 case "REMOVER":