Commit c9dfcd39c14bcb12cf86fa86c18e3fddfb4156a4
1 parent
5bf6f9c1
Exists in
master
and in
6 other branches
Alteração na forma como o download de um tema é feito, para gerar um arquivo zip…
… apenas e fazer o download automaticamente
Showing
5 changed files
with
96 additions
and
76 deletions
Show diff stats
classesphp/funcoes_gerais.php
@@ -1807,60 +1807,47 @@ function downloadTema2($map_file, $tema, $locaplic, $dir_tmp, $postgis_mapa) | @@ -1807,60 +1807,47 @@ function downloadTema2($map_file, $tema, $locaplic, $dir_tmp, $postgis_mapa) | ||
1807 | $map = ms_newMapObj($map_file); | 1807 | $map = ms_newMapObj($map_file); |
1808 | $rectextent = $map->extent; | 1808 | $rectextent = $map->extent; |
1809 | $extensao = ".map"; | 1809 | $extensao = ".map"; |
1810 | - if (file_exists($locaplic . "/temas/" . $tema . ".gvp")) { | ||
1811 | - $extensao = ".gvp"; | ||
1812 | - } | ||
1813 | - if ($extensao == ".map") { | ||
1814 | - // | ||
1815 | - // problema aqui | ||
1816 | - // $tema pode ser diferente do nome do mapfile | ||
1817 | - // | ||
1818 | - $teste = @$map->getlayerbyname($tema); | ||
1819 | - // caso o usuario tenha usado caixa alta no nome do layer | ||
1820 | - if ($teste == "") { | ||
1821 | - $teste = @$map->getlayerbyname(strtoupper($tema)); | 1810 | + // |
1811 | + // problema aqui | ||
1812 | + // $tema pode ser diferente do nome do mapfile | ||
1813 | + // | ||
1814 | + $teste = @$map->getlayerbyname($tema); | ||
1815 | + // caso o usuario tenha usado caixa alta no nome do layer | ||
1816 | + if ($teste == "") { | ||
1817 | + $teste = @$map->getlayerbyname(strtoupper($tema)); | ||
1818 | + } | ||
1819 | + // se o layer não existir no mapfile, pega da pasta i3geo/temas e adiciona em $map | ||
1820 | + if ($teste == "") { | ||
1821 | + // tema pode ser o nome de um arquivo mapfile | ||
1822 | + if (file_exists($tema . ".map")) { | ||
1823 | + $maptemp = ms_newMapObj($tema . ".map"); | ||
1824 | + $tema = basename($tema); | ||
1825 | + } else { | ||
1826 | + $maptemp = ms_newMapObj($temasdir . "/" . $tema . ".map"); | ||
1822 | } | 1827 | } |
1823 | - // se o layer não existir no mapfile, pega da pasta i3geo/temas e adiciona em $map | ||
1824 | - if ($teste == "") { | ||
1825 | - // tema pode ser o nome de um arquivo mapfile | ||
1826 | - if (file_exists($tema . ".map")) { | ||
1827 | - $maptemp = ms_newMapObj($tema . ".map"); | ||
1828 | - $tema = basename($tema); | ||
1829 | - } else { | ||
1830 | - $maptemp = ms_newMapObj($temasdir . "/" . $tema . ".map"); | ||
1831 | - } | ||
1832 | - $numlayers = $maptemp->numlayers; | ||
1833 | - for ($i = 0; $i < $numlayers; ++ $i) { | ||
1834 | - $ll = $maptemp->getlayer($i); | ||
1835 | - $permite = $ll->getmetadata("permitedownload"); | ||
1836 | - if ($permite != "nao") { | ||
1837 | - ms_newLayerObj($map, $ll); | ||
1838 | - } | 1828 | + $numlayers = $maptemp->numlayers; |
1829 | + for ($i = 0; $i < $numlayers; ++ $i) { | ||
1830 | + $ll = $maptemp->getlayer($i); | ||
1831 | + $permite = $ll->getmetadata("permitedownload"); | ||
1832 | + if ($permite != "nao") { | ||
1833 | + ms_newLayerObj($map, $ll); | ||
1839 | } | 1834 | } |
1840 | - $teste = @$map->getlayerbyname($tema); | ||
1841 | - if ($teste == "") { | ||
1842 | - $ll = $maptemp->getlayer(0); | ||
1843 | - $permite = $ll->getmetadata("permitedownload"); | ||
1844 | - if ($permite != "nao") { | ||
1845 | - ms_newLayerObj($map, $ll); | ||
1846 | - $tema = $ll->name; | ||
1847 | - } | 1835 | + } |
1836 | + $teste = @$map->getlayerbyname($tema); | ||
1837 | + if ($teste == "") { | ||
1838 | + $ll = $maptemp->getlayer(0); | ||
1839 | + $permite = $ll->getmetadata("permitedownload"); | ||
1840 | + if ($permite != "nao") { | ||
1841 | + ms_newLayerObj($map, $ll); | ||
1842 | + $tema = $ll->name; | ||
1848 | } | 1843 | } |
1849 | - } else { | ||
1850 | - // remove o metadata com um nome de arquivo opcional, pois a função de download pode estar sendo executada da árvore de camadas | ||
1851 | - $teste = $map->getlayerbyname($tema); | ||
1852 | - $teste->setmetadata("arquivodownload", ""); | ||
1853 | } | 1844 | } |
1854 | } else { | 1845 | } else { |
1855 | - include_once ($locaplic . "/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); | ||
1856 | - $gm = new gvsig2mapfile($locaplic . "/temas/" . $tema . ".gvp"); | ||
1857 | - $gvsigview = $gm->getViewsNames(); | ||
1858 | - foreach ($gvsigview as $gv) { | ||
1859 | - $dataView = $gm->getViewData($gvsigview); | ||
1860 | - $map = $gm->addLayers($map, $gvsigview, $dataView["layerNames"]); | ||
1861 | - $temas = array_merge($temas, $gm->nomesLayersAdicionados); | ||
1862 | - } | 1846 | + // remove o metadata com um nome de arquivo opcional, pois a função de download pode estar sendo executada da árvore de camadas |
1847 | + $teste = $map->getlayerbyname($tema); | ||
1848 | + $teste->setmetadata("arquivodownload", ""); | ||
1863 | } | 1849 | } |
1850 | + | ||
1864 | // | 1851 | // |
1865 | // salva o mapfile com um outro nome para evitar que o mapa atual, se estiver aberto, seja modificado | 1852 | // salva o mapfile com um outro nome para evitar que o mapa atual, se estiver aberto, seja modificado |
1866 | // | 1853 | // |
@@ -1883,7 +1870,6 @@ function downloadTema2($map_file, $tema, $locaplic, $dir_tmp, $postgis_mapa) | @@ -1883,7 +1870,6 @@ function downloadTema2($map_file, $tema, $locaplic, $dir_tmp, $postgis_mapa) | ||
1883 | // verifica se existe mais de um tema (grupo) montando o array com os temas | 1870 | // verifica se existe mais de um tema (grupo) montando o array com os temas |
1884 | // os grupos podem ter o nome do layer em GROUP ao invés de NAME | 1871 | // os grupos podem ter o nome do layer em GROUP ao invés de NAME |
1885 | // | 1872 | // |
1886 | - if ($extensao == ".map") { | ||
1887 | $multilayer = 0; | 1873 | $multilayer = 0; |
1888 | $grupos = $map->getAllGroupNames(); | 1874 | $grupos = $map->getAllGroupNames(); |
1889 | foreach ($grupos as $grupo) { | 1875 | foreach ($grupos as $grupo) { |
@@ -1904,7 +1890,6 @@ function downloadTema2($map_file, $tema, $locaplic, $dir_tmp, $postgis_mapa) | @@ -1904,7 +1890,6 @@ function downloadTema2($map_file, $tema, $locaplic, $dir_tmp, $postgis_mapa) | ||
1904 | if ($multilayer == 0) { | 1890 | if ($multilayer == 0) { |
1905 | $temas[] = $tema; | 1891 | $temas[] = $tema; |
1906 | } | 1892 | } |
1907 | - } | ||
1908 | // $temas agora é um array com os NAMEs dos LAYERS que serão baixados | 1893 | // $temas agora é um array com os NAMEs dos LAYERS que serão baixados |
1909 | $radtmp = dirname($dir_tmp); | 1894 | $radtmp = dirname($dir_tmp); |
1910 | $ziper = new zipfile(); | 1895 | $ziper = new zipfile(); |
@@ -2472,16 +2457,16 @@ function seems_utf8($Str) | @@ -2472,16 +2457,16 @@ function seems_utf8($Str) | ||
2472 | */ | 2457 | */ |
2473 | function removeAcentos($s) | 2458 | function removeAcentos($s) |
2474 | { | 2459 | { |
2475 | - $s = ereg_replace("[áàâã]", "a", $s); | ||
2476 | - $s = ereg_replace("[ÁÀÂÃ]", "A", $s); | ||
2477 | - $s = ereg_replace("[éèê]", "e", $s); | 2460 | + $s = ereg_replace("[á�âã]", "a", $s); |
2461 | + $s = ereg_replace("[Á�ÂÃ]", "A", $s); | ||
2462 | + $s = ereg_replace("[é�ê]", "e", $s); | ||
2478 | $s = ereg_replace("[í]", "i", $s); | 2463 | $s = ereg_replace("[í]", "i", $s); |
2479 | $s = ereg_replace("[Í]", "I", $s); | 2464 | $s = ereg_replace("[Í]", "I", $s); |
2480 | - $s = ereg_replace("[ÉÈÊ]", "E", $s); | ||
2481 | - $s = ereg_replace("[óòôõ]", "o", $s); | ||
2482 | - $s = ereg_replace("[ÓÒÔÕ]", "O", $s); | ||
2483 | - $s = ereg_replace("[úùû]", "u", $s); | ||
2484 | - $s = ereg_replace("[ÚÙÛ]", "U", $s); | 2465 | + $s = ereg_replace("[É�Ê]", "E", $s); |
2466 | + $s = ereg_replace("[��ôõ]", "o", $s); | ||
2467 | + $s = ereg_replace("[��ÔÕ]", "O", $s); | ||
2468 | + $s = ereg_replace("[ú��]", "u", $s); | ||
2469 | + $s = ereg_replace("[��]", "U", $s); | ||
2485 | $s = str_replace("ç", "c", $s); | 2470 | $s = str_replace("ç", "c", $s); |
2486 | $s = str_replace("Ç", "C", $s); | 2471 | $s = str_replace("Ç", "C", $s); |
2487 | // $str = htmlentities($s); | 2472 | // $str = htmlentities($s); |
classesphp/mapa_controle.php
@@ -1035,6 +1035,19 @@ switch (strtoupper($funcao)) { | @@ -1035,6 +1035,19 @@ switch (strtoupper($funcao)) { | ||
1035 | case "DOWNLOAD2": | 1035 | case "DOWNLOAD2": |
1036 | $retorno = downloadTema2($map_file, $_pg["tema"], $locaplic, $dir_tmp, $postgis_mapa); | 1036 | $retorno = downloadTema2($map_file, $_pg["tema"], $locaplic, $dir_tmp, $postgis_mapa); |
1037 | break; | 1037 | break; |
1038 | + /* | ||
1039 | + * Valor: DOWNLOAD3 | ||
1040 | + * | ||
1041 | + * Gera um arquivo para download de um tema. | ||
1042 | + */ | ||
1043 | + case "DOWNLOAD3": | ||
1044 | + $retorno = downloadTema2($map_file, $_pg["tema"], $locaplic, $dir_tmp, $postgis_mapa); | ||
1045 | + $retorno["arquivos"] = ""; | ||
1046 | + $retorno["datas"] = ""; | ||
1047 | + $_SESSION["downloadZipTema"] = $retorno["shape-zip"]; | ||
1048 | + $retorno["shape-zip"] = ""; | ||
1049 | + session_write_close(); | ||
1050 | + break; | ||
1038 | /* | 1051 | /* |
1039 | * Valor: DOWNLOAD3 | 1052 | * Valor: DOWNLOAD3 |
1040 | * | 1053 | * |
ferramentas/download/dicionario.js
1 | //+$trad(1,i3GEOF.download.dicionario)+ | 1 | //+$trad(1,i3GEOF.download.dicionario)+ |
2 | i3GEOF.download.dicionario = { | 2 | i3GEOF.download.dicionario = { |
3 | 'download' : [ { | 3 | 'download' : [ { |
4 | - pt : "Clique com o botão da direita do mouse sobre o(s) arquivo(s) abaixo para fazer o download.", | ||
5 | - en : "Click the right mouse button on the file(s) below to download.", | ||
6 | - es : "Haga clic con el botón derecho del ratón sobre el (los) archivo (s) abajo para descargar." | 4 | + pt : "Gerando arquivo...", |
5 | + en : "", | ||
6 | + es : "" | ||
7 | } ], | 7 | } ], |
8 | 'erroTema' : [ { | 8 | 'erroTema' : [ { |
9 | pt : "Ocorreu um erro. O tema não foi encontrado. Pode ser que o código do tema não existe na definição do mapfile. Informe o administrador do sistema.", | 9 | pt : "Ocorreu um erro. O tema não foi encontrado. Pode ser que o código do tema não existe na definição do mapfile. Informe o administrador do sistema.", |
@@ -15,9 +15,9 @@ i3GEOF.download.dicionario = { | @@ -15,9 +15,9 @@ i3GEOF.download.dicionario = { | ||
15 | en : "Number of records", | 15 | en : "Number of records", |
16 | es : "Número de registros" | 16 | es : "Número de registros" |
17 | } ], | 17 | } ], |
18 | - 'pagdownload' : [ { | ||
19 | - pt : "Acesse aqui a página de download, que contém mais opções", | ||
20 | - en : "For more options, access the download page here", | ||
21 | - es : "Para más opciones, acceda aquí a la página de descarga" | ||
22 | - } ] | 18 | + 'arquivook' : [ { |
19 | + pt : "Arquivo gerado", | ||
20 | + en : "", | ||
21 | + es : "" | ||
22 | + } ] | ||
23 | }; | 23 | }; |
24 | \ No newline at end of file | 24 | \ No newline at end of file |
@@ -0,0 +1,21 @@ | @@ -0,0 +1,21 @@ | ||
1 | +<?php | ||
2 | +if(empty($_REQUEST["g_sid"])){ | ||
3 | + exit; | ||
4 | +} | ||
5 | +$g_sid = $_REQUEST["g_sid"]; | ||
6 | +session_name("i3GeoPHP"); | ||
7 | +session_id($g_sid); | ||
8 | +session_start(); | ||
9 | +if($_SESSION["downloadZipTema"] != ""){ | ||
10 | + $arquivo = $_SESSION["downloadZipTema"]; | ||
11 | + $_SESSION["downloadZipTema"] = ""; | ||
12 | + session_write_close(); | ||
13 | + header("Content-Transfer-Encoding: binary"); | ||
14 | + header('Content-Disposition: attachment; filename="'.basename($arquivo).'"'); | ||
15 | + readfile($arquivo); | ||
16 | + exit; | ||
17 | +} else { | ||
18 | + $_SESSION["downloadZipTema"] = ""; | ||
19 | + session_write_close(); | ||
20 | +} | ||
21 | +?> | ||
0 | \ No newline at end of file | 22 | \ No newline at end of file |
ferramentas/download/index.js
@@ -91,7 +91,7 @@ i3GEOF.download = { | @@ -91,7 +91,7 @@ i3GEOF.download = { | ||
91 | */ | 91 | */ |
92 | html:function(divid,tema){ | 92 | html:function(divid,tema){ |
93 | var cp,p,ins,mostraDownload,c; | 93 | var cp,p,ins,mostraDownload,c; |
94 | - ins = '<div class="container-fluid" style="top:0px;position:absolute;"><h5 class="alert alert-info">'+$trad('download',i3GEOF.download.dicionario)+'</h5>'; | 94 | + ins = '<div class="container-fluid" style="top:0px;position:absolute;"><h5>'+$trad('download',i3GEOF.download.dicionario)+'</h5>'; |
95 | ins += '<div id=i3GEOdownloadResultado ></div></div>'; | 95 | ins += '<div id=i3GEOdownloadResultado ></div></div>'; |
96 | $i(divid).innerHTML += ins; | 96 | $i(divid).innerHTML += ins; |
97 | c = i3GEO.arvoreDeCamadas.pegaTema(tema); | 97 | c = i3GEO.arvoreDeCamadas.pegaTema(tema); |
@@ -113,17 +113,18 @@ i3GEOF.download = { | @@ -113,17 +113,18 @@ i3GEOF.download = { | ||
113 | ins = "<h5 class='alert alert-warning'>"+$trad('erroTema',i3GEOF.download.dicionario)+"</h5>"; | 113 | ins = "<h5 class='alert alert-warning'>"+$trad('erroTema',i3GEOF.download.dicionario)+"</h5>"; |
114 | } | 114 | } |
115 | else{ | 115 | else{ |
116 | - for (arq=0;arq<n;arq++){ | ||
117 | - ins += "<li><a href='"+window.location.protocol+"//"+window.location.host+"/"+arqs[arq]+"'>"+arqs[arq]+"</a></li>"; | ||
118 | - } | 116 | + ins += "<h5>" + $trad('arquivook',i3GEOF.download.dicionario) + "</h5>"; |
117 | + var url = i3GEO.configura.locaplic + "/ferramentas/download/forcedownload.php?g_sid=" + i3GEO.configura.sid; | ||
118 | + var link = document.createElement("a"); | ||
119 | + $(link).click(function(e) { | ||
120 | + e.preventDefault(); | ||
121 | + window.location.href = url; | ||
122 | + }); | ||
123 | + $(link).click(); | ||
119 | } | 124 | } |
120 | if(retorno.nreg){ | 125 | if(retorno.nreg){ |
121 | - ins += "<h5 class='alert alert-info'>"+$trad('registros',i3GEOF.download.dicionario)+" ="+retorno.nreg + "</h5>"; | 126 | + ins += "<h5>"+$trad('registros',i3GEOF.download.dicionario)+" ="+retorno.nreg + "</h5>"; |
122 | } | 127 | } |
123 | - temp = i3GEO.configura.locaplic+"/datadownload.htm?tema="+tema+"&temaDownload="+tema; | ||
124 | - ins += "<h5 class='alert alert-info'>"; | ||
125 | - ins += "<a href='"+temp+"' target=_blank >"+$trad('pagdownload',i3GEOF.download.dicionario)+"</a></h5>"; | ||
126 | - | ||
127 | } | 128 | } |
128 | else{ | 129 | else{ |
129 | ins = "<h5 class='alert alert-warning'>"+$trad("x66")+"</h5>"; | 130 | ins = "<h5 class='alert alert-warning'>"+$trad("x66")+"</h5>"; |
@@ -131,7 +132,7 @@ i3GEOF.download = { | @@ -131,7 +132,7 @@ i3GEOF.download = { | ||
131 | $i("i3GEOdownloadResultado").innerHTML = ins + "</div>"; | 132 | $i("i3GEOdownloadResultado").innerHTML = ins + "</div>"; |
132 | i3GEOF.download.aguarde.visibility = "hidden"; | 133 | i3GEOF.download.aguarde.visibility = "hidden"; |
133 | }; | 134 | }; |
134 | - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=download2&tema="+tema; | 135 | + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=download3&tema="+tema; |
135 | cp = new cpaint(); | 136 | cp = new cpaint(); |
136 | cp.set_response_type("JSON"); | 137 | cp.set_response_type("JSON"); |
137 | cp.call(p,"downloadTema",mostraDownload); | 138 | cp.call(p,"downloadTema",mostraDownload); |