Commit 429d657e97ebc9d3a1ac5bba98d7a13f3ce5d2cb
1 parent
6f5adab9
Exists in
master
and in
7 other branches
Inclusão de opção para atualizar ou criar a miniatura de um tema no sistema de administração
Showing
7 changed files
with
151 additions
and
66 deletions
Show diff stats
admin/js/listatemas.js
| ... | ... | @@ -109,11 +109,32 @@ function montaDivTemas(i) |
| 109 | 109 | ins += "<p>Permite acesso via kmz (kml com dados vetoriais)?<br>" |
| 110 | 110 | ins += "<select id='kmz_tema' >" |
| 111 | 111 | ins += core_combosimnao(i.kmz_tema) |
| 112 | - ins += "</select></p><br><br><br>" | |
| 112 | + ins += "</select></p>" | |
| 113 | + | |
| 114 | + ins += "<p><span onclick='atualizaMiniatura()' style='color:blue;cursor:pointer' >Atualiza ou cria a miniatura</span><br>"; | |
| 115 | + ins += "<img id='imagemMiniatura' src='../../temas/miniaturas/"+i.imagem+"' /></p><br><br>"; | |
| 116 | + | |
| 113 | 117 | |
| 114 | 118 | ins += "<input type=hidden id=codigo_tema value='"+i.codigo_tema+"'/>" |
| 115 | 119 | return(ins) |
| 116 | 120 | } |
| 121 | +function atualizaMiniatura(){ | |
| 122 | + $i("imagemMiniatura").src = "../../imagens/aguarde.gif"; | |
| 123 | + var tema = $i("codigo_tema").value; | |
| 124 | + var sUrl = "../php/menutemas.php?funcao=atualizaMiniatura&tema="+tema; | |
| 125 | + var callback = | |
| 126 | + { | |
| 127 | + success:function(o) | |
| 128 | + { | |
| 129 | + try | |
| 130 | + {$i("imagemMiniatura").src = "../../temas/miniaturas/"+tema+".map.grande.png";} | |
| 131 | + catch(e){core_handleFailure(e,o.responseText);} | |
| 132 | + }, | |
| 133 | + failure:core_handleFailure, | |
| 134 | + argument: { foo:"foo", bar:"bar" } | |
| 135 | + }; | |
| 136 | + core_makeRequest(sUrl,callback,"GET") | |
| 137 | +} | |
| 117 | 138 | function gravaDadosTema(id) |
| 118 | 139 | { |
| 119 | 140 | //validacao | ... | ... |
admin/php/menutemas.php
| ... | ... | @@ -60,12 +60,6 @@ switch (strtoupper($funcao)) |
| 60 | 60 | retornaJSON(verificaEditores($editores)); |
| 61 | 61 | exit; |
| 62 | 62 | break; |
| 63 | - case "IMPORTARXMLMENU": | |
| 64 | - if(verificaEditores($editores) == "nao") | |
| 65 | - {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} | |
| 66 | - retornaJSON(importarXmlMenu()); | |
| 67 | - exit; | |
| 68 | - break; | |
| 69 | 63 | /* |
| 70 | 64 | Valor: PEGAMENUS |
| 71 | 65 | |
| ... | ... | @@ -364,6 +358,10 @@ switch (strtoupper($funcao)) |
| 364 | 358 | registraTema(); |
| 365 | 359 | $dados = pegaDados($sql); |
| 366 | 360 | } |
| 361 | + $imagem = ""; | |
| 362 | + if(file_exists($locaplic."/temas/miniaturas/".$codigo_tema.".map.grande.png")) | |
| 363 | + {$imagem = $codigo_tema.".map.grande.png";} | |
| 364 | + $dados[0]["imagem"] = $imagem; | |
| 367 | 365 | if(is_array($dados) && count($dados) > 1) |
| 368 | 366 | {$dados = "erro. Mais de um mapfile com mesmo código registrado no banco";} |
| 369 | 367 | retornaJSON($dados); |
| ... | ... | @@ -383,6 +381,21 @@ switch (strtoupper($funcao)) |
| 383 | 381 | exit; |
| 384 | 382 | break; |
| 385 | 383 | /* |
| 384 | + Valor: ATUALIZAMINIATURA | |
| 385 | + | |
| 386 | + Atualiza as imagens das miniaturas de um tema | |
| 387 | + | |
| 388 | + Retorno: | |
| 389 | + | |
| 390 | + {JSON} | |
| 391 | + */ | |
| 392 | + case "ATUALIZAMINIATURA": | |
| 393 | + if(verificaEditores($editores) == "nao") | |
| 394 | + {echo "Vc nao e um editor cadastrado. Apenas os editores definidos em i3geo/ms_configura.php podem acessar o sistema de administracao.";exit;} | |
| 395 | + retornaJSON(atualizaMiniatura($tema)); | |
| 396 | + exit; | |
| 397 | + break; | |
| 398 | + /* | |
| 386 | 399 | Valor: ALTERATEMAS |
| 387 | 400 | |
| 388 | 401 | Altera os dados de um tema |
| ... | ... | @@ -1163,4 +1176,11 @@ function removeCabecalho($arq,$symbolset=true) |
| 1163 | 1176 | fclose($handle); |
| 1164 | 1177 | chmod($arq, 0666); |
| 1165 | 1178 | } |
| 1179 | +function atualizaMiniatura(){ | |
| 1180 | + global $tema,$locaplic; | |
| 1181 | + include_once("../../classesphp/funcoes_gerais.php"); | |
| 1182 | + require("../../geraminiatura.php"); | |
| 1183 | + verificaMiniatura($tema,"todos",true); | |
| 1184 | + exit; | |
| 1185 | +} | |
| 1166 | 1186 | ?> |
| 1167 | 1187 | \ No newline at end of file | ... | ... |
classesphp/funcoes_gerais.php
| ... | ... | @@ -2267,14 +2267,19 @@ Retorno: |
| 2267 | 2267 | |
| 2268 | 2268 | {objeto} layer modificado |
| 2269 | 2269 | */ |
| 2270 | -function autoClasses(&$nlayer,$mapa) | |
| 2270 | +function autoClasses(&$nlayer,$mapa,$locaplic=null) | |
| 2271 | 2271 | { |
| 2272 | 2272 | $postgis_mapa = ""; |
| 2273 | 2273 | $substituicon = "nao"; |
| 2274 | - if(file_exists("ms_configura.php")) | |
| 2275 | - include_once("ms_configura.php"); | |
| 2274 | + if(!isset($locaplic)) | |
| 2275 | + { | |
| 2276 | + if(file_exists("ms_configura.php")) | |
| 2277 | + include_once("ms_configura.php"); | |
| 2278 | + else | |
| 2279 | + include_once("../ms_configura.php"); | |
| 2280 | + } | |
| 2276 | 2281 | else |
| 2277 | - include_once("../ms_configura.php"); | |
| 2282 | + {include_once("$locaplic/ms_configura.php");} | |
| 2278 | 2283 | if ($nlayer->connectiontype == MS_POSTGIS) |
| 2279 | 2284 | { |
| 2280 | 2285 | if ($nlayer->connection == " ") | ... | ... |
geraminiatura.php
| ... | ... | @@ -4,13 +4,14 @@ Title: geraminiatura.php |
| 4 | 4 | |
| 5 | 5 | Gera as miniaturas dos mapas baseado nos mapfiles existentes em i3geo/temas. As miniaturas são utilizadas no i3geo na guia temas para mostrar um preview de cada tema. |
| 6 | 6 | |
| 7 | -As imagens são armazenadas no diretório temporário do i3geo e devem ser movidas para o diretório i3geo/temas/miniaturas | |
| 7 | +Por padrão, as imagens são armazenadas no diretório temporário do i3geo e devem ser movidas para o diretório i3geo/temas/miniaturas | |
| 8 | 8 | para poderem ser utilizadas. O programa verifica se a miniatura já existe no diretório temas/miniaturas e gera apenas as que faltarem. |
| 9 | 9 | |
| 10 | +É utilizado também como um include pelo sistema de administração, permitindo armazenar as miniaturas no local correto. | |
| 10 | 11 | |
| 11 | 12 | Licenca: |
| 12 | 13 | |
| 13 | -I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
| 14 | +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
| 14 | 15 | |
| 15 | 16 | Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil |
| 16 | 17 | Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br |
| ... | ... | @@ -43,10 +44,6 @@ tipo - tipo de retorno mini|grande|todos |
| 43 | 44 | error_reporting(E_ALL); |
| 44 | 45 | set_time_limit(300); |
| 45 | 46 | ini_set('max_execution_time', 300); |
| 46 | -include("ms_configura.php"); | |
| 47 | -include("classesphp/funcoes_gerais.php"); | |
| 48 | -require_once("classesphp/pega_variaveis.php"); | |
| 49 | -include_once ("classesphp/carrega_ext.php"); | |
| 50 | 47 | // |
| 51 | 48 | //carrega o phpmapscript |
| 52 | 49 | // |
| ... | ... | @@ -60,46 +57,63 @@ if (!function_exists('ms_GetVersion')) |
| 60 | 57 | else |
| 61 | 58 | {dl('php_mapscript.so');} |
| 62 | 59 | } |
| 63 | -ms_ResetErrorList(); | |
| 64 | -if (!isset($tipo)) | |
| 65 | -{ | |
| 66 | - echo "Utilize geraminiatura.php?tipo=mini ou grande ou todos. As imagens são armazenadas no diretório temporário."; | |
| 67 | - echo "<br>Após geradas as imagens, copie os arquivos para o diretório i3geo/temas/miniaturas."; | |
| 68 | - echo "<br>As miniaturas são geradas apenas para os arquivos que ainda não existem no diretório temas/miniaturas."; | |
| 69 | - echo "<br><a href='geraminiatura.php?tipo=todos' >Gerar todas as miniaturas</a>"; | |
| 70 | - echo "<br><a href='geraminiatura.php?tipo=mini' >Gerar apenas as pequenas</a>"; | |
| 71 | - echo "<br><a href='geraminiatura.php?tipo=grande' >Gerar apenas as grandes</a>"; | |
| 72 | - exit; | |
| 73 | -} | |
| 74 | -$arqs = listaArquivos("temas"); | |
| 75 | -foreach ($arqs["arquivos"] as $arq) | |
| 60 | +// | |
| 61 | +//no caso do programa ser utilizado via URL | |
| 62 | +// | |
| 63 | +if(!isset($tipo)) | |
| 64 | +{$tipo = "";} | |
| 65 | +if($tipo == "mini" || $tipo == "todos" || $tipo == "grande") | |
| 76 | 66 | { |
| 77 | - $temp = explode(".",$arq); | |
| 78 | - if($temp[(count($temp) - 1)] == "map") | |
| 67 | + ms_ResetErrorList(); | |
| 68 | + if (!isset($tipo)) | |
| 79 | 69 | { |
| 80 | - if($tipo == "mini" || $tipo == "todos") | |
| 81 | - {if(!file_exists('temas/miniaturas/'.$arq.'.mini.png')){echo "<br>".$arq."<br>";verifica($arq,"mini");}} | |
| 82 | - if($tipo == "grande" || $tipo == "todos") | |
| 83 | - {if(!file_exists('temas/miniaturas/'.$arq.'.grande.png')){echo "<br>".$arq."<br>";verifica($arq,"grande");}} | |
| 70 | + echo "Utilize geraminiatura.php?tipo=mini ou grande ou todos. As imagens são armazenadas no diretório temporário."; | |
| 71 | + echo "<br>Após geradas as imagens, copie os arquivos para o diretório i3geo/temas/miniaturas."; | |
| 72 | + echo "<br>As miniaturas são geradas apenas para os arquivos que ainda não existem no diretório temas/miniaturas."; | |
| 73 | + echo "<br><a href='geraminiatura.php?tipo=todos' >Gerar todas as miniaturas</a>"; | |
| 74 | + echo "<br><a href='geraminiatura.php?tipo=mini' >Gerar apenas as pequenas</a>"; | |
| 75 | + echo "<br><a href='geraminiatura.php?tipo=grande' >Gerar apenas as grandes</a>"; | |
| 76 | + exit; | |
| 77 | + } | |
| 78 | + | |
| 79 | + include("ms_configura.php"); | |
| 80 | + include("classesphp/funcoes_gerais.php"); | |
| 81 | + require_once("classesphp/pega_variaveis.php"); | |
| 82 | + include_once ("classesphp/carrega_ext.php"); | |
| 83 | + $arqs = listaArquivos("temas"); | |
| 84 | + foreach ($arqs["arquivos"] as $arq) | |
| 85 | + { | |
| 86 | + $temp = explode(".",$arq); | |
| 87 | + if($temp[(count($temp) - 1)] == "map") | |
| 88 | + { | |
| 89 | + if($tipo == "mini" || $tipo == "todos") | |
| 90 | + {if(!file_exists('temas/miniaturas/'.$arq.'.mini.png')){echo "<br>".$arq."<br>";verificaMiniatura($arq,"mini");}} | |
| 91 | + if($tipo == "grande" || $tipo == "todos") | |
| 92 | + {if(!file_exists('temas/miniaturas/'.$arq.'.grande.png')){echo "<br>".$arq."<br>";verificaMiniatura($arq,"grande");}} | |
| 93 | + } | |
| 84 | 94 | } |
| 85 | 95 | } |
| 86 | -function verifica($map,$tipo) | |
| 96 | +// | |
| 97 | +//se tipo for igual a "admin", as imagens são gravadas em i3geo/temas/miniaturas | |
| 98 | +// | |
| 99 | +function verificaMiniatura($map,$tipo,$admin=false) | |
| 87 | 100 | { |
| 88 | 101 | global $locaplic; |
| 89 | 102 | ms_ResetErrorList(); |
| 103 | + error_reporting(E_ALL); | |
| 90 | 104 | $tema = ""; |
| 91 | 105 | $map = str_replace("\\","/",$map); |
| 92 | 106 | $map = basename($map); |
| 93 | - if (file_exists('temas/'.$map)) | |
| 94 | - {$tema = 'temas/'.$map;} | |
| 95 | - if (file_exists('temas/'.$map.'.map')) | |
| 96 | - {$tema = 'temas/'.$map.".map";} | |
| 107 | + if (file_exists($locaplic.'/temas/'.$map)) | |
| 108 | + {$tema = $locaplic.'/temas/'.$map;} | |
| 109 | + if (file_exists($locaplic.'/temas/'.$map.'.map')) | |
| 110 | + {$tema = $locaplic.'/temas/'.$map.".map";} | |
| 97 | 111 | if ($tema != "") |
| 98 | 112 | { |
| 99 | 113 | if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) |
| 100 | - {$mapa = ms_newMapObj("aplicmap/geral1windows.map");} | |
| 114 | + {$mapa = ms_newMapObj("$locaplic/aplicmap/geral1windows.map");} | |
| 101 | 115 | else |
| 102 | - {$mapa = ms_newMapObj("aplicmap/geral1.map");} | |
| 116 | + {$mapa = ms_newMapObj("$locaplic/aplicmap/geral1.map");} | |
| 103 | 117 | if(@ms_newMapObj($tema)) |
| 104 | 118 | {$nmapa = ms_newMapObj($tema);} |
| 105 | 119 | else |
| ... | ... | @@ -114,7 +128,7 @@ function verifica($map,$tipo) |
| 114 | 128 | $layern = $nmapa->getLayerByName($teman); |
| 115 | 129 | $layern->set("status",MS_DEFAULT); |
| 116 | 130 | ms_newLayerObj($mapa, $layern); |
| 117 | - autoClasses(&$layern,$mapa); | |
| 131 | + autoClasses(&$layern,$mapa,$locaplic); | |
| 118 | 132 | if ($layern->data == "") |
| 119 | 133 | $dados = $layern->connection; |
| 120 | 134 | else |
| ... | ... | @@ -139,40 +153,65 @@ function verifica($map,$tipo) |
| 139 | 153 | } |
| 140 | 154 | } |
| 141 | 155 | } |
| 142 | - zoomTema($pegarext,&$mapa); | |
| 143 | - if ($tipo == "mini") | |
| 156 | + zoomTemaMiniatura($pegarext,&$mapa); | |
| 157 | + if ($tipo == "mini" || $tipo == "todos") | |
| 144 | 158 | { |
| 145 | - $mapa->setsize(50,50); | |
| 146 | - $sca = $mapa->scalebar; | |
| 147 | - $sca->set("status",MS_OFF); | |
| 159 | + $mapa->setsize(50,50); | |
| 160 | + $sca = $mapa->scalebar; | |
| 161 | + $sca->set("status",MS_OFF); | |
| 162 | + $objImagemM = @$mapa->draw(); | |
| 163 | + if (!$objImagemM) | |
| 164 | + {echo "Problemas ao gerar o mapa<br>";return;} | |
| 165 | + $weboM = $mapa->web; | |
| 166 | + $urlM = $weboM->imageurl."/".$map; | |
| 148 | 167 | } |
| 149 | - if ($tipo == "grande") | |
| 168 | + if ($tipo == "grande" || $tipo == "todos") | |
| 150 | 169 | { |
| 151 | - $mapa->setsize(300,300); | |
| 152 | - $sca = $mapa->scalebar; | |
| 153 | - $sca->set("status",MS_OFF); | |
| 170 | + $mapa->setsize(300,300); | |
| 171 | + $sca = $mapa->scalebar; | |
| 172 | + $sca->set("status",MS_OFF); | |
| 173 | + $objImagemG = @$mapa->draw(); | |
| 174 | + if (!$objImagemG) | |
| 175 | + {echo "Problemas ao gerar o mapa<br>";return;} | |
| 176 | + $weboG = $mapa->web; | |
| 177 | + $urlG = $weboG->imageurl."/".$map; | |
| 154 | 178 | } |
| 155 | - $objImagem = @$mapa->draw(); | |
| 156 | - $webo = $mapa->web; | |
| 157 | - $url = $webo->imageurl."/".$map; | |
| 158 | - | |
| 159 | - if (!$objImagem) | |
| 160 | - {echo "Problemas ao gerar o mapa<br>";return;} | |
| 161 | 179 | if($tipo=="mini" || $tipo == "todos") |
| 162 | 180 | { |
| 163 | - $nomec = ($objImagem->imagepath).$map.".mini.png"; | |
| 164 | - echo "<br><img src='".$url.".mini.png' /><br>"; | |
| 181 | + $nomecM = ($objImagemM->imagepath).$map.".mini.png"; | |
| 182 | + $objImagemM->saveImage($nomecM); | |
| 165 | 183 | } |
| 166 | 184 | if($tipo=="grande" || $tipo == "todos") |
| 167 | 185 | { |
| 168 | - $nomec = ($objImagem->imagepath).$map.".grande.png"; | |
| 169 | - echo "<br><img src='".$url.".grande.png' /><br>"; | |
| 186 | + $nomecG = ($objImagemG->imagepath).$map.".grande.png"; | |
| 187 | + $objImagemG->saveImage($nomecG); | |
| 188 | + } | |
| 189 | + | |
| 190 | + if($admin == false) | |
| 191 | + { | |
| 192 | + if($tipo=="mini" || $tipo == "todos") | |
| 193 | + {echo "<br><img src='".$urlM.".mini.png' /><br>";} | |
| 194 | + if($tipo=="grande" || $tipo == "todos") | |
| 195 | + {echo "<br><img src='".$urlG.".grande.png' /><br>";} | |
| 196 | + } | |
| 197 | + // | |
| 198 | + //copia a imagem | |
| 199 | + // | |
| 200 | + if($admin == true) | |
| 201 | + { | |
| 202 | + $dir = $locaplic."/temas/miniaturas"; | |
| 203 | + $mini = $dir."/".$map.".map.mini.png"; | |
| 204 | + $grande = $dir."/".$map.".map.grande.png"; | |
| 205 | + if(file_exists($mini)) | |
| 206 | + {unlink($mini);} | |
| 207 | + if(file_exists($grande)) | |
| 208 | + {unlink($grande);} | |
| 209 | + copy(($objImagemG->imagepath).$map.".grande.png",$grande); | |
| 210 | + copy(($objImagemM->imagepath).$map.".mini.png",$mini); | |
| 170 | 211 | } |
| 171 | - $objImagem->saveImage($nomec); | |
| 172 | - //$objImagem->free(); | |
| 173 | 212 | } |
| 174 | 213 | } |
| 175 | -function zoomTema($nomelayer,&$mapa) | |
| 214 | +function zoomTemaMiniatura($nomelayer,&$mapa) | |
| 176 | 215 | { |
| 177 | 216 | $layer = $mapa->getlayerbyname($nomelayer); |
| 178 | 217 | if($layer->type > 2) | ... | ... |
temas/miniaturas/4b27aa09_1350_2.img.tmp
temas/miniaturas/biomashp.map.grande.png
temas/miniaturas/biomashp.map.mini.png