Commit 0bf40aa3bc98f1572e5fcc8109cfc889dd5be4d6
1 parent
97c797b3
Exists in
master
and in
7 other branches
--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": | ... | ... |