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 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(&#39;ms_GetVersion&#39;))
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

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