Commit 248e1b6b83d51a93abcf703de6b072538398b0b3

Authored by Edmar Moretti
1 parent fa05a6a1
Exists in master

Aprimoramento do código do aplicativo recline

Showing 2 changed files with 97 additions and 53 deletions   Show diff stats
ferramentas/carregamapa/upload.php
1 <?php 1 <?php
2 -exit;  
3 -require_once(dirname(__FILE__)."/../../classesphp/pega_variaveis.php");  
4 -require_once(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php");  
5 -include_once (dirname(__FILE__)."/../../classesphp/carrega_ext.php");  
6 -session_name("i3GeoPHP");  
7 -if (isset($g_sid)){  
8 - session_id($g_sid);  
9 -}  
10 -session_start();  
11 -$map_file = $_SESSION["map_file"];  
12 -$postgis_mapa = $_SESSION["postgis_mapa"];  
13 -require_once (dirname(__FILE__)."/../../ms_configura.php");  
14 -include("../blacklist.php"); 2 +include(dirname(__FILE__)."/../safe.php");
15 verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false); 3 verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false);
  4 +//
  5 +//o usuario deve ter entrado pelo i3Geo
  6 +//
  7 +if(empty($fingerprint)){
  8 + echo "<p class='paragrafo' >Erro ao enviar o arquivo.";
  9 + return;
  10 +}
  11 +include(dirname(__FILE__)."/../../classesphp/carrega_ext.php");
16 12
17 if(isset($logExec) && $logExec["upload"] == true){ 13 if(isset($logExec) && $logExec["upload"] == true){
18 i3GeoLog("prog: carregamapa filename:" . $_FILES['i3GEOcarregamapafilemap']['name'],$dir_tmp); 14 i3GeoLog("prog: carregamapa filename:" . $_FILES['i3GEOcarregamapafilemap']['name'],$dir_tmp);
@@ -27,8 +23,7 @@ if(isset($logExec) &amp;&amp; $logExec[&quot;upload&quot;] == true){ @@ -27,8 +23,7 @@ if(isset($logExec) &amp;&amp; $logExec[&quot;upload&quot;] == true){
27 <body bgcolor="white" style="background-color:white"> 23 <body bgcolor="white" style="background-color:white">
28 <p> 24 <p>
29 <?php 25 <?php
30 -if (isset($_FILES['i3GEOcarregamapafilemap']['name']) && strlen(basename($_FILES['i3GEOcarregamapafilemap']['name'])) < 200)  
31 -{ 26 +if (isset($_FILES['i3GEOcarregamapafilemap']['name']) && strlen(basename($_FILES['i3GEOcarregamapafilemap']['name'])) < 200){
32 echo "<p class='paragrafo' >Carregando o arquivo...</p>"; 27 echo "<p class='paragrafo' >Carregando o arquivo...</p>";
33 $dirmap = $dir_tmp; 28 $dirmap = $dir_tmp;
34 $Arquivo = $_FILES['i3GEOcarregamapafilemap']['name']; 29 $Arquivo = $_FILES['i3GEOcarregamapafilemap']['name'];
@@ -47,8 +42,6 @@ if (isset($_FILES[&#39;i3GEOcarregamapafilemap&#39;][&#39;name&#39;]) &amp;&amp; strlen(basename($_FILES @@ -47,8 +42,6 @@ if (isset($_FILES[&#39;i3GEOcarregamapafilemap&#39;][&#39;name&#39;]) &amp;&amp; strlen(basename($_FILES
47 if($checkphp == true){ 42 if($checkphp == true){
48 exit; 43 exit;
49 } 44 }
50 - $nome = basename($Arquivo);  
51 - $arqtemp = $dirmap."/".$Arquivo;  
52 $status = move_uploaded_file($_FILES['i3GEOcarregamapafilemap']['tmp_name'],$dirmap."/".$Arquivo); 45 $status = move_uploaded_file($_FILES['i3GEOcarregamapafilemap']['tmp_name'],$dirmap."/".$Arquivo);
53 if($status != 1){ 46 if($status != 1){
54 echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo"; 47 echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo";
@@ -57,54 +50,98 @@ if (isset($_FILES[&#39;i3GEOcarregamapafilemap&#39;][&#39;name&#39;]) &amp;&amp; strlen(basename($_FILES @@ -57,54 +50,98 @@ if (isset($_FILES[&#39;i3GEOcarregamapafilemap&#39;][&#39;name&#39;]) &amp;&amp; strlen(basename($_FILES
57 } 50 }
58 if($status == 1){ 51 if($status == 1){
59 echo "<p class='paragrafo' >Arquivo enviado. Verificando o mapa...</p>"; 52 echo "<p class='paragrafo' >Arquivo enviado. Verificando o mapa...</p>";
60 -  
61 - $mapt = ms_newMapObj($dirmap."/".$Arquivo);  
62 $map = ms_newMapObj($map_file); 53 $map = ms_newMapObj($map_file);
  54 + //
  55 + //muda o arquivo de simbolo
  56 + //
  57 + $s = file_get_contents($dirmap."/".$Arquivo);
  58 + $s = "MAP\n SYMBOLSET ".$map->symbolsetfilename."\nFONTSET ".$map->fontsetfilename."\n" . $s;
  59 +
  60 + $handle = fopen($dirmap."/".$Arquivo, "w");
  61 + fwrite($handle,$s);
  62 + fclose($handle);
63 63
  64 + $mapt = ms_newMapObj($dirmap."/".$Arquivo);
  65 + unlink($dirmap."/".$Arquivo);
  66 + //
64 //apaga os layers do mapa atual 67 //apaga os layers do mapa atual
  68 + //
65 $numlayers = $map->numlayers; 69 $numlayers = $map->numlayers;
66 for ($i=0;$i < $numlayers;$i++) { 70 for ($i=0;$i < $numlayers;$i++) {
67 $layer = $map->getlayer($i); 71 $layer = $map->getlayer($i);
68 $layer->set("status",MS_DELETE); 72 $layer->set("status",MS_DELETE);
69 } 73 }
70 $map->save($map_file); 74 $map->save($map_file);
71 - $img = $map->draw(); 75 + //
  76 + //copia os layers do mapfile temporario para o mapfile em uso
  77 + //
72 $numlayers = $mapt->numlayers; 78 $numlayers = $mapt->numlayers;
73 for ($i=0;$i < $numlayers;$i++){ 79 for ($i=0;$i < $numlayers;$i++){
74 - $layer = $mapt->getlayer($i);  
75 - ms_newLayerObj($map, $layer);  
76 - $layertemp = $map->getlayerbyname($layer->name);  
77 - $st = $layertemp->status;  
78 - $layertemp->set("status",MS_DEFAULT);  
79 - $testa = $layertemp->draw($img);  
80 - $layertemp->set("status",$st);  
81 - $layertemp->setmetadata("permitekmz","nao");  
82 - $layertemp->setmetadata("permitedownload","nao");  
83 - $layertemp->setmetadata("download","nao");  
84 - $layertemp->setmetadata("permitekml","nao");  
85 - $layertemp->setmetadata("permiteogc","nao");  
86 - $layertemp->setmetadata("animagif","");  
87 - $layertemp->setmetadata("tme","");  
88 - $layertemp->setmetadata("storymap","");  
89 - $layertemp->setmetadata("editorsql","nao");  
90 - $layertemp->setmetadata("EDITAVEL","nao");  
91 - $layertemp->setmetadata("PLUGINI3GEO","");  
92 - $layertemp->setmetadata("arquivodownload","");  
93 - if ($testa == 1){  
94 - echo "<p class='paragrafo' >Problemas em ".($layer->name).". Removido.</p><br>";  
95 - $layertemp->set("status",MS_DELETE); 80 + $layert = $mapt->getlayer($i);
  81 + //
  82 + //verifica se existe o tema em i3geo/temas
  83 + //
  84 + $arqoriginal = "";
  85 + if(file_exists($locaplic."/temas/".$layert->name.".map")){
  86 + $nomeoriginal = $layert->name;
  87 + $arqoriginal = $locaplic."/temas/".$layert->name.".map";
  88 + } elseif (file_exists($locaplic."/temas/".$layert->getmetadata("nomeoriginal").".map")){
  89 + $nomeoriginal = $layert->getmetadata("nomeoriginal");
  90 + $arqoriginal = $locaplic."/temas/".$layert->getmetadata("nomeoriginal").".map";
  91 + }
  92 + if($arqoriginal != ""){
  93 + //
  94 + //o tema existe
  95 + //
  96 + $mapo = ms_newMapObj($arqoriginal);
  97 + $layero = $mapo->getlayerbyname($nomeoriginal);
  98 + $layero->setmetadata("cache","nao");
  99 + //
  100 + //remove as classes do layer original
  101 + //
  102 + $nclasses = $layero->numclasses;
  103 + if ($nclasses > 0){
  104 + for ($j=0; $j < $nclasses; ++$j){
  105 + $classe = $layero->getClass($j);
  106 + $classe->set("status",MS_DELETE);
  107 + }
  108 + }
  109 + //
  110 + //copia as classes do layer do upload para o original
  111 + //
  112 + $nclasses = $layert->numclasses;
  113 + if ($nclasses > 0){
  114 + for ($j=0; $j < $nclasses; ++$j){
  115 + $classe = $layert->getClass($j);
  116 + //adiciona a classe no original
  117 + ms_newClassObj($layero, $classe);
  118 + }
  119 + }
  120 + //
  121 + //ajusta parametros que o usuario pode ter modificado
  122 + //
  123 + if($layert->status == 2){
  124 + $layero->set("status",MS_DEFAULT);
  125 + }
  126 + else{
  127 + $layero->set("status",MS_OFF);
  128 + }
  129 +
  130 + $layero->set("opacity",$layert->opacity);
  131 + $layero->setmetadata("TEMA",$layert->getmetadata("TEMA"));
  132 + //
  133 + //adiciona o layer ao mapa atual
  134 + //
  135 + ms_newLayerObj($map,$layero);
  136 + } elseif($layert->connectiontype == MS_INLINE || $layert->connectiontype == MS_WMS || $layert->connectiontype == MS_GRATICULE){
  137 + ms_newLayerObj($map,$layert);
96 } 138 }
97 } 139 }
98 - $map->setmetadata("CUSTOMIZACOESINIT","");  
99 $map->save($map_file); 140 $map->save($map_file);
100 - restauraCon($map_file,$postgis_mapa);  
101 - unlink($dirmap."/".$Arquivo);  
102 - $e = $mapt->extent;  
103 - $extatual = $e->minx." ".$e->miny." ".$e->maxx." ".$e->maxy; 141 + validaAcessoTemas($map_file);
104 echo "<p class='paragrafo' >Ok. redesenhando."; 142 echo "<p class='paragrafo' >Ok. redesenhando.";
105 echo "<script>window.parent.i3GEO.atualiza();</script>"; 143 echo "<script>window.parent.i3GEO.atualiza();</script>";
106 - echo "<script>window.parent.i3GEO.navega.zoomExt(window.parent.i3GEO.configura.locaplic,window.parent.i3GEO.configura.sid,'nenhum','".$extatual."');</script>";  
107 - 144 + //echo "<script>window.parent.i3GEO.navega.zoomExt(window.parent.i3GEO.configura.locaplic,window.parent.i3GEO.configura.sid,'nenhum','".$extatual."');</script>";
108 } 145 }
109 else{ 146 else{
110 echo "<p class='paragrafo' >Erro ao enviar o arquivo."; 147 echo "<p class='paragrafo' >Erro ao enviar o arquivo.";
@@ -92,9 +92,9 @@ $base = str_replace(&quot;.map&quot;,&quot;&quot;,$base).&quot;.map&quot;; @@ -92,9 +92,9 @@ $base = str_replace(&quot;.map&quot;,&quot;&quot;,$base).&quot;.map&quot;;
92 $testemap = @ms_newMapobj($base); 92 $testemap = @ms_newMapobj($base);
93 if(!$testemap){ 93 if(!$testemap){
94 exit; 94 exit;
  95 +} else {
  96 + $testemap->save($nomeMapfileTmp);
95 } 97 }
96 -  
97 -copy($base,$nomeMapfileTmp);  
98 $tema = $_GET["tema"]; 98 $tema = $_GET["tema"];
99 $oMap = ms_newMapobj($nomeMapfileTmp); 99 $oMap = ms_newMapobj($nomeMapfileTmp);
100 $nmap = ms_newMapobj($locaplic."/temas/".$tema.".map"); 100 $nmap = ms_newMapobj($locaplic."/temas/".$tema.".map");
@@ -440,7 +440,7 @@ function processaPluginI3geo(){ @@ -440,7 +440,7 @@ function processaPluginI3geo(){
440 $plugin[] = $temp[0]; 440 $plugin[] = $temp[0];
441 } 441 }
442 elseif ($c["prog"] != ""){ 442 elseif ($c["prog"] != ""){
443 - $plugin[] = execProg($locaplic."/".$c["prog"]); 443 + $plugin[] = execProg($c["prog"]);
444 } 444 }
445 } 445 }
446 } 446 }
@@ -467,9 +467,16 @@ function processaPluginI3geo(){ @@ -467,9 +467,16 @@ function processaPluginI3geo(){
467 } 467 }
468 //utilizada para obter os dados default quando se utiliza o plugin parametrossql 468 //utilizada para obter os dados default quando se utiliza o plugin parametrossql
469 function execProg($prog){ 469 function execProg($prog){
470 - include($prog);  
471 //$retorno variavel deve ser retornada pelo programa $prog 470 //$retorno variavel deve ser retornada pelo programa $prog
472 //veja como exemplo i3geo/aplicmap/daods/listaano.php 471 //veja como exemplo i3geo/aplicmap/daods/listaano.php
  472 + global $urli3geo;
  473 + $handle = curl_init();
  474 + curl_setopt( $handle, CURLOPT_URL, $urli3geo."/".$prog);
  475 + curl_setopt( $handle, CURLOPT_HEADER, false );
  476 + curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
  477 + $str = curl_exec( $handle );
  478 + curl_close( $handle );
  479 + $retorno = json_decode($str,true);
473 return $retorno[0]["v"]; 480 return $retorno[0]["v"];
474 } 481 }
475 function converteenc($texto){ 482 function converteenc($texto){