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 13 */
14 14 case "APLICAR":
15 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 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 92 break;
75 93 case "REMOVER":
... ...