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,11 +109,32 @@ function montaDivTemas(i) | ||
| 109 | ins += "<p>Permite acesso via kmz (kml com dados vetoriais)?<br>" | 109 | ins += "<p>Permite acesso via kmz (kml com dados vetoriais)?<br>" |
| 110 | ins += "<select id='kmz_tema' >" | 110 | ins += "<select id='kmz_tema' >" |
| 111 | ins += core_combosimnao(i.kmz_tema) | 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 | ins += "<input type=hidden id=codigo_tema value='"+i.codigo_tema+"'/>" | 118 | ins += "<input type=hidden id=codigo_tema value='"+i.codigo_tema+"'/>" |
| 115 | return(ins) | 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 | function gravaDadosTema(id) | 138 | function gravaDadosTema(id) |
| 118 | { | 139 | { |
| 119 | //validacao | 140 | //validacao |
admin/php/menutemas.php
| @@ -60,12 +60,6 @@ switch (strtoupper($funcao)) | @@ -60,12 +60,6 @@ switch (strtoupper($funcao)) | ||
| 60 | retornaJSON(verificaEditores($editores)); | 60 | retornaJSON(verificaEditores($editores)); |
| 61 | exit; | 61 | exit; |
| 62 | break; | 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 | Valor: PEGAMENUS | 64 | Valor: PEGAMENUS |
| 71 | 65 | ||
| @@ -364,6 +358,10 @@ switch (strtoupper($funcao)) | @@ -364,6 +358,10 @@ switch (strtoupper($funcao)) | ||
| 364 | registraTema(); | 358 | registraTema(); |
| 365 | $dados = pegaDados($sql); | 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 | if(is_array($dados) && count($dados) > 1) | 365 | if(is_array($dados) && count($dados) > 1) |
| 368 | {$dados = "erro. Mais de um mapfile com mesmo código registrado no banco";} | 366 | {$dados = "erro. Mais de um mapfile com mesmo código registrado no banco";} |
| 369 | retornaJSON($dados); | 367 | retornaJSON($dados); |
| @@ -383,6 +381,21 @@ switch (strtoupper($funcao)) | @@ -383,6 +381,21 @@ switch (strtoupper($funcao)) | ||
| 383 | exit; | 381 | exit; |
| 384 | break; | 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 | Valor: ALTERATEMAS | 399 | Valor: ALTERATEMAS |
| 387 | 400 | ||
| 388 | Altera os dados de um tema | 401 | Altera os dados de um tema |
| @@ -1163,4 +1176,11 @@ function removeCabecalho($arq,$symbolset=true) | @@ -1163,4 +1176,11 @@ function removeCabecalho($arq,$symbolset=true) | ||
| 1163 | fclose($handle); | 1176 | fclose($handle); |
| 1164 | chmod($arq, 0666); | 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 | \ No newline at end of file | 1187 | \ No newline at end of file |
classesphp/funcoes_gerais.php
| @@ -2267,14 +2267,19 @@ Retorno: | @@ -2267,14 +2267,19 @@ Retorno: | ||
| 2267 | 2267 | ||
| 2268 | {objeto} layer modificado | 2268 | {objeto} layer modificado |
| 2269 | */ | 2269 | */ |
| 2270 | -function autoClasses(&$nlayer,$mapa) | 2270 | +function autoClasses(&$nlayer,$mapa,$locaplic=null) |
| 2271 | { | 2271 | { |
| 2272 | $postgis_mapa = ""; | 2272 | $postgis_mapa = ""; |
| 2273 | $substituicon = "nao"; | 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 | else | 2281 | else |
| 2277 | - include_once("../ms_configura.php"); | 2282 | + {include_once("$locaplic/ms_configura.php");} |
| 2278 | if ($nlayer->connectiontype == MS_POSTGIS) | 2283 | if ($nlayer->connectiontype == MS_POSTGIS) |
| 2279 | { | 2284 | { |
| 2280 | if ($nlayer->connection == " ") | 2285 | if ($nlayer->connection == " ") |
geraminiatura.php
| @@ -4,13 +4,14 @@ Title: geraminiatura.php | @@ -4,13 +4,14 @@ Title: geraminiatura.php | ||
| 4 | 4 | ||
| 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. | 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 | para poderem ser utilizadas. O programa verifica se a miniatura já existe no diretório temas/miniaturas e gera apenas as que faltarem. | 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 | Licenca: | 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 | Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | 16 | Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil |
| 16 | Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br | 17 | Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br |
| @@ -43,10 +44,6 @@ tipo - tipo de retorno mini|grande|todos | @@ -43,10 +44,6 @@ tipo - tipo de retorno mini|grande|todos | ||
| 43 | error_reporting(E_ALL); | 44 | error_reporting(E_ALL); |
| 44 | set_time_limit(300); | 45 | set_time_limit(300); |
| 45 | ini_set('max_execution_time', 300); | 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 | //carrega o phpmapscript | 48 | //carrega o phpmapscript |
| 52 | // | 49 | // |
| @@ -60,46 +57,63 @@ if (!function_exists('ms_GetVersion')) | @@ -60,46 +57,63 @@ if (!function_exists('ms_GetVersion')) | ||
| 60 | else | 57 | else |
| 61 | {dl('php_mapscript.so');} | 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 | global $locaplic; | 101 | global $locaplic; |
| 89 | ms_ResetErrorList(); | 102 | ms_ResetErrorList(); |
| 103 | + error_reporting(E_ALL); | ||
| 90 | $tema = ""; | 104 | $tema = ""; |
| 91 | $map = str_replace("\\","/",$map); | 105 | $map = str_replace("\\","/",$map); |
| 92 | $map = basename($map); | 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 | if ($tema != "") | 111 | if ($tema != "") |
| 98 | { | 112 | { |
| 99 | if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) | 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 | else | 115 | else |
| 102 | - {$mapa = ms_newMapObj("aplicmap/geral1.map");} | 116 | + {$mapa = ms_newMapObj("$locaplic/aplicmap/geral1.map");} |
| 103 | if(@ms_newMapObj($tema)) | 117 | if(@ms_newMapObj($tema)) |
| 104 | {$nmapa = ms_newMapObj($tema);} | 118 | {$nmapa = ms_newMapObj($tema);} |
| 105 | else | 119 | else |
| @@ -114,7 +128,7 @@ function verifica($map,$tipo) | @@ -114,7 +128,7 @@ function verifica($map,$tipo) | ||
| 114 | $layern = $nmapa->getLayerByName($teman); | 128 | $layern = $nmapa->getLayerByName($teman); |
| 115 | $layern->set("status",MS_DEFAULT); | 129 | $layern->set("status",MS_DEFAULT); |
| 116 | ms_newLayerObj($mapa, $layern); | 130 | ms_newLayerObj($mapa, $layern); |
| 117 | - autoClasses(&$layern,$mapa); | 131 | + autoClasses(&$layern,$mapa,$locaplic); |
| 118 | if ($layern->data == "") | 132 | if ($layern->data == "") |
| 119 | $dados = $layern->connection; | 133 | $dados = $layern->connection; |
| 120 | else | 134 | else |
| @@ -139,40 +153,65 @@ function verifica($map,$tipo) | @@ -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 | if($tipo=="mini" || $tipo == "todos") | 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 | if($tipo=="grande" || $tipo == "todos") | 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 | $layer = $mapa->getlayerbyname($nomelayer); | 216 | $layer = $mapa->getlayerbyname($nomelayer); |
| 178 | if($layer->type > 2) | 217 | if($layer->type > 2) |
temas/miniaturas/4b27aa09_1350_2.img.tmp
temas/miniaturas/biomashp.map.grande.png
temas/miniaturas/biomashp.map.mini.png