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 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 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 13 if(isset($logExec) && $logExec["upload"] == true){
18 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 23 <body bgcolor="white" style="background-color:white">
28 24 <p>
29 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 27 echo "<p class='paragrafo' >Carregando o arquivo...</p>";
33 28 $dirmap = $dir_tmp;
34 29 $Arquivo = $_FILES['i3GEOcarregamapafilemap']['name'];
... ... @@ -47,8 +42,6 @@ if (isset($_FILES[&#39;i3GEOcarregamapafilemap&#39;][&#39;name&#39;]) &amp;&amp; strlen(basename($_FILES
47 42 if($checkphp == true){
48 43 exit;
49 44 }
50   - $nome = basename($Arquivo);
51   - $arqtemp = $dirmap."/".$Arquivo;
52 45 $status = move_uploaded_file($_FILES['i3GEOcarregamapafilemap']['tmp_name'],$dirmap."/".$Arquivo);
53 46 if($status != 1){
54 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 50 }
58 51 if($status == 1){
59 52 echo "<p class='paragrafo' >Arquivo enviado. Verificando o mapa...</p>";
60   -
61   - $mapt = ms_newMapObj($dirmap."/".$Arquivo);
62 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 67 //apaga os layers do mapa atual
  68 + //
65 69 $numlayers = $map->numlayers;
66 70 for ($i=0;$i < $numlayers;$i++) {
67 71 $layer = $map->getlayer($i);
68 72 $layer->set("status",MS_DELETE);
69 73 }
70 74 $map->save($map_file);
71   - $img = $map->draw();
  75 + //
  76 + //copia os layers do mapfile temporario para o mapfile em uso
  77 + //
72 78 $numlayers = $mapt->numlayers;
73 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 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 142 echo "<p class='paragrafo' >Ok. redesenhando.";
105 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 146 else{
110 147 echo "<p class='paragrafo' >Erro ao enviar o arquivo.";
... ...
json.php
... ... @@ -92,9 +92,9 @@ $base = str_replace(&quot;.map&quot;,&quot;&quot;,$base).&quot;.map&quot;;
92 92 $testemap = @ms_newMapobj($base);
93 93 if(!$testemap){
94 94 exit;
  95 +} else {
  96 + $testemap->save($nomeMapfileTmp);
95 97 }
96   -
97   -copy($base,$nomeMapfileTmp);
98 98 $tema = $_GET["tema"];
99 99 $oMap = ms_newMapobj($nomeMapfileTmp);
100 100 $nmap = ms_newMapobj($locaplic."/temas/".$tema.".map");
... ... @@ -440,7 +440,7 @@ function processaPluginI3geo(){
440 440 $plugin[] = $temp[0];
441 441 }
442 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 467 }
468 468 //utilizada para obter os dados default quando se utiliza o plugin parametrossql
469 469 function execProg($prog){
470   - include($prog);
471 470 //$retorno variavel deve ser retornada pelo programa $prog
472 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 480 return $retorno[0]["v"];
474 481 }
475 482 function converteenc($texto){
... ...