From 6aef2a2350a6987ae5b864affd571b2be47e075d Mon Sep 17 00:00:00 2001 From: edmarmoretti Date: Wed, 26 Jul 2017 14:03:38 -0300 Subject: [PATCH] Inclusão de rotina para remoção de cache quando um mapfile é salvo via editor de mapfiles ou via edição com i3Geo --- admin/admin.db | Bin 340992 -> 0 bytes admin/php/editormapfile.php | 15 +++++++++++---- admin1/catalogo/mapfile/editor/funcoes.php | 3 +++ admin1/index.php | 2 ++ admin1/php/funcoesAdmin.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ temas/_lbiomashp.map | 26 +++++++++----------------- 6 files changed, 75 insertions(+), 21 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 476e89f..6f7f6ac 100755 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/php/editormapfile.php b/admin/php/editormapfile.php index 0f8b3dd..3624f03 100755 --- a/admin/php/editormapfile.php +++ b/admin/php/editormapfile.php @@ -1159,7 +1159,7 @@ function clonarMapfile() } function refazerLayer() { - global $nomelayer, $codigomap, $locaplic; + global $nomelayer, $codigomap, $locaplic, $dir_tmp, $cachedir; $maporigem = $_GET["maporigem"]; @@ -1210,6 +1210,11 @@ function refazerLayer() } $mapatema->save($arqtema); removeCabecalho($arqtema); + //apaga o cache + include($locaplic."/admin1/php/funcoesAdmin.php"); + \admin\php\funcoesAdmin\limpaCacheImg($locaplic, $codigomap, $cachedir, $dir_tmp); + + return array("data"=>"ok"); } return "erro"; @@ -2500,9 +2505,11 @@ function removeCabecalho($arq,$symbolset=true) //remove o cache OGC $nomeMapfileTmp = $dir_tmp."/ogc_".md5($arq).".map"; $nomeMapfileTmp = str_replace(",","",$nomeMapfileTmp); - $nomeMapfileTmp = str_replace(" ","",$nomeMapfileTmp); - chmod($nomeMapfileTmp,0777); - unlink($nomeMapfileTmp); + $nomeMapfileTmp = str_replace(" ","",$nomeMapfileTmp); + if(file_exists($nomeMapfileTmp)){ + chmod($nomeMapfileTmp,0777); + unlink($nomeMapfileTmp); + } //echo $nomeMapfileTmp;exit; //remove o cache OGC $handle = fopen($arq, "r"); diff --git a/admin1/catalogo/mapfile/editor/funcoes.php b/admin1/catalogo/mapfile/editor/funcoes.php index 73588f4..4a7a2e3 100755 --- a/admin1/catalogo/mapfile/editor/funcoes.php +++ b/admin1/catalogo/mapfile/editor/funcoes.php @@ -217,6 +217,9 @@ function salvaMapfile() { } $resultado = \admin\php\funcoesAdmin\i3GeoAdminUpdate ( $dbhw, "i3geoadmin_temas", $dataCol, "WHERE codigo_tema = '$codigo'" ); } + \admin\php\funcoesAdmin\removeCabecalhoMapfile ( $mapfile ); + \admin\php\funcoesAdmin\limpaCacheImg($locaplic, $codigo, $_SESSION["cachedir"], $_SESSION["dir_tmp"]); + } ?> \ No newline at end of file diff --git a/admin1/index.php b/admin1/index.php index b43542f..f0c3d5f 100755 --- a/admin1/index.php +++ b/admin1/index.php @@ -42,6 +42,8 @@ $_SESSION["logTransacoes"] = $logTransacoes; unset($logTransacoes); $_SESSION["dir_tmp"] = $dir_tmp; unset($dir_tmp); +$_SESSION["cachedir"] = $cachedir; +unset($cachedir); $_SESSION["mensagemInicia"] = $mensagemInicia; unset($mensagemInicia); $_SESSION["i3geoPermiteLoginIp"] = $i3geoPermiteLoginIp; diff --git a/admin1/php/funcoesAdmin.php b/admin1/php/funcoesAdmin.php index 7c069a8..8024184 100755 --- a/admin1/php/funcoesAdmin.php +++ b/admin1/php/funcoesAdmin.php @@ -830,4 +830,54 @@ function fileContemString($arq,$s){ fclose($handle); return $valid; } +function limpaCacheImg($locaplic, $codigo, $cachedir, $dir_tmp){ + if(empty($dir_tmp)){ + return false; + } + $mapfile = $locaplic . "/temas/" . $codigo . ".map"; + if (! file_exists ( $mapfile )) { + return false; + } + $mapa = ms_newMapObj ( $mapfile ); + $nomes = $mapa->getalllayernames (); + if ($cachedir != "") { + $d = $cachedir; + } else { + $d = $dir_tmp . "/cache"; + } + foreach ( $nomes as $nome ) { + $nome = str_replace ( ".", "", $nome ); + $nome = strip_tags ( $nome ); + $nome = htmlspecialchars ( $nome, ENT_QUOTES ); + $dirs [] = $d . "/" . $nome; + $dirs [] = $d . "/googlemaps/" . $nome; + $dirs [] = $d . "/wmts/" . $nome; + foreach ( $dirs as $dir ) { + \admin\php\funcoesAdmin\rrmdirImg ( $dir ); + } + } + $nome = $nomes[0]; + if(file_exists($d . "/" . $nome) || file_exists($d . "/googlemaps/" . $nome) || file_exists($d . "/wmts/" . $nome)){ + return false; + } else { + return true; + } +} +function rrmdirImg($dir) { + if (is_dir ( $dir )) { + $objects = scandir ( $dir ); + foreach ( $objects as $object ) { + if ($object != "." && $object != "..") { + if (filetype ( $dir . "/" . $object ) == "dir") { + \admin\php\funcoesAdmin\rrmdirImg ( $dir . "/" . $object ); + } else { + $object = str_replace ( ".png", "", $object ) . ".png"; + chmod ( $dir . "/" . $object, 077 ); + unlink ( $dir . "/" . $object ); + } + } + } + reset ( $objects ); + } +} ?> diff --git a/temas/_lbiomashp.map b/temas/_lbiomashp.map index df8c37a..b6e31ba 100755 --- a/temas/_lbiomashp.map +++ b/temas/_lbiomashp.map @@ -3,23 +3,19 @@ MAP SYMBOLSET "../symbols/simbolosv6.sym" LAYER CONNECTION "" - DATA "biomas.shp" + DATA "/var/www/i3geo/aplicmap/dados/biomas.shp" METADATA - "METAESTAT_ID_MEDIDA_VARIAVEL" "" - "cache" "nao" "TIP" "CD_LEGENDA" + "cache" "sim" "olopacity" "" "CLASSE" "sim" "permitekmz" "SIM" - "temporizador" "" "gmopacity" "" "gmstatus" "" "ITENSDESC" "Teste de acentuação" - "iconetema" "" - "editavel" "" - "ESCALA" "250000" "TILES" "SIM" - "METAESTAT_CODIGO_TIPO_REGIAO" "" + "ESCALA" "250000" + "editavel" "" "arquivotemaoriginal" "" "extensao" "-73.990940816816 -33.74827031115 -34.822855820777 5.272224303909" "olstatus" "" @@ -29,22 +25,18 @@ MAP "permitecomentario" "NAO" "DATAORIGINAL" "" "PLUGINI3GEO" "" - "metaestat" "" "escondido" "NAO" - "esquematabelaeditavel" "" "download" "SIM" + "esquematabelaeditavel" "" "itembuscarapida" "CD_LEGENDA" - "arquivokmz" "" - "arquivodownload" "" "ITENS" "CD_LEGENDA" - "transitioneffect" "NAO" - "permiteogc" "SIM" "permitekml" "SIM" - "TEMA" "Biomas shapefile (acentuação)" + "permiteogc" "SIM" + "transitioneffect" "NAO" "convcaracter" "SIM" - "colunageometria" "" + "TEMA" "Biomas shapefile (acentuação)" "colunaidunico" "" - "cortepixels" "" + "colunageometria" "" "identifica" "sim" "tabelaeditavel" "" END # METADATA -- libgit2 0.21.2