From 0827b8bc63e9d77494f75228c6c12ee265bdf46c Mon Sep 17 00:00:00 2001 From: edmarmoretti Date: Thu, 2 Mar 2017 00:07:06 -0300 Subject: [PATCH] Refatoração do código para separação de funções em arquivos de include --- admin/admin.db | Bin 340992 -> 0 bytes admin1/cadastros/identifica/index.php | 7 ++++--- admin1/catalogo/mapfile/editor/exec.php | 227 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- admin1/catalogo/mapfile/editor/funcoes.php | 215 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ admin1/catalogo/mapfile/editor/index.php | 21 ++++++++++++++++++--- admin1/catalogo/mapfile/exec.php | 612 ++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ admin1/catalogo/mapfile/funcoes.php | 554 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ admin1/catalogo/mapfile/index.js | 8 +++----- admin1/catalogo/mapfile/preview/index.php | 43 +++++++++++++++++++++++++++++++++++++------ admin1/catalogo/mapfile/templates/templateLista.php | 2 +- admin1/head.php | 81 +++++++++++++++++++++++++++++++++++++++------------------------------------------ admin1/index.php | 6 ++++-- temas/_lbiomashp.map | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------- temas/teste.map | 49 ------------------------------------------------- 14 files changed, 999 insertions(+), 1017 deletions(-) create mode 100644 admin1/catalogo/mapfile/editor/funcoes.php create mode 100755 admin1/catalogo/mapfile/funcoes.php delete mode 100755 temas/teste.map diff --git a/admin/admin.db b/admin/admin.db index 601358e..9780432 100755 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin1/cadastros/identifica/index.php b/admin1/cadastros/identifica/index.php index 1082e07..bdd7f0e 100755 --- a/admin1/cadastros/identifica/index.php +++ b/admin1/cadastros/identifica/index.php @@ -80,12 +80,13 @@ include("../../templates/templateOpcoesPublicado.php"); ) ); $.material.init(); - var inicia = function() { + if(i3GEO.login.verificaCookieLogin() == true){ i3GEOadmin.core.loginOn(); $(".hidden").removeClass('hidden'); i3GEOadmin.identifica.init($("#corpo")); - }; - i3GEO.login.verificaOperacao("admin/html/identifica",i3GEO.configura.locaplic, inicia, "sessao" ,i3GEOadmin.core.erroLogin); + } else { + i3GEOadmin.core.erroLogin(); + } }); diff --git a/admin1/catalogo/mapfile/editor/exec.php b/admin1/catalogo/mapfile/editor/exec.php index a0101fb..15c5adc 100755 --- a/admin1/catalogo/mapfile/editor/exec.php +++ b/admin1/catalogo/mapfile/editor/exec.php @@ -1,230 +1,3 @@ getlayerbyname ( $codigo ); - if ($layer == "") { - return "
Atenção: não existe nenhum LAYER com NAME igual a " . $codigo . "
"; - } else { - // pega o metadata - $meta = $layer->getmetadata ( "permitedownload" ); - $meta = strtoupper ( $meta ); - if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { - // grava no banco - $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET download_tema='$meta' WHERE codigo_tema = '$codigo'" ); - } - $meta = $layer->getmetadata ( "permiteogc" ); - $meta = strtoupper ( $meta ); - if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { - $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET ogc_tema='$meta' WHERE codigo_tema = '$codigo'" ); - } - $meta = $layer->getmetadata ( "permitekml" ); - $meta = strtoupper ( $meta ); - if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { - $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET kml_tema='$meta' WHERE codigo_tema = '$codigo'" ); - } - $meta = $layer->getmetadata ( "permitekmz" ); - $meta = strtoupper ( $meta ); - if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { - $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET kmz_tema='$meta' WHERE codigo_tema = '$codigo'" ); - } - } - } - $texto = file_get_contents ( $mapfile ); - if (mb_detect_encoding ( $texto, 'UTF-8, ISO-8859-1' ) == "ISO-8859-1") { - return utf8_encode ( $texto ); - } else { - return $texto; - } -} -function salvaMapfile() { - global $locaplic, $dbhw, $codigo, $gravarTexto, $esquemaadmin; - if (empty ( $gravarTexto )) { - return; - } - $mapfile = $locaplic . "/temas/" . $codigo . ".map"; - $original = file_get_contents ( $mapfile ); - $fp = fopen ( $mapfile, "w" ); - if ($fp == false) { - echo "Não foi possível salvar o arquivo. Verifique as permissões ou se há algum erro no mapfile

"; - exit (); - } else { - // remove itens vazios - $novoTexto = array (); - $testar = array ( - "TEMPORIZADOR", - "PALLETESTEP", - "LTEMPOITEMIMAGEM", - "METAESTAT_ID_MEDIDA_VARIAVEL", - "GMOPACITY", - "GMSTATUS", - "ICONETEMA", - "LTEMPOITEMTITULO", - "DESCRIPTION_TEMPLATE", - "LTEMPOITEMLINK", - "TILES", - "METAESTAT_CODIGO_TIPO_REGIAO", - "ARQUIVOTEMAORIGINAL", - "PALLETEFILE", - "NOMEORIGINAL", - "OLSTATUS", - "PERMITEDOWNLOAD", - "LTEMPOFORMATODATA", - "FILTROORIGINAL", - "PERMITECOMENTARIO", - "LTEMPOITEMICONE", - "DATAORIGINAL", - "PLUGINI3GEO", - "METAESTAT", - "ITEMBUSCARAPIDA", - "ARQUIVODOWNLOAD", - "ARQUIVOKMZ", - "PERMITEKML", - "PERMITEOGC", - "CONVCARACTER", - "CORTEPIXELS", - "EDITORSQL", - "LTEMPOCONVENCODE", - "LTEMPOITEMFIM", - "OLOPACITY", - "LEGENDAWMS", - "LEGENDAIMG", - "KEYIMAGE", - "TILEINDEX", - "TILEITEM", - "SYMBOL", - "LABELITEM", - "FILTERITEM", - "GROUP", - "ENCODING", - "TIP", - "CLASSE", - "ITENSDESC", - "CLASSESNOME", - "ITENSLINK", - "ESCALA", - "CLASSESSIMBOLO", - "MENSAGEM", - "EXTENSAO", - "CLASSESITEM", - "ESCONDIDO", - "CLASSESCOR", - "DOWNLOAD", - "CLASSESTAMANHO", - "ITENS", - "TEMA", - "APLICAEXTENSAO", - "IDENTIFICA", - "TRANSITIONEFFECT" - ); - foreach ( preg_split ( '~[\r\n]+~', $gravarTexto ) as $line ) { - $teste = strtoupper ( $line ); - $teste = trim ( $teste ); - $teste = str_replace ( array ( - " ", - "'", - '"' - ), "", $teste ); - $teste = preg_replace ( '/[\n\r\t ]*/', '', $teste ); - $passou = true; - foreach ( $testar as $t ) { - if ($teste == $t) { - $passou = false; - } - } - if ($passou == true) { - if (mb_detect_encoding ( $line, 'UTF-8' ) == "UTF-8") { - $line = mb_convert_encoding ( $line, "ISO-8859-1", "UTF-8" ); - } - $novoTexto [] = $line; - } - } - fwrite ( $fp, implode ( "\r\n", $novoTexto ) ); - } - fclose ( $fp ); - // testa o mapfile - ms_ResetErrorList (); - if (! @ms_newMapObj ( $mapfile )) { - echo "Erro no arquivo sera mantido o original
"; - $error = ms_GetErrorObj (); - while ( $error && $error->code != MS_NOERR ) { - printf ( "
Error in %s: %s
\n", $error->routine, $error->message ); - $error = $error->next (); - } - $fp = fopen ( $mapfile, "w" ); - fwrite ( $fp, $original ); - fclose ( $fp ); - exit (); - } - - // verifica os metadata que sao armazenados tambem no banco de dados de administracao - // isso e necessario para manter a consistencia caso o usuario altere manualmente os valores - - // cria o objeto map - $mapa = ms_newMapObj ( $mapfile ); - - $layer = $mapa->getlayerbyname ( $codigo ); - if ($layer == "") { - return "
Atenção: não existe nenhum LAYER com NAME igual a " . $codigo . "
"; - } else { - // pega o metadata - $meta = $layer->getmetadata ( "permitedownload" ); - $meta = strtoupper ( $meta ); - $dataCol = array(); - if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { - $dataCol["download_tema"] = $meta; - } - $meta = $layer->getmetadata ( "permiteogc" ); - $meta = strtoupper ( $meta ); - if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { - $dataCol["ogc_tema"] = $meta; - } - $meta = $layer->getmetadata ( "permitekml" ); - $meta = strtoupper ( $meta ); - if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { - $dataCol["kml_tema"] = $meta; - } - $meta = $layer->getmetadata ( "permitekmz" ); - $meta = strtoupper ( $meta ); - if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { - $dataCol["kmz_tema"] = $meta; - } - $resultado = i3GeoAdminUpdate ( $dbhw, "i3geoadmin_temas", $dataCol, "WHERE codigo_tema = '$codigo'" ); - } -} ?> \ No newline at end of file diff --git a/admin1/catalogo/mapfile/editor/funcoes.php b/admin1/catalogo/mapfile/editor/funcoes.php new file mode 100644 index 0000000..cdff0da --- /dev/null +++ b/admin1/catalogo/mapfile/editor/funcoes.php @@ -0,0 +1,215 @@ +getlayerbyname ( $codigo ); + if ($layer == "") { + return "
Atenção: não existe nenhum LAYER com NAME igual a " . $codigo . "
"; + } else { + // pega o metadata + $meta = $layer->getmetadata ( "permitedownload" ); + $meta = strtoupper ( $meta ); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + // grava no banco + $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET download_tema='$meta' WHERE codigo_tema = '$codigo'" ); + } + $meta = $layer->getmetadata ( "permiteogc" ); + $meta = strtoupper ( $meta ); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET ogc_tema='$meta' WHERE codigo_tema = '$codigo'" ); + } + $meta = $layer->getmetadata ( "permitekml" ); + $meta = strtoupper ( $meta ); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET kml_tema='$meta' WHERE codigo_tema = '$codigo'" ); + } + $meta = $layer->getmetadata ( "permitekmz" ); + $meta = strtoupper ( $meta ); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + $dbhw->query ( "UPDATE " . $esquemaadmin . "i3geoadmin_temas SET kmz_tema='$meta' WHERE codigo_tema = '$codigo'" ); + } + } + } + $texto = file_get_contents ( $mapfile ); + if (mb_detect_encoding ( $texto, 'UTF-8, ISO-8859-1' ) == "ISO-8859-1") { + return utf8_encode ( $texto ); + } else { + return $texto; + } +} +function salvaMapfile() { + global $locaplic, $dbhw, $codigo, $gravarTexto, $esquemaadmin; + if (empty ( $gravarTexto )) { + return; + } + $mapfile = $locaplic . "/temas/" . $codigo . ".map"; + $original = file_get_contents ( $mapfile ); + $fp = fopen ( $mapfile, "w" ); + if ($fp == false) { + echo "Não foi possível salvar o arquivo. Verifique as permissões ou se há algum erro no mapfile

"; + exit (); + } else { + // remove itens vazios + $novoTexto = array (); + $testar = array ( + "TEMPORIZADOR", + "PALLETESTEP", + "LTEMPOITEMIMAGEM", + "METAESTAT_ID_MEDIDA_VARIAVEL", + "GMOPACITY", + "GMSTATUS", + "ICONETEMA", + "LTEMPOITEMTITULO", + "DESCRIPTION_TEMPLATE", + "LTEMPOITEMLINK", + "TILES", + "METAESTAT_CODIGO_TIPO_REGIAO", + "ARQUIVOTEMAORIGINAL", + "PALLETEFILE", + "NOMEORIGINAL", + "OLSTATUS", + "PERMITEDOWNLOAD", + "LTEMPOFORMATODATA", + "FILTROORIGINAL", + "PERMITECOMENTARIO", + "LTEMPOITEMICONE", + "DATAORIGINAL", + "PLUGINI3GEO", + "METAESTAT", + "ITEMBUSCARAPIDA", + "ARQUIVODOWNLOAD", + "ARQUIVOKMZ", + "PERMITEKML", + "PERMITEOGC", + "CONVCARACTER", + "CORTEPIXELS", + "EDITORSQL", + "LTEMPOCONVENCODE", + "LTEMPOITEMFIM", + "OLOPACITY", + "LEGENDAWMS", + "LEGENDAIMG", + "KEYIMAGE", + "TILEINDEX", + "TILEITEM", + "SYMBOL", + "LABELITEM", + "FILTERITEM", + "GROUP", + "ENCODING", + "TIP", + "CLASSE", + "ITENSDESC", + "CLASSESNOME", + "ITENSLINK", + "ESCALA", + "CLASSESSIMBOLO", + "MENSAGEM", + "EXTENSAO", + "CLASSESITEM", + "ESCONDIDO", + "CLASSESCOR", + "DOWNLOAD", + "CLASSESTAMANHO", + "ITENS", + "TEMA", + "APLICAEXTENSAO", + "IDENTIFICA", + "TRANSITIONEFFECT" + ); + foreach ( preg_split ( '~[\r\n]+~', $gravarTexto ) as $line ) { + $teste = strtoupper ( $line ); + $teste = trim ( $teste ); + $teste = str_replace ( array ( + " ", + "'", + '"' + ), "", $teste ); + $teste = preg_replace ( '/[\n\r\t ]*/', '', $teste ); + $passou = true; + foreach ( $testar as $t ) { + if ($teste == $t) { + $passou = false; + } + } + if ($passou == true) { + if (mb_detect_encoding ( $line, 'UTF-8' ) == "UTF-8") { + $line = mb_convert_encoding ( $line, "ISO-8859-1", "UTF-8" ); + } + $novoTexto [] = $line; + } + } + fwrite ( $fp, implode ( "\r\n", $novoTexto ) ); + } + fclose ( $fp ); + // testa o mapfile + ms_ResetErrorList (); + if (! @ms_newMapObj ( $mapfile )) { + echo "Erro no arquivo sera mantido o original
"; + $error = ms_GetErrorObj (); + while ( $error && $error->code != MS_NOERR ) { + printf ( "
Error in %s: %s
\n", $error->routine, $error->message ); + $error = $error->next (); + } + $fp = fopen ( $mapfile, "w" ); + fwrite ( $fp, $original ); + fclose ( $fp ); + exit (); + } + + // verifica os metadata que sao armazenados tambem no banco de dados de administracao + // isso e necessario para manter a consistencia caso o usuario altere manualmente os valores + + // cria o objeto map + $mapa = ms_newMapObj ( $mapfile ); + + $layer = $mapa->getlayerbyname ( $codigo ); + if ($layer == "") { + return "
Atenção: não existe nenhum LAYER com NAME igual a " . $codigo . "
"; + } else { + // pega o metadata + $meta = $layer->getmetadata ( "permitedownload" ); + $meta = strtoupper ( $meta ); + $dataCol = array(); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + $dataCol["download_tema"] = $meta; + } + $meta = $layer->getmetadata ( "permiteogc" ); + $meta = strtoupper ( $meta ); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + $dataCol["ogc_tema"] = $meta; + } + $meta = $layer->getmetadata ( "permitekml" ); + $meta = strtoupper ( $meta ); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + $dataCol["kml_tema"] = $meta; + } + $meta = $layer->getmetadata ( "permitekmz" ); + $meta = strtoupper ( $meta ); + if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { + $dataCol["kmz_tema"] = $meta; + } + $resultado = i3GeoAdminUpdate ( $dbhw, "i3geoadmin_temas", $dataCol, "WHERE codigo_tema = '$codigo'" ); + } +} +?> \ No newline at end of file diff --git a/admin1/catalogo/mapfile/editor/index.php b/admin1/catalogo/mapfile/editor/index.php index 6bcd677..97a8cd7 100755 --- a/admin1/catalogo/mapfile/editor/index.php +++ b/admin1/catalogo/mapfile/editor/index.php @@ -8,9 +8,24 @@ error_reporting ( 0 ); include "../../../head.php"; $codigo = filter_var ( $_GET ["codigo"], FILTER_SANITIZE_STRING ); $id_tema = ( int ) $_GET ["id_tema"]; -include ("exec.php"); -salvaMapfile (); -$textoMapfile = textoMapfile ( $codigo ); +include_once (dirname ( __FILE__ ) . "/../../../../admin/php/login.php"); +include_once (dirname ( __FILE__ ) . "/../../../../admin/php/conexao.php"); +error_reporting ( 0 ); +if (isset ( $_POST ["texto"] )) { + $gravarTexto = $_POST ["texto"]; + $_POST ["texto"] = ""; +} +$versao = versao (); +$versao = $versao ["principal"]; + +if (verificaOperacaoSessao ( "admin/html/editortexto" ) === false) { + header ( "HTTP/1.1 403 Vc nao pode realizar essa operacao" ); + exit (); +} +error_reporting ( 0 ); +include("funcoes.php"); +\admin\catalogo\mapfile\editor\salvaMapfile (); +$textoMapfile = \admin\catalogo\mapfile\editor\textoMapfile ( $codigo ); ?>
diff --git a/admin1/catalogo/mapfile/exec.php b/admin1/catalogo/mapfile/exec.php index 813b34f..b222b67 100755 --- a/admin1/catalogo/mapfile/exec.php +++ b/admin1/catalogo/mapfile/exec.php @@ -34,65 +34,45 @@ if (verificaOperacaoSessao ( "admin/html/editormapfile" ) === false) { } include (dirname ( __FILE__ ) . "/../../../admin/php/conexao.php"); - +include ("funcoes.php"); $codigo = $_POST ["codigo"]; +$codigo = str_replace ( " ", "", removeAcentos ( $codigo ) ); +$codigo = str_replace ( ".", "", $codigo ); +$codigo = strip_tags ( $codigo ); +$codigo = htmlspecialchars ( $codigo, ENT_QUOTES ); $funcao = strtoupper ( $funcao ); switch ($funcao) { case "ADICIONAR" : - $codigo = str_replace ( " ", "", removeAcentos ( $codigo ) ); - $codigo = str_replace ( ".", "", $codigo ); - $codigo = strip_tags ( $codigo ); - $codigo = htmlspecialchars ( $codigo, ENT_QUOTES ); - $arq = $locaplic . "/temas/" . $codigo . ".map"; - if ($codigo == "" || file_exists ( $arq )) { - header ( "HTTP/1.1 400 arquivo ja existe" ); - exit (); - } if(empty($_POST["titulolegenda"])){ $_POST["titulolegenda"] = $_POST ["nome_tema"]; } - $novo = adicionar ( $locaplic, $_POST["titulolegenda"], $_POST ["link_tema"], $codigo, $_POST ["acessopublico"], $_POST ["metaestat"], $_POST ["nome_tema"], $_POST ["desc_tema"], $_POST ["en"], $_POST ["es"], true, $dbhw ); + $novo = \admin\catalogo\mapfile\adicionar ( $locaplic, $_POST["titulolegenda"], $_POST ["link_tema"], $codigo, $_POST ["acessopublico"], $_POST ["metaestat"], $_POST ["nome_tema"], $_POST ["desc_tema"], $_POST ["en"], $_POST ["es"], true, $dbhw ); + $dbhw = null; + $dbh = null; if ($novo === false) { header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); - exit (); + } else { + //e necessario retornar o codigo criado pois e usado na interface + retornaJSON ( array ( + "codigo" => $codigo + ) ); } - retornaJSON ( array ( - "codigo" => $codigo - ) ); - exit (); break; case "ALTERAR" : - $codigo = str_replace ( " ", "", removeAcentos ( $codigo ) ); - $codigo = str_replace ( ".", "", $codigo ); - $codigo = strip_tags ( $codigo ); - $codigo = htmlspecialchars ( $codigo, ENT_QUOTES ); - $arq = $locaplic . "/temas/" . $codigo . ".map"; - if ($codigo == "" || !file_exists ( $arq )) { - header ( "HTTP/1.1 400 arquivo nao existe" ); - exit (); - } if(empty($_POST["titulolegenda"])){ $_POST["titulolegenda"] = $_POST ["nome_tema"]; } //quando e feita a listagem unica, o mapfile ja foi registrado no banco se nao tinha sido antes - $novo = alterar ( $locaplic, $_POST["id_tema"], $_POST["titulolegenda"], $_POST ["link_tema"], $codigo, $_POST ["acessopublico"], $_POST ["metaestat"], $_POST ["nome_tema"], $_POST ["desc_tema"], $_POST ["en"], $_POST ["es"], true, $dbhw ); + $novo = \admin\catalogo\mapfile\alterar ( $locaplic, $_POST["id_tema"], $_POST["titulolegenda"], $_POST ["link_tema"], $codigo, $_POST ["acessopublico"], $_POST ["metaestat"], $_POST ["nome_tema"], $_POST ["desc_tema"], $_POST ["en"], $_POST ["es"], true, $dbhw ); + $dbhw = null; + $dbh = null; if ($novo === false) { header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); - exit (); } - retornaJSON ( array ( - "codigo" => $codigo - ) ); - exit (); break; case "EXCLUIR" : - $codigo = $_POST ["codigo"]; - $codigo = str_replace ( " ", "", removeAcentos ( $codigo ) ); - $codigo = str_replace ( ".", "", $codigo ); - $codigo = strip_tags ( $codigo ); - $codigo = htmlspecialchars ( $codigo, ENT_QUOTES ); - $retorna = excluir ( $codigo, $dbhw ); + $retorna = \admin\catalogo\mapfile\excluir ( $codigo, $dbhw ); $dbhw = null; $dbh = null; if ($retorna === false) { @@ -102,10 +82,9 @@ switch ($funcao) { retornaJSON ( array ( "codigo" => $codigo ) ); - exit (); break; case "LISTA" : - $retorna = lista ( $dbh, $_POST ["filtro"], $_POST ["palavra"], $_POST ["validar"] ); + $retorna = \admin\catalogo\mapfile\listar ( $dbh, $_POST ["filtro"], $_POST ["palavra"], $_POST ["validar"] ); $dbhw = null; $dbh = null; if ($retorna === false) { @@ -113,566 +92,35 @@ switch ($funcao) { exit (); } retornaJSON ( $retorna ); - exit (); break; case "LISTAUNICO" : - //pega o nome registrado no mapfile - if(!file_exists($locaplic."/temas/".$codigo.".map")){ - header ( "HTTP/1.1 500 erro mapfile nao existe" ); - exit (); - } - $mapa = ms_newMapObj ( $locaplic."/temas/".$codigo.".map" ); - $layer = $mapa->getlayerbyname($codigo); - if($layer == ""){ - header ( "HTTP/1.1 500 erro nao existe LAYER com o nome $codigo" ); - exit (); - } - $titulolegenda = $layer->getmetadata("TEMA"); - $metaestat = $layer->getmetadata("METAESTAT"); - $dados = pegaDados ( "SELECT * from ".$esquemaadmin."i3geoadmin_temas WHERE codigo_tema = '$codigo' ", $dbh, false ); - //se nao existir no sistema de admin, faz o registro - if(count($dados) == 0){ - $dataCol = array ( - "kml_tema" => "SIM", - "kmz_tema" => "SIM", - "ogc_tema" => "SIM", - "download_tema" => "SIM", - "desc_tema" => "", - "tipoa_tema" => "", - "tags_tema" => "", - "nome_tema" => $titulolegenda, - "codigo_tema" => $codigo, - "it" => "", - "es" => "", - "en" => "" - ); - $id_tema = i3GeoAdminInsertUnico($dbhw,"i3geoadmin_temas",$dataCol,"link_tema","id_tema"); - $dados = pegaDados ( "SELECT * from ".$esquemaadmin."i3geoadmin_temas WHERE codigo_tema = '$codigo' AND id_tema = $id_tema ", $dbh, false ); - if(count($dados) == 0){ - $dbhw = null; - $dbh = null; - header ( "HTTP/1.1 500 erro ao registrar no banco de dados" ); - exit (); - } - } - if ($dados === false) { - $dbhw = null; - $dbh = null; + $retorna = \admin\catalogo\mapfile\listaUnico ( $dbh, $codigo ); + $dbhw = null; + $dbh = null; + if ($retorna === false) { header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); - exit (); - } - $acessopublico = ""; - if(strtolower($dados[0]["ogc_tema"]) !== "nao" || strtolower($dados[0]["download_tema"]) !== "nao"){ - $acessopublico = "checked"; - } - if($metaestat == ""){ - $dados[0]["metaestatnao"] = "selected"; } else { - $dados[0]["metaestatsim"] = "selected"; - } - $dados[0]["acessopublico"] = $acessopublico; - $dados[0]["metaestat"] = $metaestat; - //a pagina e utf e o texto pode ser iso - if(mb_detect_encoding($titulolegenda,'UTF-8, ISO-8859-1') == "ISO-8859-1"){ - $titulolegenda = utf8_encode($titulolegenda); + retornaJSON ( array("dados"=>$retorna) ); } - $dados[0]["titulolegenda"] = $titulolegenda; - $dados[0]["codigo"] = $codigo; - retornaJSON ( array("dados"=>$dados[0]) ); break; case "LIMPACACHE" : - $mapfile = $locaplic . "/temas/" . $_POST ["codigo"] . ".map"; - if (! file_exists ( $mapfile )) { - header ( "HTTP/1.1 403 arquivo nao existe" ); - exit (); - } - $mapa = ms_newMapObj ( $mapfile ); - $nomes = $mapa->getalllayernames (); - // $cachedir e $dir_tmp vem de ms_configura.php - if ($cachedir != "") { - $d = $cachedir; - } else { - $d = $dir_tmp . "/cache"; - } - foreach ( $nomes as $nome ) { - $nome = str_replace ( ".", "", $nome ); - $nome = strip_tags ( $nome ); - $nome = htmlspecialchars ( $nome, ENT_QUOTES ); - $dirs [] = $d . "/" . $nome; - $dirs [] = $d . "/googlemaps/" . $nome; - $dirs [] = $d . "/wmts/" . $nome; - foreach ( $dirs as $dir ) { - rrmdir ( $dir ); - } - } + $retorna = \admin\catalogo\mapfile\limpaCache($locaplic, $codigo, $cachedir, $dir_tmp); retornaJSON ( "ok" ); - exit (); break; case "CLONARMAPFILE" : - $codigo = $_POST ["codigo"]; - $codigo = str_replace ( " ", "", removeAcentos ( $codigo ) ); - $codigo = str_replace ( ".", "", $codigo ); - $codigo = strip_tags ( $codigo ); - $codigo = htmlspecialchars ( $codigo, ENT_QUOTES ); - $novocodigo = $_POST ["novocodigo"]; $novocodigo = str_replace ( " ", "", removeAcentos ( $novocodigo ) ); $novocodigo = str_replace ( ".", "", $novocodigo ); $novocodigo = strip_tags ( $novocodigo ); $novocodigo = htmlspecialchars ( $novocodigo, ENT_QUOTES ); - - $arq = $locaplic . "/temas/" . $codigo . ".map"; - $arqnovo = $locaplic . "/temas/" . $novocodigo . ".map"; - - if ($codigo == "" || !file_exists ( $arq )) { - header ( "HTTP/1.1 400 arquivo nao existe" ); - exit (); - } - if ($novocodigo == "" || file_exists ( $arqnovo )) { - header ( "HTTP/1.1 400 arquivo ja existe" ); - exit (); - } - //obtem os dados do banco do tema existente - $dados = pegaDados ( "SELECT * from " . $esquemaadmin . "i3geoadmin_temas WHERE codigo_tema = '" . $codigo . "'", $dbh, false ); - if (count ( $dados ) > 0) { - //o mapfile esta registrado como um tema no banco de adm - $dataCol = array ( - "link_tema" => $dados [0] ["link_tema"], - "kml_tema" => $dados [0] ["kml_tema"], - "kmz_tema" => $dados [0] ["kmz_tema"], - "ogc_tema" => $dados [0] ["ogc_tema"], - "download_tema" => $dados [0] ["download_tema"], - "desc_tema" => "", - "tipoa_tema" => $dados [0] ["tipoa_tema"], - "tags_tema" => '', - "nome_tema" => $_POST["titulo"], - "codigo_tema" => $novocodigo, - "it" => "", - "es" => "", - "en" => "" - ); - $acessopublico = $dados [0] ["download_tema"]; - } else { - $acessopublico = ""; - } - //faz a copia do mapfile - $mapa = ms_newMapObj($arq); - $layer = @$mapa->getlayerbyname($codigo); - $layer->set("name",$novocodigo); - $layer->setmetadata("TEMA",$_POST["titulo"]); - $mapa->save($arqnovo); - include(dirname(__FILE__)."/../../php/removeCabecalhoMapfile.php"); - removeCabecalhoMapfile($arqnovo); - - if (count ( $dados ) > 0) { - //registra no banco de dados caso nao tenha ocorrido erro ao criar o mapfile - i3GeoAdminInsert ( $dbhw, "i3geoadmin_temas", $dataCol ); - } + $titulo = $_POST["titulo"]; + $retorna = \admin\catalogo\mapfile\clonarMapfile($codigo,$novocodigo,$titulo,$dbh,$dbhw); retornaJSON ( array ( "codigo" => $novocodigo ) ); - exit (); + break; + default: + header ( "HTTP/1.1 500 erro funcao nao existe" ); break; } -cpjson ( $retorno ); -function excluir($codigo, $dbhw) { - global $locaplic, $esquemaadmin; - // pega o id do tema - // se o mapfile nao estiver registrado, $id sera vazio - $dados = pegaDados ( "SELECT id_tema from " . $esquemaadmin . "i3geoadmin_temas WHERE codigo_tema = '" . $codigo . "'", $dbhw, false ); - if (count ( $dados ) > 0) { - $id = $dados [0] ["id_tema"]; - } else { - $id = ""; - } - // verifica se o tema esta em uso - if ($id != "") { - $r = pegaDados ( "SELECT id_tema from " . $esquemaadmin . "i3geoadmin_n3 where id_tema ='$id'", $dbhw, false ); - if (count ( $r ) > 0) { - return "o tema e utilizado em algum subgrupo"; - } - $r = pegaDados ( "SELECT id_tema from " . $esquemaadmin . "i3geoadmin_raiz where id_tema ='$id'", $dbhw, false ); - if (count ( $r ) > 0) { - return "o tema e utilizado em alguma raiz"; - } - } - if (! file_exists ( "$locaplic/temas/" . $codigo . ".map" )) { - return "o arquivo mapfile nao existe"; - } - // verifica se pode escrever - $handle = fopen ( "$locaplic/temas/" . $codigo . ".map", "r+" ); - if ($handle == false) { - return "o arquivo nao pode ser apagado verifique as permissoes"; - } - fclose ( $handle ); - // tenta excluir do banco - $resultado = i3GeoAdminExclui ( $esquemaadmin . "i3geoadmin_temas", "id_tema", $id, $dbhw, true ); - if ($resultado === false) { - return "nao foi possivel excluir do banco de dados"; - } - unlink ( "$locaplic/temas/" . $codigo . ".map" ); - return true; -} -function alterar($locaplic, $id_tema, $titulolegenda, $link_tema, $codigo, $acessopublico, $metaestat, $titulo, $desc_tema, $tituloEN, $tituloES, $registraBanco, $dbhw) { - global $convUTF, $esquemaadmin; - $arq = $locaplic . "/temas/" . $codigo . ".map"; - if(!file_exists($locaplic . "/temas/" . $codigo . ".map")){ - return false; - } - $mapa = ms_newMapObj($arq); - $layer = @$mapa->getlayerbyname($codigo); - if($layer == ""){ - return false; - } - if(mb_detect_encoding($titulolegenda,'UTF-8, ISO-8859-1') == "UTF-8"){ - $titulolegenda = utf8_decode($titulolegenda); - } - if ($convUTF != true) { - $titulo = utf8_decode ( $titulo ); - $desc_tema = utf8_decode ( $desc_tema ); - } - - if (empty ( $acessopublico ) || $acessopublico == "on") { - $acessopublico = "SIM"; - } else { - $acessopublico = "NAO"; - } - $layer->setmetadata("permiteogc",$acessopublico); - $layer->setmetadata("permitedownload",$acessopublico); - $layer->setmetadata("permitekml",$acessopublico); - $layer->setmetadata("permitekmz",$acessopublico); - $layer->setmetadata("TEMA",$titulolegenda); - if (! empty ( $metaestat ) && $metaestat == "SIM") { - $layer->setmetadata("METAESTAT","SIM"); - $tipoa_tema = "META"; - } else { - $layer->setmetadata("METAESTAT",""); - $tipoa_tema = ""; - } - - - try { - $dataCol = array ( - "link_tema" => $link_tema, - "kml_tema" => $acessopublico, - "kmz_tema" => $acessopublico, - "ogc_tema" => $acessopublico, - "download_tema" => $acessopublico, - "desc_tema" => $desc_tema, - "tipoa_tema" => $tipoa_tema, - "tags_tema" => '', - "nome_tema" => $titulo, - "codigo_tema" => $codigo, - "it" => "", - "es" => $tituloES, - "en" => $tituloEN - ); - $resultado = i3GeoAdminUpdate ( $dbhw, "i3geoadmin_temas", $dataCol, "WHERE id_tema = $id_tema" ); - if ($resultado === false) { - return false; - } - $mapa->save($arq); - include(dirname(__FILE__)."/../../php/removeCabecalhoMapfile.php"); - removeCabecalhoMapfile($arq); - return true; - } catch ( PDOException $e ) { - return false; - } -} -function adicionar($locaplic, $titulolegenda, $link_tema, $codigo, $acessopublico, $metaestat, $titulo, $desc_tema, $tituloEN, $tituloES, $registraBanco, $dbhw) { - global $convUTF, $esquemaadmin; - $arq = $locaplic . "/temas/" . $codigo . ".map"; - if (empty ( $acessopublico ) || $acessopublico == "on") { - $acessopublico = "SIM"; - } else { - $acessopublico = "NAO"; - } - if(mb_detect_encoding($titulolegenda,'UTF-8, ISO-8859-1') == "UTF-8"){ - $titulolegenda = utf8_decode($titulolegenda); - } - $tipoLayer = "line"; - $dados [] = "MAP"; - $dados [] = "SYMBOLSET ../symbols/simbolosv6.sym"; - $dados [] = 'FONTSET "../symbols/fontes.txt"'; - $dados [] = "LAYER"; - $dados [] = ' NAME "' . $codigo . '"'; - $dados [] = ' TEMPLATE "none.htm"'; - if (! empty ( $metaestat ) && $metaestat == "SIM") { - $dados [] = ' CONNECTIONTYPE POSTGIS'; - $tipoLayer = "polygon"; - } - $dados [] = " TYPE " . $tipoLayer; - $dados [] = ' DATA ""'; - $dados [] = ' CONNECTION ""'; - $dados [] = ' STATUS DEFAULT'; - $dados [] = ' METADATA'; - $dados [] = ' TEMA "' . $titulolegenda . '"'; - $dados [] = ' CLASSE "SIM"'; - $tipoa_tema = ""; - if (! empty ( $metaestat ) && $metaestat == "SIM") { - $dados [] = ' METAESTAT "SIM"'; - // para marcar no banco de dados de administracao - $tipoa_tema = "META"; - } - $dados [] = ' permiteogc "' . $acessopublico . '"'; - $dados [] = ' permitedownload "' . $acessopublico . '"'; - $dados [] = ' permitekml "' . $acessopublico . '"'; - $dados [] = ' permitekmz "' . $acessopublico . '"'; - $dados [] = ' END'; - $dados [] = ' CLASS'; - $dados [] = ' NAME ""'; - $dados [] = ' STYLE'; - $dados [] = ' COLOR 0 0 0'; - $dados [] = ' SIZE 12'; - $dados [] = ' END'; - $dados [] = ' END'; - $dados [] = "END"; - $dados [] = "END"; - - // abre o arquivo para ver se nao deu erro antes de adicionar ao banco - $fp = fopen ( $arq, "w" ); - if ($fp === false) { - return false; - } - if ($convUTF != true) { - $titulo = utf8_decode ( $titulo ); - $desc_tema = utf8_decode ( $desc_tema ); - } - if($registraBanco == true){ - try { - $dataCol = array ( - "link_tema" => $link_tema, - "kml_tema" => $acessopublico, - "kmz_tema" => $acessopublico, - "ogc_tema" => $acessopublico, - "download_tema" => $acessopublico, - "desc_tema" => $desc_tema, - "tipoa_tema" => $tipoa_tema, - "tags_tema" => '', - "nome_tema" => $titulo, - "codigo_tema" => $codigo, - "it" => "", - "es" => $tituloES, - "en" => $tituloEN - ); - i3GeoAdminInsert ( $dbhw, "i3geoadmin_temas", $dataCol ); - // salva o arquivo mapfile - foreach ( $dados as $dado ) { - fwrite ( $fp, $dado . "\n" ); - } - fclose ( $fp ); - return true; - } catch ( PDOException $e ) { - return false; - } - } else { - return true; - } -} -function lista($dbh, $filtro = "", $palavra = "", $validar = "") { - global $convUTF, $locaplic, $esquemaadmin; - $arquivos = array (); - if (is_dir ( $locaplic . "/temas" )) { - if ($dh = opendir ( $locaplic . "/temas" )) { - while ( ($file = readdir ( $dh )) !== false ) { - if (! stristr ( $file, '.map' ) === FALSE) { - $file = str_replace ( ".map", "", $file ); - // verifica se existe um filtro de palavra - if ($palavra != "") { - if (stripos ( $file, $palavra ) !== false) { - $arquivos [] = array ( - "nome" => $file - ); - } - } else { - $arquivos [] = array ( - "nome" => $file - ); - } - } - } - } - closedir ( $dh ); - } - sort ( $arquivos ); - - // - // pega o nome de cada tema filtrando a listagem se for o caso - // - $regs = pegaDados ( "select * from " . $esquemaadmin . "i3geoadmin_temas ", $dbh, false ); - - $nomes = array (); - $ids = array (); - $dadosBanco = array (); - foreach ( $regs as $reg ) { - if ($convUTF != true) { - $reg ["nome_tema"] = utf8_decode ( $reg ["nome_tema"] ); - } - $nomes [$reg ["codigo_tema"]] = $reg ["nome_tema"]; - $ids [$reg ["codigo_tema"]] = $reg ["id_tema"]; - $dadosBanco [$reg ["id_tema"]] = $reg; - } - $lista = array (); - foreach ( $arquivos as $arq ) { - $arq = $arq ["nome"]; - $nT = explode ( ".", $arq ); - $n = $nomes [$nT [0]]; - if (! $n) { - $n = ""; - } - $id = $ids [$nT [0]]; - //o mapfile nao esta registrado no banco - if (! $id && empty($validar)) { - $id = ""; - } else { - //aplica as validacoes. Se nao passar na validacao $id ficara vazio, para nao mostrar no resultado final - switch ($validar) { - case 1 : - if($dadosBanco[$id]["link_tema"] !== ""){ - $id = ""; - } - break; - case 2 : - if($dadosBanco[$id]["nome_tema"] == ""){ - $id = "-"; - } else { - $id = ""; - } - break; - case 3 : - if($dadosBanco[$id]["nome_tema"] == ""){ - $id = ""; - } - break; - case 4 : - if(strtolower($dadosBanco[$id]["download_tema"]) !== "sim"){ - $id = ""; - } - break; - case 5 : - if(strtolower($dadosBanco[$id]["download_tema"]) !== "nao"){ - $id = ""; - } - break; - case 6 : - if(strtolower($dadosBanco[$id]["ogc_tema"]) !== "sim"){ - $id = ""; - } - break; - case 7 : - if(strtolower($dadosBanco[$id]["ogc_tema"]) !== "nao"){ - $id = ""; - } - break; - case 8 : - if(strtolower($dadosBanco[$id]["kml_tema"]) !== "sim"){ - $id = ""; - } - break; - case 9 : - if(strtolower($dadosBanco[$id]["kml_tema"]) !== "nao"){ - $id = ""; - } - break; - case 10 : - if(strtolower($dadosBanco[$id]["kmz_tema"]) !== "sim"){ - $id = ""; - } - break; - case 11 : - if(strtolower($dadosBanco[$id]["kmz_tema"]) !== "nao"){ - $id = ""; - } - break; - } - } - $imagem = ""; - if (file_exists ( $locaplic . "/temas/miniaturas/" . $arq . ".map.mini.png" )) { - $imagem = $arq . ".map.mini.png"; - } - - if ($validar == 12) { - if (file_exists ( $locaplic . "/temas/" . $arq . ".map" )) { - $handle = fopen ( $locaplic . "/temas/" . $arq . ".map", "r" ); - while ( ! feof ( $handle ) ) { - $linha = fgets ( $handle ); - if (stripos ( $linha, "'TEMA'" ) !== false || stripos ( $linha, '"TEMA"' ) !== false) { - $ntema = str_replace ( array ( - "'TEMA'", - '"TEMA"', - "'tema'", - '"tema"' - ), "", $linha ); - $ntema = trim ( str_replace ( array ( - "'", - '"' - ), "", $ntema ) ); - $temp = $n; - if ($n != $ntema && utf8_decode($temp) != $ntema && $n != "") { - $n .= "" . utf8_encode($ntema) . ""; - } else { - $n .= "" . utf8_encode($ntema) . ""; - } - break; - } - } - fclose ( $handle ); - } - } - if ($validar == 13) { - if (file_exists ( $locaplic . "/temas/" . $arq . ".map" )) { - $handle = fopen ( $locaplic . "/temas/" . $arq . ".map", "r" ); - // deve buscar dentro de LAYER pois pode haver simbolos antes - $elayer = false; - while ( ! feof ( $handle ) ) { - $linha = trim ( fgets ( $handle ) ); - if (stripos ( $linha, "LAYER" ) === 0) { - $elayer = true; - } - if ($elayer == true && stripos ( $linha, "NAME" ) === 0) { - $ntema = ltrim ( $linha, "NAMEname" ); - $ntema = trim ( str_replace ( array ( - "'", - '"' - ), "", $ntema ) ); - if ($arq != $ntema) { - $n .= "" . $ntema . ""; - } - break; - } - } - fclose ( $handle ); - } - } - //se id for vazio, nao consta no banco, por isso, se validar for definido, nao pode ser aplicado - if(empty($validar) || (!empty($validar) && $id != "")){ - $lista [] = array ( - "id_tema" => $id, - "nome" => $n, - "codigo" => $arq, - "imagem" => $imagem, - "extensao" => "" - ); - } - } - return $lista; -} -function rrmdir($dir) { - if (is_dir ( $dir )) { - $objects = scandir ( $dir ); - foreach ( $objects as $object ) { - if ($object != "." && $object != "..") { - if (filetype ( $dir . "/" . $object ) == "dir") { - rrmdir ( $dir . "/" . $object ); - } else { - $object = str_replace ( ".png", "", $object ) . ".png"; - chmod ( $dir . "/" . $object, 077 ); - unlink ( $dir . "/" . $object ); - } - } - } - reset ( $objects ); - // rmdir($dir); - } -} -?> +?> \ No newline at end of file diff --git a/admin1/catalogo/mapfile/funcoes.php b/admin1/catalogo/mapfile/funcoes.php new file mode 100755 index 0000000..541992c --- /dev/null +++ b/admin1/catalogo/mapfile/funcoes.php @@ -0,0 +1,554 @@ + 0) { + $id = $dados [0] ["id_tema"]; + } else { + $id = ""; + } + // verifica se o tema esta em uso + if ($id != "") { + $r = pegaDados ( "SELECT id_tema from " . $esquemaadmin . "i3geoadmin_n3 where id_tema ='$id'", $dbhw, false ); + if (count ( $r ) > 0) { + return "o tema e utilizado em algum subgrupo"; + } + $r = pegaDados ( "SELECT id_tema from " . $esquemaadmin . "i3geoadmin_raiz where id_tema ='$id'", $dbhw, false ); + if (count ( $r ) > 0) { + return "o tema e utilizado em alguma raiz"; + } + } + if (! file_exists ( "$locaplic/temas/" . $codigo . ".map" )) { + return "o arquivo mapfile nao existe"; + } + // verifica se pode escrever + $handle = fopen ( "$locaplic/temas/" . $codigo . ".map", "r+" ); + if ($handle == false) { + return "o arquivo nao pode ser apagado verifique as permissoes"; + } + fclose ( $handle ); + // tenta excluir do banco + $resultado = i3GeoAdminExclui ( $esquemaadmin . "i3geoadmin_temas", "id_tema", $id, $dbhw, true ); + if ($resultado === false) { + return "nao foi possivel excluir do banco de dados"; + } + unlink ( "$locaplic/temas/" . $codigo . ".map" ); + return true; +} +function alterar($locaplic, $id_tema, $titulolegenda, $link_tema, $codigo, $acessopublico, $metaestat, $titulo, $desc_tema, $tituloEN, $tituloES, $registraBanco, $dbhw) { + global $convUTF, $esquemaadmin; + $arq = $locaplic . "/temas/" . $codigo . ".map"; + if ($codigo == "" || ! file_exists ( $arq )) { + header ( "HTTP/1.1 400 arquivo nao existe" ); + exit (); + } + $mapa = ms_newMapObj ( $arq ); + $layer = @$mapa->getlayerbyname ( $codigo ); + if ($layer == "") { + return false; + } + if (mb_detect_encoding ( $titulolegenda, 'UTF-8, ISO-8859-1' ) == "UTF-8") { + $titulolegenda = utf8_decode ( $titulolegenda ); + } + if ($convUTF != true) { + $titulo = utf8_decode ( $titulo ); + $desc_tema = utf8_decode ( $desc_tema ); + } + + if (empty ( $acessopublico ) || $acessopublico == "on") { + $acessopublico = "SIM"; + } else { + $acessopublico = "NAO"; + } + $layer->setmetadata ( "permiteogc", $acessopublico ); + $layer->setmetadata ( "permitedownload", $acessopublico ); + $layer->setmetadata ( "permitekml", $acessopublico ); + $layer->setmetadata ( "permitekmz", $acessopublico ); + $layer->setmetadata ( "TEMA", $titulolegenda ); + if (! empty ( $metaestat ) && $metaestat == "SIM") { + $layer->setmetadata ( "METAESTAT", "SIM" ); + $tipoa_tema = "META"; + } else { + $layer->setmetadata ( "METAESTAT", "" ); + $tipoa_tema = ""; + } + try { + $dataCol = array ( + "link_tema" => $link_tema, + "kml_tema" => $acessopublico, + "kmz_tema" => $acessopublico, + "ogc_tema" => $acessopublico, + "download_tema" => $acessopublico, + "desc_tema" => $desc_tema, + "tipoa_tema" => $tipoa_tema, + "tags_tema" => '', + "nome_tema" => $titulo, + "codigo_tema" => $codigo, + "it" => "", + "es" => $tituloES, + "en" => $tituloEN + ); + $resultado = i3GeoAdminUpdate ( $dbhw, "i3geoadmin_temas", $dataCol, "WHERE id_tema = $id_tema" ); + if ($resultado === false) { + return false; + } + $mapa->save ( $arq ); + include (dirname ( __FILE__ ) . "/../../php/removeCabecalhoMapfile.php"); + removeCabecalhoMapfile ( $arq ); + return true; + } catch ( PDOException $e ) { + return false; + } +} +function adicionar($locaplic, $titulolegenda, $link_tema, $codigo, $acessopublico, $metaestat, $titulo, $desc_tema, $tituloEN, $tituloES, $registraBanco, $dbhw) { + global $convUTF, $esquemaadmin; + if ($codigo == "" || file_exists ( $arq )) { + header ( "HTTP/1.1 400 arquivo ja existe" ); + exit (); + } + $arq = $locaplic . "/temas/" . $codigo . ".map"; + + if (empty ( $acessopublico ) || $acessopublico == "on") { + $acessopublico = "SIM"; + } else { + $acessopublico = "NAO"; + } + if (mb_detect_encoding ( $titulolegenda, 'UTF-8, ISO-8859-1' ) == "UTF-8") { + $titulolegenda = utf8_decode ( $titulolegenda ); + } + $tipoLayer = "line"; + $dados [] = "MAP"; + $dados [] = "SYMBOLSET ../symbols/simbolosv6.sym"; + $dados [] = 'FONTSET "../symbols/fontes.txt"'; + $dados [] = "LAYER"; + $dados [] = ' NAME "' . $codigo . '"'; + $dados [] = ' TEMPLATE "none.htm"'; + if (! empty ( $metaestat ) && $metaestat == "SIM") { + $dados [] = ' CONNECTIONTYPE POSTGIS'; + $tipoLayer = "polygon"; + } + $dados [] = " TYPE " . $tipoLayer; + $dados [] = ' DATA ""'; + $dados [] = ' CONNECTION ""'; + $dados [] = ' STATUS DEFAULT'; + $dados [] = ' METADATA'; + $dados [] = ' TEMA "' . $titulolegenda . '"'; + $dados [] = ' CLASSE "SIM"'; + $tipoa_tema = ""; + if (! empty ( $metaestat ) && $metaestat == "SIM") { + $dados [] = ' METAESTAT "SIM"'; + // para marcar no banco de dados de administracao + $tipoa_tema = "META"; + } + $dados [] = ' permiteogc "' . $acessopublico . '"'; + $dados [] = ' permitedownload "' . $acessopublico . '"'; + $dados [] = ' permitekml "' . $acessopublico . '"'; + $dados [] = ' permitekmz "' . $acessopublico . '"'; + $dados [] = ' END'; + $dados [] = ' CLASS'; + $dados [] = ' NAME ""'; + $dados [] = ' STYLE'; + $dados [] = ' COLOR 0 0 0'; + $dados [] = ' SIZE 12'; + $dados [] = ' END'; + $dados [] = ' END'; + $dados [] = "END"; + $dados [] = "END"; + + // abre o arquivo para ver se nao deu erro antes de adicionar ao banco + $fp = fopen ( $arq, "w" ); + if ($fp === false) { + return false; + } + if ($convUTF != true) { + $titulo = utf8_decode ( $titulo ); + $desc_tema = utf8_decode ( $desc_tema ); + } + if ($registraBanco == true) { + try { + $dataCol = array ( + "link_tema" => $link_tema, + "kml_tema" => $acessopublico, + "kmz_tema" => $acessopublico, + "ogc_tema" => $acessopublico, + "download_tema" => $acessopublico, + "desc_tema" => $desc_tema, + "tipoa_tema" => $tipoa_tema, + "tags_tema" => '', + "nome_tema" => $titulo, + "codigo_tema" => $codigo, + "it" => "", + "es" => $tituloES, + "en" => $tituloEN + ); + i3GeoAdminInsert ( $dbhw, "i3geoadmin_temas", $dataCol ); + // salva o arquivo mapfile + foreach ( $dados as $dado ) { + fwrite ( $fp, $dado . "\n" ); + } + fclose ( $fp ); + return true; + } catch ( PDOException $e ) { + return false; + } + } else { + return true; + } +} +function listar($dbh, $filtro = "", $palavra = "", $validar = "") { + global $convUTF, $locaplic, $esquemaadmin; + $arquivosTemp = array (); + if (is_dir ( $locaplic . "/temas" )) { + if ($dh = opendir ( $locaplic . "/temas" )) { + while ( ($file = readdir ( $dh )) !== false ) { + if (! stristr ( $file, '.map' ) === FALSE) { + $file = str_replace ( ".map", "", $file ); + // verifica se existe um filtro de palavra + if ($palavra != "") { + if (stripos ( $file, $palavra ) !== false) { + $arquivosTemp [] = $file; + } + } else { + $arquivosTemp [] = $file; + } + } + } + } + closedir ( $dh ); + } + natcasesort( $arquivosTemp ); + $arquivos = array (); + foreach($arquivosTemp as $arq){ + $arquivos[] = array("nome"=>$arq); + } + + // + // pega o nome de cada tema filtrando a listagem se for o caso + // + $regs = pegaDados ( "select * from " . $esquemaadmin . "i3geoadmin_temas ", $dbh, false ); + + $nomes = array (); + $ids = array (); + $dadosBanco = array (); + foreach ( $regs as $reg ) { + if ($convUTF != true) { + $reg ["nome_tema"] = utf8_decode ( $reg ["nome_tema"] ); + } + $nomes [$reg ["codigo_tema"]] = $reg ["nome_tema"]; + $ids [$reg ["codigo_tema"]] = $reg ["id_tema"]; + $dadosBanco [$reg ["id_tema"]] = $reg; + } + $lista = array (); + foreach ( $arquivos as $arq ) { + $arq = $arq ["nome"]; + $nT = explode ( ".", $arq ); + $n = $nomes [$nT [0]]; + if (! $n) { + $n = ""; + } + $id = $ids [$nT [0]]; + // o mapfile nao esta registrado no banco + if (! $id && empty ( $validar )) { + $id = ""; + } else { + // aplica as validacoes. Se nao passar na validacao $id ficara vazio, para nao mostrar no resultado final + switch ($validar) { + case 1 : + if ($dadosBanco [$id] ["link_tema"] !== "") { + $id = ""; + } + break; + case 2 : + if ($dadosBanco [$id] ["nome_tema"] == "") { + $id = "-"; + } else { + $id = ""; + } + break; + case 3 : + if ($dadosBanco [$id] ["nome_tema"] == "") { + $id = ""; + } + break; + case 4 : + if (strtolower ( $dadosBanco [$id] ["download_tema"] ) !== "sim") { + $id = ""; + } + break; + case 5 : + if (strtolower ( $dadosBanco [$id] ["download_tema"] ) !== "nao") { + $id = ""; + } + break; + case 6 : + if (strtolower ( $dadosBanco [$id] ["ogc_tema"] ) !== "sim") { + $id = ""; + } + break; + case 7 : + if (strtolower ( $dadosBanco [$id] ["ogc_tema"] ) !== "nao") { + $id = ""; + } + break; + case 8 : + if (strtolower ( $dadosBanco [$id] ["kml_tema"] ) !== "sim") { + $id = ""; + } + break; + case 9 : + if (strtolower ( $dadosBanco [$id] ["kml_tema"] ) !== "nao") { + $id = ""; + } + break; + case 10 : + if (strtolower ( $dadosBanco [$id] ["kmz_tema"] ) !== "sim") { + $id = ""; + } + break; + case 11 : + if (strtolower ( $dadosBanco [$id] ["kmz_tema"] ) !== "nao") { + $id = ""; + } + break; + } + } + $imagem = ""; + if (file_exists ( $locaplic . "/temas/miniaturas/" . $arq . ".map.mini.png" )) { + $imagem = $arq . ".map.mini.png"; + } + + if ($validar == 12) { + if (file_exists ( $locaplic . "/temas/" . $arq . ".map" )) { + $handle = fopen ( $locaplic . "/temas/" . $arq . ".map", "r" ); + while ( ! feof ( $handle ) ) { + $linha = fgets ( $handle ); + if (stripos ( $linha, "'TEMA'" ) !== false || stripos ( $linha, '"TEMA"' ) !== false) { + $ntema = str_replace ( array ( + "'TEMA'", + '"TEMA"', + "'tema'", + '"tema"' + ), "", $linha ); + $ntema = trim ( str_replace ( array ( + "'", + '"' + ), "", $ntema ) ); + $temp = $n; + if ($n != $ntema && utf8_decode ( $temp ) != $ntema && $n != "") { + $n .= "" . utf8_encode ( $ntema ) . ""; + } else { + $n .= "" . utf8_encode ( $ntema ) . ""; + } + break; + } + } + fclose ( $handle ); + } + } + if ($validar == 13) { + if (file_exists ( $locaplic . "/temas/" . $arq . ".map" )) { + $handle = fopen ( $locaplic . "/temas/" . $arq . ".map", "r" ); + // deve buscar dentro de LAYER pois pode haver simbolos antes + $elayer = false; + while ( ! feof ( $handle ) ) { + $linha = trim ( fgets ( $handle ) ); + if (stripos ( $linha, "LAYER" ) === 0) { + $elayer = true; + } + if ($elayer == true && stripos ( $linha, "NAME" ) === 0) { + $ntema = ltrim ( $linha, "NAMEname" ); + $ntema = trim ( str_replace ( array ( + "'", + '"' + ), "", $ntema ) ); + if ($arq != $ntema) { + $n .= "" . $ntema . ""; + } + break; + } + } + fclose ( $handle ); + } + } + // se id for vazio, nao consta no banco, por isso, se validar for definido, nao pode ser aplicado + if (empty ( $validar ) || (! empty ( $validar ) && $id != "")) { + $lista [] = array ( + "id_tema" => $id, + "nome" => $n, + "codigo" => $arq, + "imagem" => $imagem, + "extensao" => "" + ); + } + } + return $lista; +} +function listaUnico($dbh, $codigo) { + global $convUTF, $locaplic, $esquemaadmin; + if(!file_exists($locaplic."/temas/".$codigo.".map")){ + header ( "HTTP/1.1 500 erro mapfile nao existe" ); + exit (); + } + $mapa = ms_newMapObj ( $locaplic."/temas/".$codigo.".map" ); + $layer = $mapa->getlayerbyname($codigo); + if($layer == ""){ + header ( "HTTP/1.1 500 erro nao existe LAYER com o nome $codigo" ); + exit (); + } + $titulolegenda = $layer->getmetadata("TEMA"); + $metaestat = $layer->getmetadata("METAESTAT"); + $dados = pegaDados ( "SELECT * from ".$esquemaadmin."i3geoadmin_temas WHERE codigo_tema = '$codigo' ", $dbh, false ); + //se nao existir no sistema de admin, faz o registro + if(count($dados) == 0){ + $dataCol = array ( + "kml_tema" => "SIM", + "kmz_tema" => "SIM", + "ogc_tema" => "SIM", + "download_tema" => "SIM", + "desc_tema" => "", + "tipoa_tema" => "", + "tags_tema" => "", + "nome_tema" => $titulolegenda, + "codigo_tema" => $codigo, + "it" => "", + "es" => "", + "en" => "" + ); + $id_tema = i3GeoAdminInsertUnico($dbhw,"i3geoadmin_temas",$dataCol,"link_tema","id_tema"); + $dados = pegaDados ( "SELECT * from ".$esquemaadmin."i3geoadmin_temas WHERE codigo_tema = '$codigo' AND id_tema = $id_tema ", $dbh, false ); + if(count($dados) == 0){ + $dbhw = null; + $dbh = null; + header ( "HTTP/1.1 500 erro ao registrar no banco de dados" ); + exit (); + } + } + if ($dados === false) { + $dbhw = null; + $dbh = null; + header ( "HTTP/1.1 500 erro ao consultar banco de dados" ); + exit (); + } + $acessopublico = ""; + if(strtolower($dados[0]["ogc_tema"]) !== "nao" || strtolower($dados[0]["download_tema"]) !== "nao"){ + $acessopublico = "checked"; + } + if($metaestat == ""){ + $dados[0]["metaestatnao"] = "selected"; + } else { + $dados[0]["metaestatsim"] = "selected"; + } + $dados[0]["acessopublico"] = $acessopublico; + $dados[0]["metaestat"] = $metaestat; + //a pagina e utf e o texto pode ser iso + if(mb_detect_encoding($titulolegenda,'UTF-8, ISO-8859-1') == "ISO-8859-1"){ + $titulolegenda = utf8_encode($titulolegenda); + } + $dados[0]["titulolegenda"] = $titulolegenda; + $dados[0]["codigo"] = $codigo; + return $dados[0]; +} +function limpaCache($locaplic, $codigo, $cachedir, $dir_tmp){ + $mapfile = $locaplic . "/temas/" . $codigo . ".map"; + if (! file_exists ( $mapfile )) { + header ( "HTTP/1.1 403 arquivo nao existe" ); + exit (); + } + $mapa = ms_newMapObj ( $mapfile ); + $nomes = $mapa->getalllayernames (); + if ($cachedir != "") { + $d = $cachedir; + } else { + $d = $dir_tmp . "/cache"; + } + foreach ( $nomes as $nome ) { + $nome = str_replace ( ".", "", $nome ); + $nome = strip_tags ( $nome ); + $nome = htmlspecialchars ( $nome, ENT_QUOTES ); + $dirs [] = $d . "/" . $nome; + $dirs [] = $d . "/googlemaps/" . $nome; + $dirs [] = $d . "/wmts/" . $nome; + foreach ( $dirs as $dir ) { + \admin\catalogo\mapfile\rrmdir ( $dir ); + } + } + $nome = $nomes[0]; + if(file_exists($d . "/" . $nome) || file_exists($d . "/googlemaps/" . $nome) || file_exists($d . "/wmts/" . $nome)){ + header ( "HTTP/1.1 403 cache nao removido" ); + exit; + } else { + return true; + } +} +function clonarMapfile($codigo,$novocodigo,$titulo,$dbh,$dbhw){ + global $esquemaadmin; + $arq = $locaplic . "/temas/" . $codigo . ".map"; + $arqnovo = $locaplic . "/temas/" . $novocodigo . ".map"; + + if ($codigo == "" || !file_exists ( $arq )) { + header ( "HTTP/1.1 400 arquivo nao existe" ); + exit (); + } + if ($novocodigo == "" || file_exists ( $arqnovo )) { + header ( "HTTP/1.1 400 arquivo ja existe" ); + exit (); + } + //obtem os dados do banco do tema existente + $dados = pegaDados ( "SELECT * from " . $esquemaadmin . "i3geoadmin_temas WHERE codigo_tema = '" . $codigo . "'", $dbh, false ); + if (count ( $dados ) > 0) { + //o mapfile esta registrado como um tema no banco de adm + $dataCol = array ( + "link_tema" => $dados [0] ["link_tema"], + "kml_tema" => $dados [0] ["kml_tema"], + "kmz_tema" => $dados [0] ["kmz_tema"], + "ogc_tema" => $dados [0] ["ogc_tema"], + "download_tema" => $dados [0] ["download_tema"], + "desc_tema" => "", + "tipoa_tema" => $dados [0] ["tipoa_tema"], + "tags_tema" => '', + "nome_tema" => $_POST["titulo"], + "codigo_tema" => $novocodigo, + "it" => "", + "es" => "", + "en" => "" + ); + $acessopublico = $dados [0] ["download_tema"]; + } else { + $acessopublico = ""; + } + //faz a copia do mapfile + $mapa = ms_newMapObj($arq); + $layer = @$mapa->getlayerbyname($codigo); + $layer->set("name",$novocodigo); + $layer->setmetadata("TEMA",$titulo); + $mapa->save($arqnovo); + include(dirname(__FILE__)."/../../php/removeCabecalhoMapfile.php"); + removeCabecalhoMapfile($arqnovo); + if (count ( $dados ) > 0) { + //registra no banco de dados caso nao tenha ocorrido erro ao criar o mapfile + i3GeoAdminInsert ( $dbhw, "i3geoadmin_temas", $dataCol ); + } +} +function rrmdir($dir) { + if (is_dir ( $dir )) { + $objects = scandir ( $dir ); + foreach ( $objects as $object ) { + if ($object != "." && $object != "..") { + if (filetype ( $dir . "/" . $object ) == "dir") { + \admin\catalogo\mapfile\rrmdir ( $dir . "/" . $object ); + } else { + $object = str_replace ( ".png", "", $object ) . ".png"; + chmod ( $dir . "/" . $object, 077 ); + unlink ( $dir . "/" . $object ); + } + } + } + reset ( $objects ); + } +} +?> \ No newline at end of file diff --git a/admin1/catalogo/mapfile/index.js b/admin1/catalogo/mapfile/index.js index 6dd060a..9b78fb7 100755 --- a/admin1/catalogo/mapfile/index.js +++ b/admin1/catalogo/mapfile/index.js @@ -124,7 +124,6 @@ Obtém a lista .done( function(data, status){ var json = jQuery.parseJSON(data); - var html = Mustache.to_html( "{{#data}}" + $("#templateManterTema").html() + "{{/data}}", $.extend( @@ -231,9 +230,8 @@ Obtém a lista .done( function(data, status){ i3GEOadmin.core.modalAguarde(false); - var json = jQuery.parseJSON(data); - $("#form-" + json.codigo).remove(); - i3GEOadmin.mapfile.registraFavoritos(json.codigo); + i3GEOadmin.mapfile.registraFavoritos(id); + i3GEOadmin.mapfile.lista("",""); } ) .fail( @@ -282,7 +280,7 @@ Obtém a lista codigo = i3GEOadmin.mapfile.favoritosArray[i]; h = $("#form-" + codigo).html(); if(h != undefined){ - conteudo.push(h); + conteudo.push(h+" "); } } $("#body-favoritos").html(conteudo.join("\n")); diff --git a/admin1/catalogo/mapfile/preview/index.php b/admin1/catalogo/mapfile/preview/index.php index 58dd096..66c55eb 100755 --- a/admin1/catalogo/mapfile/preview/index.php +++ b/admin1/catalogo/mapfile/preview/index.php @@ -6,6 +6,37 @@ if(verificaOperacaoSessao("admin/php/editortexto") == false){ } +//calcula resolucoes +$res = array(); +$temp = 0.703125; +for($i = 0; $i < 40; $i++){ + $res[] = $temp; + $temp = $temp / 2; +} +$top_left_minx = -180; +$top_left_maxy = 90; + +$x_size = $res[$_GET["TileMatrix"] - 1] * 256; +$y_size = $x_size; + +$lon1 = $top_left_minx + ($_GET["TileCol"] * $x_size); +$lat1 = $top_left_maxy - ($_GET["TileRow"] * $y_size) - $y_size; +$lon2 = $top_left_minx + ($_GET["TileCol"] * $x_size) + $x_size; +$lat2 = $top_left_maxy - ($_GET["TileRow"] * $y_size); + +$_GET["WIDTH"] = 256; +$_GET["HEIGHT"] = 256; + +$_GET["tms"] = "/wmts/".$tema."/".$_GET["TileMatrix"]."/".$_GET["TileCol"]."/".$_GET["TileRow"]; +$_GET["tms"] = str_replace(".png","",$_GET["tms"]).".png"; + +if($_GET["TileMatrix"]."/".$_GET["TileCol"]."/".$_GET["TileRow"] == "0/0/0" || $_GET["TileCol"] == -1 || $_GET["TileRow"]== -1){ + return; +} +$_GET["BBOX"] = $lon1.",".$lat1.",".$lon2.",".$lat2; +$_GET["SERVICE"] = "WMS"; +$_GET["REQUEST"] = "getMap"; + // //pega os endereços para compor a url de chamada do gerador de web services //ogc.php @@ -15,6 +46,7 @@ $protocolo = $protocolo[0]; $protocolo1 = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME']; $protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; $urli3geo = str_replace("/ogc.php","",$protocolo.$_SERVER["PHP_SELF"]); + // //cria o web service // @@ -44,17 +76,15 @@ foreach ($_GET as $k=>$v){ } } $tema = $locaplic . "/temas/" . $_GET["tema"] . ".map"; + if(!file_exists($tema)){ echo "Erro"; exit; } $req->setParameter("srsName",$req->getValueByName("SRS")); $listaepsg = $req->getValueByName("SRS")." EPSG:4618 EPSG:4291 EPSG:4326 EPSG:22521 EPSG:22522 EPSG:22523 EPSG:22524 EPSG:22525 EPSG:29101 EPSG:29119 EPSG:29120 EPSG:29121 EPSG:29122 EPSG:29177 EPSG:29178 EPSG:29179 EPSG:29180 EPSG:29181 EPSG:29182 EPSG:29183 EPSG:29184 EPSG:29185"; -if(isset($_GET["version"]) && !isset($VERSION)){ - $_GET["VERSION"] = $_GET["version"]; -} -$req->setParameter("VeRsIoN",$_GET["VERSION"]); +$req->setParameter("VeRsIoN",$_GET["Version"]); // //compatibiliza chamadas fora do padrao // @@ -94,7 +124,6 @@ $nmap = ms_newMapobj($tema); $nmap->setmetadata("ows_enable_request","*"); $l = $nmap->getlayer(0); - //$l->setmetadata("ows_title",pegaNome($l)); $l->setmetadata("ows_srs",$listaepsg); $l->set("group",""); @@ -152,6 +181,8 @@ if(ob_get_contents ()){ cloneInlineSymbol($l,$nmap,$oMap); $l = $oMap->getlayer(0); +$l->set("status",MS_DEFAULT); + $req->setParameter("LAYERS",$l->name); if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo"){ @@ -167,7 +198,7 @@ ms_ioinstallstdouttobuffer(); $req->setParameter("format","image/png"); $oMap->owsdispatch($req); $contenttype = ms_iostripstdoutbuffercontenttype(); -$oMap->save("/tmp/ms_tmp/teste.map"); + if(!isset($OUTPUTFORMAT)){ header("Content-type: $contenttype"); } diff --git a/admin1/catalogo/mapfile/templates/templateLista.php b/admin1/catalogo/mapfile/templates/templateLista.php index c36bc4c..401b31a 100755 --- a/admin1/catalogo/mapfile/templates/templateLista.php +++ b/admin1/catalogo/mapfile/templates/templateLista.php @@ -27,7 +27,7 @@    -  {{{nome}}} {{{arquivoTxt}}}: {{{codigo}}} +  
{{{codigo}}}
{{{nome}}}
diff --git a/admin1/head.php b/admin1/head.php index ac88c65..cde0bea 100755 --- a/admin1/head.php +++ b/admin1/head.php @@ -6,8 +6,7 @@ - + i3Geo a, .navbar.navbar-default .dropdown-menu li>a { +.navbar .dropdown-menu li>a, .navbar.navbar-default .dropdown-menu li>a + { font-size: 1em; } @@ -221,7 +220,8 @@ a, a:focus, a:hover { color: #767676; } -.form-group.form-group-lg .checkbox label, .form-group.form-group-lg .radio label, .form-group.form-group-lg label { +.form-group.form-group-lg .checkbox label, .form-group.form-group-lg .radio label, + .form-group.form-group-lg label { color: #767676; } @@ -229,7 +229,6 @@ h2 small { color: #767676; } - .migalha { background-color: rgb(255, 255, 255); border-bottom-width: 0px; @@ -324,38 +323,37 @@ h2 small { .btn-breadcrumb > *:nth-child(n+2) { display:none; } - /* === For phones =================================== */ -@media (max-width: 767px) { - .btn-breadcrumb > *:nth-last-child(-n+2) { - display:block; - } - .btn-breadcrumb > * div { - max-width: 60px; - } +@media ( max-width : 767px) { + .btn-breadcrumb>*:nth-last-child(-n+2) { + display: block; + } + .btn-breadcrumb>* div { + max-width: 60px; + } } /* === For tablets ================================== */ -@media (min-width: 768px) and (max-width:991px) { - .btn-breadcrumb > *:nth-last-child(-n+4) { - display:block; - } - .btn-breadcrumb > * div { - max-width: 100px; - } +@media ( min-width : 768px) and (max-width:991px) { + .btn-breadcrumb>*:nth-last-child(-n+4) { + display: block; + } + .btn-breadcrumb>* div { + max-width: 100px; + } } /* === For desktops ================================== */ -@media (min-width: 992px) { - .btn-breadcrumb > *:nth-last-child(-n+6) { - display:block; - } - .btn-breadcrumb > * div { - max-width: 170px; - } +@media ( min-width : 992px) { + .btn-breadcrumb>*:nth-last-child(-n+6) { + display: block; + } + .btn-breadcrumb>* div { + max-width: 170px; + } } -.btn-breadcrumb a:not([style*="pointer-events: none"]) > span { +.btn-breadcrumb a:not ([style*="pointer-events: none"] ) >span { text-decoration: underline; } @@ -375,23 +373,24 @@ h2 small { -