From 248e1b6b83d51a93abcf703de6b072538398b0b3 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Thu, 8 Sep 2016 16:29:16 -0300 Subject: [PATCH] Aprimoramento do código do aplicativo recline --- ferramentas/carregamapa/upload.php | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------- json.php | 15 +++++++++++---- 2 files changed, 97 insertions(+), 53 deletions(-) diff --git a/ferramentas/carregamapa/upload.php b/ferramentas/carregamapa/upload.php index 89e0e49..ed7d722 100755 --- a/ferramentas/carregamapa/upload.php +++ b/ferramentas/carregamapa/upload.php @@ -1,18 +1,14 @@ Erro ao enviar o arquivo."; + return; +} +include(dirname(__FILE__)."/../../classesphp/carrega_ext.php"); if(isset($logExec) && $logExec["upload"] == true){ i3GeoLog("prog: carregamapa filename:" . $_FILES['i3GEOcarregamapafilemap']['name'],$dir_tmp); @@ -27,8 +23,7 @@ if(isset($logExec) && $logExec["upload"] == true){

Carregando o arquivo...

"; $dirmap = $dir_tmp; $Arquivo = $_FILES['i3GEOcarregamapafilemap']['name']; @@ -47,8 +42,6 @@ if (isset($_FILES['i3GEOcarregamapafilemap']['name']) && strlen(basename($_FILES if($checkphp == true){ exit; } - $nome = basename($Arquivo); - $arqtemp = $dirmap."/".$Arquivo; $status = move_uploaded_file($_FILES['i3GEOcarregamapafilemap']['tmp_name'],$dirmap."/".$Arquivo); if($status != 1){ echo "

Ocorreu um erro no envio do arquivo"; @@ -57,54 +50,98 @@ if (isset($_FILES['i3GEOcarregamapafilemap']['name']) && strlen(basename($_FILES } if($status == 1){ echo "

Arquivo enviado. Verificando o mapa...

"; - - $mapt = ms_newMapObj($dirmap."/".$Arquivo); $map = ms_newMapObj($map_file); + // + //muda o arquivo de simbolo + // + $s = file_get_contents($dirmap."/".$Arquivo); + $s = "MAP\n SYMBOLSET ".$map->symbolsetfilename."\nFONTSET ".$map->fontsetfilename."\n" . $s; + + $handle = fopen($dirmap."/".$Arquivo, "w"); + fwrite($handle,$s); + fclose($handle); + $mapt = ms_newMapObj($dirmap."/".$Arquivo); + unlink($dirmap."/".$Arquivo); + // //apaga os layers do mapa atual + // $numlayers = $map->numlayers; for ($i=0;$i < $numlayers;$i++) { $layer = $map->getlayer($i); $layer->set("status",MS_DELETE); } $map->save($map_file); - $img = $map->draw(); + // + //copia os layers do mapfile temporario para o mapfile em uso + // $numlayers = $mapt->numlayers; for ($i=0;$i < $numlayers;$i++){ - $layer = $mapt->getlayer($i); - ms_newLayerObj($map, $layer); - $layertemp = $map->getlayerbyname($layer->name); - $st = $layertemp->status; - $layertemp->set("status",MS_DEFAULT); - $testa = $layertemp->draw($img); - $layertemp->set("status",$st); - $layertemp->setmetadata("permitekmz","nao"); - $layertemp->setmetadata("permitedownload","nao"); - $layertemp->setmetadata("download","nao"); - $layertemp->setmetadata("permitekml","nao"); - $layertemp->setmetadata("permiteogc","nao"); - $layertemp->setmetadata("animagif",""); - $layertemp->setmetadata("tme",""); - $layertemp->setmetadata("storymap",""); - $layertemp->setmetadata("editorsql","nao"); - $layertemp->setmetadata("EDITAVEL","nao"); - $layertemp->setmetadata("PLUGINI3GEO",""); - $layertemp->setmetadata("arquivodownload",""); - if ($testa == 1){ - echo "

Problemas em ".($layer->name).". Removido.


"; - $layertemp->set("status",MS_DELETE); + $layert = $mapt->getlayer($i); + // + //verifica se existe o tema em i3geo/temas + // + $arqoriginal = ""; + if(file_exists($locaplic."/temas/".$layert->name.".map")){ + $nomeoriginal = $layert->name; + $arqoriginal = $locaplic."/temas/".$layert->name.".map"; + } elseif (file_exists($locaplic."/temas/".$layert->getmetadata("nomeoriginal").".map")){ + $nomeoriginal = $layert->getmetadata("nomeoriginal"); + $arqoriginal = $locaplic."/temas/".$layert->getmetadata("nomeoriginal").".map"; + } + if($arqoriginal != ""){ + // + //o tema existe + // + $mapo = ms_newMapObj($arqoriginal); + $layero = $mapo->getlayerbyname($nomeoriginal); + $layero->setmetadata("cache","nao"); + // + //remove as classes do layer original + // + $nclasses = $layero->numclasses; + if ($nclasses > 0){ + for ($j=0; $j < $nclasses; ++$j){ + $classe = $layero->getClass($j); + $classe->set("status",MS_DELETE); + } + } + // + //copia as classes do layer do upload para o original + // + $nclasses = $layert->numclasses; + if ($nclasses > 0){ + for ($j=0; $j < $nclasses; ++$j){ + $classe = $layert->getClass($j); + //adiciona a classe no original + ms_newClassObj($layero, $classe); + } + } + // + //ajusta parametros que o usuario pode ter modificado + // + if($layert->status == 2){ + $layero->set("status",MS_DEFAULT); + } + else{ + $layero->set("status",MS_OFF); + } + + $layero->set("opacity",$layert->opacity); + $layero->setmetadata("TEMA",$layert->getmetadata("TEMA")); + // + //adiciona o layer ao mapa atual + // + ms_newLayerObj($map,$layero); + } elseif($layert->connectiontype == MS_INLINE || $layert->connectiontype == MS_WMS || $layert->connectiontype == MS_GRATICULE){ + ms_newLayerObj($map,$layert); } } - $map->setmetadata("CUSTOMIZACOESINIT",""); $map->save($map_file); - restauraCon($map_file,$postgis_mapa); - unlink($dirmap."/".$Arquivo); - $e = $mapt->extent; - $extatual = $e->minx." ".$e->miny." ".$e->maxx." ".$e->maxy; + validaAcessoTemas($map_file); echo "

Ok. redesenhando."; echo ""; - echo ""; - + //echo ""; } else{ echo "

Erro ao enviar o arquivo."; diff --git a/json.php b/json.php index fe48c1d..98218f1 100755 --- a/json.php +++ b/json.php @@ -92,9 +92,9 @@ $base = str_replace(".map","",$base).".map"; $testemap = @ms_newMapobj($base); if(!$testemap){ exit; +} else { + $testemap->save($nomeMapfileTmp); } - -copy($base,$nomeMapfileTmp); $tema = $_GET["tema"]; $oMap = ms_newMapobj($nomeMapfileTmp); $nmap = ms_newMapobj($locaplic."/temas/".$tema.".map"); @@ -440,7 +440,7 @@ function processaPluginI3geo(){ $plugin[] = $temp[0]; } elseif ($c["prog"] != ""){ - $plugin[] = execProg($locaplic."/".$c["prog"]); + $plugin[] = execProg($c["prog"]); } } } @@ -467,9 +467,16 @@ function processaPluginI3geo(){ } //utilizada para obter os dados default quando se utiliza o plugin parametrossql function execProg($prog){ - include($prog); //$retorno variavel deve ser retornada pelo programa $prog //veja como exemplo i3geo/aplicmap/daods/listaano.php + global $urli3geo; + $handle = curl_init(); + curl_setopt( $handle, CURLOPT_URL, $urli3geo."/".$prog); + curl_setopt( $handle, CURLOPT_HEADER, false ); + curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); + $str = curl_exec( $handle ); + curl_close( $handle ); + $retorno = json_decode($str,true); return $retorno[0]["v"]; } function converteenc($texto){ -- libgit2 0.21.2