Commit 429d657e97ebc9d3a1ac5bba98d7a13f3ce5d2cb

Authored by Edmar Moretti
1 parent 6f5adab9

Inclusão de opção para atualizar ou criar a miniatura de um tema no sistema de administração

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(&#39;ms_GetVersion&#39;)) @@ -60,46 +57,63 @@ if (!function_exists(&#39;ms_GetVersion&#39;))
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

10 KB | W: | H:

11.3 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
temas/miniaturas/biomashp.map.mini.png

1.84 KB | W: | H:

2 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin