Jump to content

Carcleo

Members
  • Content count

    1931
  • Joined

  • Last visited

  • Days Won

    1

Carcleo last won the day on October 13 2014

Carcleo had the most liked content!

Community Reputation

4 Comum

5 Followers

About Carcleo

  • Birthday 12/20/1970

Informações Pessoais

  • Localização
    Muriae/MG

Recent Profile Visitors

1853961 profile views
  1. Carcleo

    vhosts com SSL no Apache Haus

    Fiz o download do Apache Haus 64 bits nesse link: https://www.apachehaus.com/cgi-bin/download.plx#APACHE24VC15 No httpd.conf alterei o diretório do htdocs para o disco C: Habilitei a diretiva LoadModule vhost_alias_module modules/mod_vhost_alias.so para usar Virtuais Hosts Habilitei a diretiva Include conf/extra/httpd-vhosts.conf também para usar Virtuais Hosts No extras/httpd-ahssl.conf, configurei os VirtuaisHosts no final do arquivo da seguinte forma: <VirtualHost _default_:443> SSLEngine on ServerName localhost:443 SSLCertificateFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/server.crt" SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/server.key" DocumentRoot "D:/Trabalhos/host/htdocs/fielcard.net.br" # DocumentRoot "${SRVROOT}/htdocs" # DocumentRoot access handled globally in httpd.conf CustomLog "${SRVROOT}/logs/ssl_request.log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" <Directory "${SRVROOT}/htdocs"> Options Indexes Includes FollowSymLinks AllowOverride AuthConfig Limit FileInfo Require all granted </Directory> </virtualhost> <VirtualHost *:443> SSLEngine on ServerName serverone.tld:443 SSLCertificateFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/serverone.crt" SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/serverone.key" DocumentRoot "D:/Trabalhos/host/htdocs/fielcard.net.br" CustomLog "${SRVROOT}/logs/ssl_request.log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" <Directory "${SRVROOT}/htdocs"> Options Indexes Includes FollowSymLinks AllowOverride AuthConfig Limit FileInfo Require all granted </Directory> </virtualhost> <VirtualHost *:443> SSLEngine on ServerName servertwo.tld:443 SSLCertificateFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/servertwo.crt" SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/servertwo.key" DocumentRoot "D:/Trabalhos/host/htdocs/fielcard.net.br" CustomLog "${SRVROOT}/logs/ssl_request.log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" <Directory "${SRVROOT}/htdocs"> Options Indexes Includes FollowSymLinks AllowOverride AuthConfig Limit FileInfo Require all granted </Directory> </virtualhost> <VirtualHost _default_:443> SSLEngine on ServerName localhost:443 SSLCertificateFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/server.crt" SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/server.key" DocumentRoot "D:/Trabalhos/host/htdocs/mvc_crud_pdo" CustomLog "${SRVROOT}/logs/ssl_request.log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" <Directory "${SRVROOT}/htdocs"> Options Indexes Includes FollowSymLinks AllowOverride AuthConfig Limit FileInfo Require all granted </Directory> </virtualhost> <VirtualHost *:443> SSLEngine on ServerName serverone.tld:443 SSLCertificateFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/serverone.crt" SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/serverone.key" DocumentRoot "D:/Trabalhos/host/htdocs/mvc_crud_pdo" CustomLog "${SRVROOT}/logs/ssl_request.log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" <Directory "${SRVROOT}/htdocs"> Options Indexes Includes FollowSymLinks AllowOverride AuthConfig Limit FileInfo Require all granted </Directory> </virtualhost> <VirtualHost *:444> SSLEngine on ServerName servertwo.tld:443 SSLCertificateFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/servertwo.crt" SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/servertwo.key" DocumentRoot "D:/Trabalhos/host/htdocs/mvc_crud_pdo" CustomLog "${SRVROOT}/logs/ssl_request.log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" <Directory "${SRVROOT}/htdocs"> Options Indexes Includes FollowSymLinks AllowOverride AuthConfig Limit FileInfo Require all granted </Directory> </virtualhost> Os Problemas: A ) http://localhost/site parou de funcionar, ou seja, quando o link começa com localhost B ) Apenas o primeiro site cadastrado (fielcard.net.br) no http-ahssl.conf está abrindo, o outro (mvc_crud_pdo) está abrindo o fielcard.net.br Onde estou errando? O objetivo é configurar Hosts Virtuais
  2. Carcleo

    Ajuda com Apache e .htaccess

    A ideia: toda e entrada no site, seja com link direto do tipo: www.site.com.br/pasta1/pasta2/arquivo.php ou normal url amigável www.site.com.br/categoria/tipo tudo queria que redirecionasse para o index.php da raiz do site. E que, caso o arquivo ou pasta NÃO existisse, abrisse normalmente a pagina 404.php Tentei de tres formas mas nenhuma dá certo. Primeira forma RewriteEngine On ErrorDocument 400 http://www.sortecard.com.br/index.php ErrorDocument 401 http://www.sortecard.com.br/401.php ErrorDocument 403 http://www.sortecard.com.br/403.php ErrorDocument 404 http://www.sortecard.com.br/404.php ErrorDocument 500 http://www.sortecard.com.br/500.php php_value allow_url_fopen on php_value allow_url_include on php_flag mail_filter 0 RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php?page=$1 Segunda forma: Options +FollowSymLinks DirectorySlash On RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} \.php$ RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?request=$1 [L] Terceira forma: RewriteEngine On ErrorDocument 400 http://www.sortecard.com.br/index.php ErrorDocument 401 http://www.sortecard.com.br/401.php ErrorDocument 403 http://www.sortecard.com.br/403.php ErrorDocument 404 http://www.sortecard.com.br/404.php ErrorDocument 500 http://www.sortecard.com.br/500.php php_value allow_url_fopen on php_value allow_url_include on php_flag mail_filter 0 RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteRule ^(.*)$ index.php?page=$1 Problemas: A) Quando acesso a url diretamente não está redirecionando para o index. B) Quando falo que é para redirecionar todos os arquivos ele não me dá os parêmetros.
  3. Carcleo

    Ajuda na instalação da biblioteca cURL no Windows

    Não uso xamp nem wamp. Eu instalei separadamente Apache + PHP + MySQL. Já existe a dll php_curl.dll na pasta ext. Alinha ;extension=php_curl.dll não existe no php.ini do PHP 7.3.4, Eu inseri manualmente. Sim, sem o ; O que tem lá é ;extension=curl apenas
  4. Parece brincadeira, mas estou fazem 3 dias tentando instalar a cURL e não consigo Windows 10 Pro Apache 2.4 Php 7.3.4 MySQL 8.0.15.0 Tentativas: 1) libeay32.dll, msvcr71.dll, ssleay32.dll e php_curl.dll coladas na pasta system32 e adicionadas ao PATH do Windows 2) Baixei a biblioteca cURL do site https://curl.haxx.se/, cliquei em curl.exe e nada acontece. 3) ;extension=CURL e ;extension=php_curl.dll descomentadas no php.ini (Embora a linha ;extension=php_curl.dll não exista nessa versão do PHP eu inserí ela na lista) 4) Confirmado de que o php.ini é o correto. Agora só faltam 2 tentativas A) Apelar para a fé. B) Instalar Apache e PHP antigos pois lembro-me que usei em um projeto fazem uns anos e funcionava de boa. Mas não gostara de voltar no tempo. Claro que essas 2 foram só para descontrair! Alguém me ajuda? Ode estou errando?
  5. Carcleo

    mPDF Rotacionar texto na célula

    Estou tentando rotacionar um texto no PDF com mPDF mas não estou conseguindo. $css = ' <style> ul { } ul li { float: left; list-style: none; /*necessáro width no campo */ } ul li span.vertical { display: block; //transform: rotate(270deg); /*necessáro display: block*/ text-rotate : 270; } </style>'; $html = ' <ul> <li style="width: 150px"><span class="vertical">Elefante</span></li> <li style="width: 150px"><span>Não</span></li> <li style="width: 150px"><span>Come</span></li> <li style="width: 150px"><span class="vertical">Bananada</span></li> </ul>'; require_once "../vendor/autoload.php"; $pdf = new \Mpdf\Mpdf(['debug' => true]); $pdf->AddPage(); $pdf->charset_in = "UTF-8"; $pdf->SetFont('Arial','B',16); $pdf->WriteHTML( $css, 1 ); $pdf->WriteHTML( $html ); $pdf->Output(); Obs.: O restante do estilo funciona normal. O problema é apenas no PDF. No navegador, os spans giram normalmente.
  6. Carcleo

    mPDF não aceita Style

    porque sem ele a tabela vai Como assi a tabela vai: Sem o style tabelas sai deformada, linha por linha, sem as brodas, etc... Não? testa aí pra ver sem essa parte toda do style. Como assim. Não entendi. O Css já está pequeno! Ola como devea ser a saida::No HTML sai assim mas no PDF não
  7. Carcleo

    mPDF não aceita Style

    O meu está assim também. O problema é o HTML. A tabela Por favor, tenta com ela também. Ou ela foi para a folha 2? Parece que sairam 2 folhas no teu PDF. Se foram 2 fohas, Vêja se a tabela saiu perfeita. Tipo, com os textos do cabeçaho na vertial e tals. Outa coisa, sobre o fechamento <style>. realmente havia me esquecido. Mas não fez diferença. É como se o mPDF não estivesse lendo o CSS
  8. Carcleo

    mPDF não aceita Style

    Com bordas, tetos girados com css e flexbox? Se for, vou tentatr. Experimta esse com dom
  9. Carcleo

    mPDF não aceita Style

    Gostaria de saber porque o mPDF, nesse meu código, não está aceitando o CSS ao gerar o PDF. Obs.: no navegador, sai tudo normal mas quando a exibição é no PDF é que nõ funcinam os estilos. <?php $css = " img { max-width: 100%; } ul { list-style: none; } div.relatorio { width: 95%; margin: 0 auto; } div.relatorio ul.border { border: .1px rgb(0,0,0) solid; background-color: black; } div.relatorio .centralizado { text-align: center !important; } div.relatorio .backCinza { background-color: rgb(217,217,217); } div.relatorio ul.ulInlineBlock li { display: inline-block; } div.relatorio ul.lancamento li, div.relatorio ul.resumo li { height: 100%; line-height: 18px; font-size: .85em; border-left: .1px rgb(0,0,0) solid; text-align: center; vertical-align: middle; } div.relatorio ul.lancamento li { width: 113.5px !important; } div.relatorio ul.resumo li { width: 150px !important; } div.relatorio ul.lancamento li:first-child, div.relatorio ul.resumo li:first-child { border-left: none; } .erro, .hCentralizadoAvisos { color: rgb(255,0,0); } .hCentralizado, .hCentralizadoAvisos, .erro { width: auto; line-height: 50px; text-align: center; margin: 0 auto; } .labelPequeno { width: 150px; height: 30px; padding: 3px; display: inline-block; } span.vertical { -webkit-writing-mode: vertical-lr; -ms-writing-mode: tb-lr; writing-mode: vertical-lr; -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } span.comum { } div.cabecalhoVertical { display: -webkit-box; display: -ms-flexbox; display: flex; margin: 0 auto; width: 800px; height: 220px; border: .1px rgb(0,0,0) solid; } div.cabecalhoVertical div { display: -webkit-box; display: -ms-flexbox; display: flex; border-right: .1px rgb(0,0,0) solid; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } div.cabecalhoVertical div span { text-align: center; font-weight: bolder; } "; $html = " <div class='relatorio'> <img src='http://www.wesleyanagceu.com.br/_imgs/gceu.png' /> <h1>Relatório Mensal</h1> <br><br> <div class='cabecalhoVertical'> <div style='width:100px;'><span class='comum' >Nome do Gcéu</span></div> <div style='width:100px;'><span class='vertical'>Supervisor</span></div> <div style='width:100px;'><span class='comum' >Líder</span></div> <div style='width:050px;'><span class='vertical'>Houve Supervisão</span></div> <div style='width:050px;'><span class='vertical'>Houve dia de Jejum</span></div> <div style='width:050px;'><span class='vertical'>Houve dia de Evangelismo</span></div> <div style='width:050px;'><span class='vertical'>Membros Compromissados</span></div> <div style='width:050px;'><span class='vertical'>Visitantes</span></div> <div style='width:050px;'><span class='vertical'>Crianças de 0 à 12 anos</span></div> <div style='width:050px;'><span class='vertical'>Total de presentes</span></div> <div style='width:050px;'><span class='vertical'>Ofertas</span></div> <div style='width:050px;'><span class='vertical'>Disicpulados</span></div> <div style='width:050px;'><span class='vertical'>Número de decisões</span></div> </div> <div class='border cabecalhoVertical' style='backgroud-color:none; height: 50px !important;'> <div style='width:100px;'><span class='comum'>Célula 1</span></div> <div style='width:100px;'><span class='comum'>Cleonice</span></div> <div style='width:100px;'><span class='comum'>Jonas</span></div> <div style='width:050px;'><span class='comum'>Não</span></div> <div style='width:050px;'><span class='comum'>Não</span></div> <div style='width:050px;'><span class='comum'>Não</span></div> <div style='width:050px;'><span class='comum'>50</span></div> <div style='width:050px;'><span class='comum'>10</span></div> <div style='width:050px;'><span class='comum'>13</span></div> <div style='width:050px;'><span class='comum'>73</span></div> <div style='width:050px;'><span class='comum'>22,65</span></div> <div style='width:050px;'><span class='comum'>2</span></div> <div style='width:050px;'><span class='comum'>11</span></div> </div> <div class='border cabecalhoVertical' style='backgroud-color:none; height: 50px !important;'> <div style='width:100px;'><span class='comum'>Celula 2</span></div> <div style='width:100px;'><span class='comum'>Carlos</span></div> <div style='width:100px;'><span class='comum'>Jonas</span></div> <div style='width:050px;'><span class='comum'>Não</span></div> <div style='width:050px;'><span class='comum'>Não</span></div> <div style='width:050px;'><span class='comum'>Não</span></div> <div style='width:050px;'><span class='comum'>10</span></div> <div style='width:050px;'><span class='comum'>5</span></div> <div style='width:050px;'><span class='comum'>3</span></div> <div style='width:050px;'><span class='comum'>18</span></div> <div style='width:050px;'><span class='comum'>78,39</span></div> <div style='width:050px;'><span class='comum'>3</span></div> <div style='width:050px;'><span class='comum'>1</span></div> </div> <div class='border cabecalhoVertical' style='backgroud-color:none; height: 50px !important;'> <div style='width:100px;'><span class='comum'>Celula TOP</span></div> <div style='width:100px;'><span class='comum'>Carlos</span></div> <div style='width:100px;'><span class='comum'>Carlos</span></div> <div style='width:500px;'><span class='comum'>Não houve Reuniões para esse Gcéu</span></div> </div> <div class='border cabecalhoVertical' style='backgroud-color:none; height: 50px !important;'> <div style='width:100px;'><span class='comum'>Jesuita</span></div> <div style='width:100px;'><span class='comum'>Josefina Etelvina</span></div> <div style='width:100px;'><span class='comum'>Josefina Etelvina</span></div> <div style='width:500px;'><span class='comum'>Não houve Reuniões para esse Gcéu</span></div> </div> <div class='border cabecalhoVertical' style='backgroud-color:none; height: 50px !important;'> <div style='width:100px;'><span class='comum'>Tassito</span></div> <div style='width:100px;'><span class='comum'>Carlos</span></div> <div style='width:100px;'><span class='comum'>Carlos</span></div> <div style='width:500px;'><span class='comum'>Não houve Reuniões para esse Gcéu</span></div> </div> </div>"; require_once "../_scripts/_php/_configuracoes/erros.php"; require_once "../vendor/autoload.php"; $pdf = new \Mpdf\Mpdf(['debug' => true]); $pdf->AddPage(); $pdf->charset_in = "UTF-8"; $pdf->SetFont('Arial','B',16); $pdf->WriteHTML( $css, 1 ); $pdf->WriteHTML( $html ); $pdf->Output("relatorio.pdf","D"); ?>
  10. Carcleo

    Dificuldades com FlexBox e UL

    Cara, muiito top. Ops, muito jóia. Obrigado! Essa prética, eu tamém uso. Mas estava fazendo esse texte em um arquivb seprsdo e nele e não coloquei o resset * { margin: 0; padding: 0; }
  11. Carcleo

    Dificuldades com FlexBox e UL

    Pessoal, estou com uma dúvida que está me tirando o sono! Então, vou exibir 2 situações com Flexbox onde 1 delas está dando uma falha. (Será mesmo?). Nessa versão, com DIV's, tudo funciona bem: CSS: span.vertical { writing-mode: vertical-lr; transform: rotate(180deg); } span.comum { } div.cabecalhoVertical{ display: flex; height: 200px; border: .1px rgb(0,0,0) solid; } div.cabecalhoVertical div { display: flex; flex-grow: 1; list-style: none; border-right: .1px rgb(0,0,0) solid; align-items: center; justify-content: center; } div.cabecalhoVertical div span { text-align: center; font-weight: bolder; } HTML: <div class='cabecalhoVertical'> <div style='width:215px;'><span class='comum' >Nome do Gcéu </span></div> <div style='width:215px;'><span class='vertical'>Supervisor</span></div> <div style='width:215px;'><span class='comum' >Líder</span></div> <div style='width:035px;'><span class='vertical'>Houve Supervisão?</span></div> <div style='width:035px;'><span class='vertical'>Houve dia de Jejum?</span></div> <div style='width:035px;'><span class='vertical'>Houve dia de Evangedismo?</span></div> <div style='width:035px;'><span class='vertical'>Membros Compromissados</span></div> <div style='width:035px;'><span class='vertical'>Visitantes</span></div> <div style='width:035px;'><span class='vertical'>Crianças de 0 à 12 anos</span></div> <div style='width:035px;'><span class='vertical'>Total de presentes</span></div> <div style='width:035px;'><span class='vertical'>Ofertas</span></div> <div style='width:035px;'><span class='vertical'>Disicpulados</span></div> <div style='width:035px;'><span class='vertical'>Número de decisões</span></div> </div> Resultado: Agora com UL -> A falha: CSS: span.vertical { writing-mode: vertical-lr; transform: rotate(180deg); } span.comum { } ul.cabecalhoVertical{ display: flex; height: 200px; border: .1px rgb(0,0,0) solid; } ul.cabecalhoVertical li { display: flex; flex-grow: 1; list-style: none; border-right: .1px rgb(0,0,0) solid; align-items: center; justify-content: center; } ul.cabecalhoVertical li span { text-align: center; font-weight: bolder; } HTML: <ul class='cabecalhoVertical'> <li style='width:215px;'><span class='comum' >Nome do Gcéu </span></li> <li style='width:215px;'><span class='vertical'>Supervisor</span></li> <li style='width:215px;'><span class='comum' >Líder</span></li> <li style='width:035px;'><span class='vertical'>Houve Supervisão?</span></li> <li style='width:035px;'><span class='vertical'>Houve dia de Jejum?</span></li> <li style='width:035px;'><span class='vertical'>Houve dia de Evangedismo?</span></li> <li style='width:035px;'><span class='vertical'>Membros Compromissados</span></li> <li style='width:035px;'><span class='vertical'>Visitantes</span></li> <li style='width:035px;'><span class='vertical'>Crianças de 0 à 12 anos</span></li> <li style='width:035px;'><span class='vertical'>Total de presentes</span></li> <li style='width:035px;'><span class='vertical'>Ofertas</span></li> <li style='width:035px;'><span class='vertical'>Disicpulados</span></li> <li style='width:035px;'><span class='vertical'>Número de decisões</span></li> </ul> Percebam agora na print como aparece um bloco adicional no lado esquerdo antes da primeira LI Gostaria de saber 2 coisas: 1) Porquê isso acontece uma vez que list-style está setado para none nas LI's? 2) Como corrigir essa falha? Obrigado a quem puder ajudar.
  12. Carcleo

    limpar campos póstumos

    jQuery: // JavaScript Document $(document).ready(function (e) { $("#idPastor").on("change", function () { $.ajax({ url: "_scripts/_php/_validacoes/buscarDadosRedes.php", type: "POST", dataType: "json", data: { idPastor: $("#idPastor").val() }, beforeSend: function() { $("#imgCarregando").css('display','block'); }, success: function (result) { $("#imgCarregando").css('display','none'); $('#idRede').find('option').remove(); if (result == null){ $("#idRede").append("<option value=>Sem Redes</option>"); } else { $("#idRede").append("<option value=>Escolha a Rede</option>"); result.forEach(function(option){ $("#idRede").append("<option value=" + option["idRede"] + ">" + option["nome"] + "</option>") }); } } }); }); $("#idRede").on("change", function () { $.ajax({ url: "_scripts/_php/_validacoes/buscarDadosRegioes.php", type: "POST", dataType: "json", data: { idRede: $("#idRede").val() }, beforeSend: function() { $("#imgCarregando").css('display','block'); }, success: function (result) { $("#imgCarregando").css('display','none'); $('#idRegiao').find('option').remove(); if (result == null){ $("#idRegiao").append("<option value=>Sem Regiões</option>"); } else { $("#idRegiao").append("<option value=>Escolha a Região</option>"); result.forEach(function(option){ $("#idRegiao").append("<option value=" + option["idRegiao"] + ">" + option["nome"] + "</option>") }); } } }); }); $("#idRegiao").on("change", function () { $.ajax({ url: "_scripts/_php/_validacoes/buscarDadosAreas.php", type: "POST", dataType: "json", data: { idRegiao: $("#idRegiao").val() }, beforeSend: function() { $("#imgCarregando").css('display','block'); }, success: function (result) { $("#imgCarregando").css('display','none'); $('#idArea').find('option').remove(); if (result == null){ $("#idArea").append("<option value=>Sem Áreas</option>"); } else { $("#idArea").append("<option value=>Escolha a Área</option>"); result.forEach(function(option){ $("#idArea").append("<option value=" + option["idArea"] + ">" + option["nome"] + "</option>") }); } } }); }); $("#idArea").on("change", function () { $.ajax({ url: "_scripts/_php/_validacoes/buscarDadosSetores.php", type: "POST", dataType: "json", data: { idArea: $("#idArea").val() }, beforeSend: function() { $("#imgCarregando").css('display','block'); }, success: function (result) { $("#imgCarregando").css('display','none'); $('#idSetor').find('option').remove(); if (result == null){ $("#idSetor").append("<option value=>Sem Setores</option>"); } else { $("#idSetor").append("<option value=>Escolha a Setor</option>"); result.forEach(function(option){ $("#idSetor").append("<option value=" + option["idSetor"] + ">" + option["nome"] + "</option>") }); } } }); }); $("#idSetor").on("change", function () { $.ajax({ url: "_scripts/_php/_validacoes/buscarDadosCelulas.php", type: "POST", dataType: "json", data: { idSetor: $("#idSetor").val() }, beforeSend: function() { $("#imgCarregando").css('display','block'); }, success: function (result) { $("#imgCarregando").css('display','none'); $('#idCelula').find('option').remove(); if (result == null){ $("#idCelula").append("<option value=>Sem Celulas</option>"); } else { $("#idCelula").append("<option value=>Escolha a Célula</option>"); result.forEach(function(option){ $("#idCelula").append("<option value=" + option["idCelula"] + ">" + option["nome"] + "</option>") }); } } }); }); }); Esse script, faz a população via $.ajax do jQuery de combos no form. Tudo funciona bem. Mas considere o o form abaixo: Imagine o que o usuário preencheu todos os campos e de repente resolve tocar a opção do select de Redes como está na figura. Porém, a opção Rede 2 NÃO possui Regiões Cadastradas ainda. No entanto, note que todos os campos abaixo estão preenchidos e isso não negaria um possível submit do form com dados errados? Ainda, imagine a situação onde a opção Rede 2 POSSUI outas Regiões Cadastradas o que comprometeria a escolha dos selects que seguem Como contornar esse problema?
  13. Carcleo

    Buffering em MediaPlayer

    Tenho um objeto MediaPlayer mPlayer = new MediaPlayer(); Objetivo: Tocar o Streaming de uma Web Rádio e funciona corretamente. Porém, quando clico em Play, leva um tempo até que a Rádio Web comece a tocar. Existe alguma forma de enquanto o streaming estiver carregando, eu pegar o percentual para passar para uma SeekBar por exemplo?, Como? Segue o que eu já fiz: package carcleo.com.player; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.ProgressDialog; import android.app.TaskStackBuilder; import android.content.Context; import android.content.Intent; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.MediaPlayer.OnBufferingUpdateListener; import android.os.AsyncTask; import android.os.Build; import android.support.annotation.RequiresApi; import android.support.v4.app.NotificationCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.SeekBar; import android.widget.TextView; import java.io.IOException; public class player extends AppCompatActivity implements OnBufferingUpdateListener{ private MediaPlayer mPlayer; private String URL; private Button btnPlayPause; private Boolean conexao = false; private SeekBar sb; private TextView textView; private TextView textView2; private TextView textView3; private NotificationManager mNotificationManager; private AudioManager audioManager; private ProgressDialog progressDialog; @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.player); sb = findViewById(R.id.seekBar); textView = findViewById(R.id.textView); textView2 = findViewById(R.id.textView2); textView3 = findViewById(R.id.textView3); progressDialog = new ProgressDialog(this); btnPlayPause = (Button) findViewById(R.id.btnPlayPause); btnPlayPause.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { try { tocaPausa(); } catch (IOException e) { e.printStackTrace(); } } }); configuraAudioManager(); } private void tocaPausa() throws IOException { if (conexao == true) { if (!mPlayer.isPlaying()) { mPlayer.start(); btnPlayPause.setBackgroundResource(R.drawable.pause); } else { mPlayer.pause(); btnPlayPause.setBackgroundResource(R.drawable.play); } } else { String url = "rtsp://cdn-the-2.musicradio.com:80/LiveAudio/Capital"; // your URL here new Play().execute(url); } } private void configuraAudioManager() { audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); int volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); sb.setMax(maxVolume); sb.setProgress(volume); sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, AudioManager.FLAG_SHOW_UI); Double total = progress * 6.666666666666667; String valor =Integer.toString(Integer.valueOf(total.intValue())); textView.setText(valor+" %"); } @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); } @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) private void notificacao (){ NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.home) .setContentTitle("Rádio Capital") .setContentText("Agora deu"); Intent resultIntent = new Intent(this, player.class); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(player.class); stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.setContentIntent(resultPendingIntent); mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(1, mBuilder.build()); } private void contaBuffer () { textView2.setText(Integer.toString(mPlayer.getDuration())); mPlayer.setOnBufferingUpdateListener( new MediaPlayer.OnBufferingUpdateListener() { public void onBufferingUpdate(MediaPlayer mp, int percent) { double ratio = percent / 100.0; int bufferingLevel = (int)(mp.getDuration() * ratio); sb.setSecondaryProgress(bufferingLevel); textView2.setText(Integer.toString(bufferingLevel)); } } ); } public void mostraBuffer() { mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { mediaPlayer.setOnInfoListener(new MediaPlayer.OnInfoListener() { @Override public boolean onInfo(MediaPlayer mp, int what, int extra) { if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END){ progressDialog.dismiss(); return true; } else if(what == MediaPlayer.MEDIA_INFO_BUFFERING_START){ progressDialog.show(); } return false; } }); } }); } @Override public void onBufferingUpdate(MediaPlayer mp, int percent) { textView3.setText(Integer.toString(percent)); } class Play extends AsyncTask<String, Void ,Boolean > { @Override protected void onPreExecute() { btnPlayPause.setBackgroundResource(R.drawable.carregando); btnPlayPause.setEnabled(false); } @Override protected Boolean doInBackground(String... params) { try { mPlayer = new MediaPlayer(); mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mPlayer.setDataSource(params[0]); mostraBuffer(); mPlayer.prepare(); // might take long! (for buffering, etc) return true; } catch (IOException e) { e.printStackTrace(); } return false; } @Override protected void onPostExecute(Boolean result) { if (result == true){ btnPlayPause.setEnabled(true); mPlayer.start(); conexao = true; btnPlayPause.setBackgroundResource(R.drawable.pause); contaBuffer(); } else { conexao = false; } } } }
  14. Olá, tenho o form abaixo onde eu leio um json à partir de um endereço na web http://www.hotplateprensas.com.br/ws/clientest.php que me entrega uma string json do tipo { "clientes":[ { "idClientesT":"1", "tipo":"s", "nome":"Carlos"}, { "idClientesT":"2", "tipo":"s", "nome":"Rogério" } ] } Então, pego ela no AndroidStudio com a Activity abaixo: package carcleo.com.radiosingular; import android.os.Bundle; import android.os.StrictMode; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import carcleo.com.radiosingular.classes.JsonClass; public class form extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.form); } public void listaClientes (View View) { if (android.os.Build.VERSION.SDK_INT > 9){ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } String url = "http://hotplateprensas.com.br/ws/clientest.php"; JsonClass json = new JsonClass(); JSONObject clientesLista = json.getJSONFromUrl(url); clientes(clientesLista); } public void clientes(JSONObject jsonCli) { try { JSONArray arrayPlanetas = jsonCli.getJSONArray("clientes"); for (int i = 0; i < arrayPlanetas.length(); i++) { JSONObject cliente = arrayPlanetas.getJSONObject(i); Log.d("idClientesT", cliente.getString("idClientesT")); Log.d("tipo", cliente.getString("tipo")); Log.d("nome", cliente.getString("nome")); } } catch (JSONException e) { e.printStackTrace(); } } } Esse código funciona normalmente.Porém, é preciso colocar o trecho de código abaixo; if (android.os.Build.VERSION.SDK_INT > 9){ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } Senão, a conexão com a internet NÃO é estabelecida. No entanto, eu já adicionei a permissão de acesso à INTERNET no AndroidManifest. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="carcleo.com.radiosingular"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".login"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".principal" /> <activity android:name=".form" /> <activity android:name=".retrofit" /> </application> </manifest> Mas não adianta. Se eu retirar esse bloco de código if (android.os.Build.VERSION.SDK_INT > 9){ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } A conexão com a INTERNET não acontece. O problema é que quantas vezes eu precisar acessar à INTERNET será o mesmo número de vezes que terei que fazer uso desse trecho de código? Será que não existe um arquivo de configuração geral para isso no AndroidStudio?
  15. Boa Noite! Estou iniciando na arte do Android Studio e estou apanhando bastante e venho em busca de ajuda. Tenho um formulário (Activity) de login. 2 campos: login e senha e 1 botão Quando compilo os campos ficam um sobre o outro. Eis o xml <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Login"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="LOGON" tools:layout_editor_absoluteX="162dp" tools:layout_editor_absoluteY="16dp" /> <EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" android:text="Usuário" tools:layout_editor_absoluteX="83dp" tools:layout_editor_absoluteY="61dp" /> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:inputType="textPassword" tools:layout_editor_absoluteX="80dp" tools:layout_editor_absoluteY="129dp" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Login" tools:layout_editor_absoluteX="147dp" tools:layout_editor_absoluteY="201dp" /> </android.support.constraint.ConstraintLayout> E o .java package carcleo.com.cadastrodeclientes; import android.app.Activity; import android.os.Bundle; public class Login extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); } } O que estou errando?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.