Ir para conteúdo

Omar~

Members
  • Total de itens

    1325
  • Registro em

  • Última visita

  • Dias vencidos

    15

Tudo que Omar~ postou

  1. Omar~

    Sistema de mensagens não lidas.

    Além do que foi apresentado pelo @Williams Duarte você pode optar por uma coluna tipo "unread" se o usuário selecionou a mensagem faria um update mudando essa mensagem como lida. Só não apresento uma query por desconhecer a estrutura de sua tabela de mensagens.
  2. Omar~

    Como criar botões extras Tinymce Joomla

    Usei o tinymce por quase 5 anos desenvolvi infinitos plugins e aplicações para o mesmo. Enfim hoje para meus clientes quando necessário aplico o ckEditor (o mesmo aqui do fórum, só que aqui é v4). Cara sobre isso de criar plugin fica complicado te ensinar em um post. Aconselho que apenda primeiro Javascript só então comece a estudar os recursos de plugins do tinymce Independente do joomla ou qualquer a funcionalidade, o mesmo se refere a ele. O que você quer um atalho e atalhos não existem na programação.
  3. Omar~

    mudar imagens em divs

    Opa blz?! Antes de responder a algo tão simples e fácil peço que edite seu tópico. Use a ferramenta code o botão "<>" do editor aqui no fórum. A forma de execução de tal afim pode ser contatado nesse script de desenvolvi: https://github.com/Spell-Master/sm-web/tree/master/javascript/ImageGalery
  4. Omar~

    Sair de um menu tabs e retornar ao mesmo lugar

    Se eu entendi, você que linkar o usuário para uma página onde nessa página você quer que seja aberta um tab específica. Foi para isso que criei o método openTab. Nesse caso basta passe essa informação por GET Exemplo (em PHP): Página A que contém o link, <a href="endereco_da_pagina?abrir_tab=1">Ir para outra página mostrando a primeira tab</a> <a href="endereco_da_pagina?abrir_tab=2">Ir para outra página mostrando a segunda tab</a> <a href="endereco_da_pagina?abrir_tab=3">Ir para outra página mostrando a terceira tab</a> Página B que contém as tabs tab.openTab(<?= isset($_GET['abrir_tab']) ? $_GET['abrir_tab'] : 1 ?>); Na página então verificamos a existência dessa informação, se ela existir usamos seu valor, caso não usamos o valor 1.
  5. Omar~

    Impedir download de documentos ou certificação!

    Antes de mais nada s solução apresentada pelo @Jack Oliveira é a única a qual você pode aderir pois desse forma como ele disse será impossível acessar diretamente o arquivo (não quer dizer que não possa baixa-lo). Tenha em mente que uma vez renderizado para o usuário no caso um PDF ele possui o arquivo ele poderá acessá-lo, pois quando você o renderiza o browser dele fará o download dele automaticamente assim como qualquer outro conteúdo presente em um documento html seja texto, video, audio ou qualquer outro arquivo. Já vi scripts no GitHub para impressão com marca baseadas em NodeJS, só que não as encontrei novamente (infelizmente) Mesmo assim como disse: - Se renderizou para o usuário já é dele....
  6. Omar~

    Sair de um menu tabs e retornar ao mesmo lugar

    Se te ajuda eu desenvolvi um script para essa finalidade https://github.com/Spell-Master/sm-web/tree/master/javascript/TabPaginator <ul class="tab-menu"> <li><a class="tab-link">London</a></li> <li><a class="tab-link">Paris</a></li> <li><a class="tab-link">Tokyo</a></li> </ul> <div class="tab-body"> <h3>London</h3> <p>London is the capital city of England.</p> </div> <div class="tab-body"> <h3>Paris</h3> <p>Paris is the capital of France.</p> </div> <div class="tab-body"> <h3>Tokyo</h3> <p>Tokyo is the capital of Japan.</p> </div> <script> var tab = new TabPaginator(); tab.openTab(1); // Quer dizer que a primeira tab é o padrão (obs.: nesse caso é desnecessário pois por padrão sempre será a primeira) </script> No mais se quiser vertical basta editar o CSS
  7. Omar~

    Página em Branco no PHP

    Provavelmente você obteve essa aplicação comprando-a ou fazendo o download. Pois bem, a única forma é levar a algum programador (responsável) que irá identificar o que está acontecendo porque como disse sem os arquivos em mãos é impossível de saber o que está de errado. Se você comprou no mínimo é exigir do fornecedor a correção do problema.
  8. Eu nunca fiz isso, mas de uma coisa é certa. Se você que somente a contagem se foi publicado o compartilhamento como no facebook por exemplo, você teria que obter algum retorno da plataforma, e de fato não sei se o facebook fornece esse tipo de serviço. Então aqui eu vou supor que clicou em compartilhar já registro que foi compartilhado. Podemos usar a tabela catalogo para verificar se o usuário já fez esse compartilhamento, desde que adicionemos mais uma coluna para isso, e é até prático pois podemos até saber o que cada usuário compartilhou. A ideia que pensei é executar um ajax em um arquivo, esse arquivo verifica se o usuário já compartilhou, caso não ele registra que foi compartilhado, então acionamos um script que irá abrir uma nova aba e redirecionar para. Obs.: Usei meu script para executar ajax: https://github.com/Spell-Master/sm-web/tree/master/javascript/AjaxRequest <a data-site="<?= ConfigPainel('site_url') ?>" data-slug="<?= $dados['slug'] ?>" class="compartilhar" > Shared Facebook </a> <div id="compartilhamento"></div> <!-- Usando esse elemento para gerenciar conteúdo --> <script> document.querySelectorAll('.compartilhar').forEach(definirEvento); function definirEvento(e) { e.addEventListener('click', compartilharLink, false); } function compartilharLink(e) { var link = e.target; compartilharLink.prototype = new AjaxRequest(); compartilharLink.prototype.open('compartilhamento', 'arquivo.php?site=' + link.dataset.site + '&slug=' + link.dataset.slug); } </script> Simples, temos o link de compartilhamento, mas quando clicado aciona a função que obtem os dados de compartilhamento dos atributos "data", assim sendo carregando um arquivo e enviado esses valores por GET. Então no arquivos que carrega: <?php $usuario = "?????"; $query = "SELECT item, id_user FROM catalogo WHERE item='{$_GET['slug']}' AND id_user='{$usuario}'"; // <<<< execute então a query if (!$resultado_do_banco) { /* Não tem o registro do usuário junto ao registro de compartilhamento * Assim sendo aqui registramos que o compartilhamento disso * E fazemos o updade conforme você está fazendo */ ?> <script> window.open('http://www.facebook.com/sharer.php?u=<?= $_GET['site'] ?>catalogo/<?= $_GET['slug']; ?>', '_blank'); </script> <?php } Na suposta nova coluna "item" armazeno o valor slug, então comparando o id do usuário mais isso podemos saber se ele já compartilhou determinada coisa.
  9. Omar~

    Estilizar TR que tenha checkbox marcado

    Também não consegui só com css acho que não dar mesmo. Que seja JS então: <table width="200" border="1"> <tr> <td>&nbsp;</td> <td><input class="marcar" type="checkbox" /></td> </tr> <tr> <td>&nbsp;</td> <td><input class="marcar" type="checkbox" /></td> </tr> </table> <script> var item = document.querySelectorAll('.marcar'); item.forEach(evento); function evento(e) { e.addEventListener('change', colocarCor, false); } function colocarCor(e) { var cor = 'red'; var definirCor = e.target.parentNode.parentNode; // parentNode [1] <td> // parentNode [2] <tr> if (e.target.checked) { definirCor.setAttribute('style', 'background-color:' + cor); } else { definirCor.removeAttribute('style'); } } </script>
  10. Omar~

    Página em Branco no PHP

    Certo, certo.... Está usando win8/8.1 ou 10, enfim a causa pode vim da porcaria do windows defender, mas descarto isso, pelo fato de um arquivo que não interage com o que estava acessando funcionar. Acredito que o problema esteja no diretório "sistema" que está acessando, pode uma condição do PHP ou uma reescrita de um htaccess. Por não saber o que tem nesse diretório e por desconhecer sua source não tenho e ninguém terá como lhe ajudar. Vá até esse diretório analise arquivos como index, home ou default (.php/.html/.hta/.htaml) se existir um .htaccess analise-o também porque em algum desses arquivos está fazendo é não renderizar um html para o usuário. Pode também ser um erro fatal do php e a demonstração desses erros estão desabilitados em algum arquivo como os que mencionei.
  11. Omar~

    Página em Branco no PHP

    Fez o arquivo que falei e colocou o que disse nele? Se sim ficou todo em branco? Veja o console do browser se há algum warning ou error apresentado. Qual é SO que está usando?
  12. Omar~

    Página em Branco no PHP

    Faz um teste aí.... Vá até a pasta htdocs pegue todos os arquivos e tire-os de lá. (Você pode até apagar se quiser.....) Então nessa mesma pasta crie um arquivo qualquer desde que seja um .PHP. Nesse arquivo escreva: Abra seu browser e acesse 127.0.0.1/nome_do_arquivo_que_criou.php Veja se funciona... Funcionou? Cache do seu browser está ainda pegando os heades de index.php dos arquivos da documentação. Não funcionou? 99% de certeza que o Apache não está funcionando.
  13. Omar~

    Como gerar um nome de usuário?

    Tipo isso? <?php function formatStr($string) { $match = []; $match['a'] = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜüÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿRr"!@#$%&*()_+={[}]/?;:.,\\\'<>°ºª`'; $match['b'] = 'aaaaaaaceeeeiiiidnoooooouuuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr '; $decode = strtr(utf8_decode($string), utf8_decode($match['a']), $match['b']); $stroke = preg_replace('/[ -]+/', '-', $decode); $leftStroke = ltrim($stroke, '-'); $rightStroke = rtrim($leftStroke, '-'); return (utf8_encode($rightStroke)); } function createCode($len = null) { $lengths = (isset($len) ? (int) $len : 10); $chars = '0123456789aAbBcCdDeEfFgGhHiIjJkKlLm0123456789MnNoOpPqQrRsStTuUvVxXyYwWzZ0123456789'; $code = ""; $arr = str_split($chars); for ($i = 0; $i < $lengths; $i++) { $code .= $arr[array_rand($arr)]; } return ($code); } $nome = "João Maria José"; $resultado = mb_strtolower(formatStr($nome)) . '-' . createCode(20);
  14. Vai transportar dados para o update? Qual a linguagem back-end? Essas são coisas que você deveria informar. O problema do ajax nessa situação é que dependendo do vai requisitar/atualizar * a quantidade de pessoas acessando pode deixar seu servidor lento. Em casos extremos até a queda ou travamento do mesmo. por isso o ideal é usar uma linguagem javascript serve-side no caso NodeJS para manipular WebSocket. Mais informações em: https://developer.mozilla.org/pt-BR/docs/WebSockets/Writing_WebSocket_servers No entanto se sua aplicação não terá uma gama enorme de centenas acessos simultâneos e não irá executar muitas consultas e updades simultâneos a cada atualização. Você pode sim usar ajax a cada X segundos, usando-se por detectar a atividade do(s) usuário(s) na página. O que isso quer dizer? - Quer dizer que faremos uma aquisição de arquivos ao qual fará o updade a cada intervalo de tempo, mas só quando o usuário estiver visualizando o documento, caso ele minimize o browser, esteja em outra aba; esse processo de aquisição de arquivo automatizado é interrompido, e iniciado caso o usuário retorne. Então vamos ao caso do ajax (obs.: Usarei esse script que desenvolvi por ser bem pático para fim de requisições) Arquivos necessários: https://github.com/Spell-Master/sm-web/tree/master/javascript/AjaxRequest Exemplo:
  15. Omar~

    Destruindo Sessão Por Definitivo

    @Alberto Nascimento uma session nada mais que é um ARRAY global portanto você deletar como deleta qualquer outro array no php. unset($_SESSION); // Simples assim Porque se isso aqui não surtiu efeito acredito que seu problema é o buffer do cabeçalho. Experimente essa minha classe para gerenciar sessões: Session.php Muito simples de usar. Vou demostrar o exemplo com três arquivos Arquivo 1. Onde criamos a cessão Arquivo 2. Onde destruímos a cessão: <?php require_once ('Session.php'); $session = Session::startSession(); var_dump($_SESSION); // array(1) { ["dizer"]=> string(4) "Olá" } if (isset($session->dizer)) { echo '<p>Existe a $_SESSION[\'dizer\'] e vamos destruír</p>'; Session::destroy(); // <<<<< Destroi todas cessões iniciadas! } Arquivo 3. Onde verificamos quais sessões existem: <?php require_once ('Session.php'); $session = Session::startSession(); var_dump($_SESSION); if (isset($session->dizer)) { echo '<p>Existe a $_SESSION[\'dizer\']</p>'; } else { echo '<p>Não existe a $_SESSION[\'dizer\']</p>'; } Bom, se você acessar o (arquivo 1) pelo browser verá que a sessão é criada, então acessar o (arquivo 3) vemos que essa cessão que criamos no arquivo 1 existe. Porém se acessar o (arquivo 2) a sessão vai deixar de existir, então se irmos até o arquivo 3 vemos que não existe mais a cessão. No mais leia a documentação da classe pois exitem mais recursos disponíveis
  16. Omar~

    Soma de array

    ??? Deveria está fazendo o calculo? Tentou verificar o que são: $qtC e $vatual Faça um var_dump dessas variáveis e veja se seus valores são dados que podem ser calculados, pois acredito que possa ser essa a razão de não fazer o calculo. Se mesmo assim forem strings numérias converta-as em INTEGER antes do calculo.
  17. Omar~

    fazer um where em 2 campus

    Não entendi direito mas veja se é isso: SELECT * FROM boletos WHERE proc = 0 AND (idOrganizador !='0' AND idPiloto !='0'); Instrução da query: Obs.: idOrganizador & idPiloto forem do tipo (int) você também pode instruir dessa forma >'0'
  18. Boas, desculpa aí mas nem sei onde postar algo como isso... A poucos minutos antes dessa postagem um amigo meu me liga dizendo que se enfiou numa encrenca devido a um sistema que ele desenvolveu. Todos nós sabemos que nunca se deve modificar arquivos no servidor por FTP enquanto a aplicação está sendo usada. Porém nesse mesmo sistema que ele criou, existe uma página para o administrador alterar configurações da aplicação tais como senhas, comportamento, acessos dentre outras configurações. Nada mais que pegar o valor de inputs usar a função fwrite e re-escrever o arquivo que guarda essas informações com as novas. Acontece que durante a manhã o dono do website fez modificações nas configurações e ao salvar por algum bug do PHP a função fwrite simplesmente escreveu o arquivo de modo errôneo o que expôs em texto toda a configuração do website incluindo login e senha de acesso ao banco de dados. E assim permaneceu por quase 24h até que o dono da aplicação conseguiu contactar esse meu amigo que desenvolveu e fez a restauração do arquivo manualmente, porém já era tarde demais, alguém acessou o servidor e apagou tudo. A questão complica mais que durante a madrugada ele me liga desesperado pois seu cliente ao qual ele desenvolveu a aplicação falou que vai processar-lo por causa dos danos, uma vez que todos dados de estoque, débitos e créditos foram perdidos, pois o infeliz parece que nunca ouviu falar em backup. Segundo o dono que comprou o website desse meu amigo, o prejuízo pode ultrapassar os 1.5 milhões. Mas é um caso isolado pois o website já estava a quase 2 anos online e tempos em tempos as configurações eram alteradas e nada de anormal aconteceu, por isso acredito que foi algum tipo de bug. Acontece que eu também faço isso a anos em websites que desenvolvo e nunca recebi qualquer tipo de reclamação sobre algum erro nem que seja similar. E se fossem você o que faria nessa situação complicada?
  19. De fato, tudo se normalizou hoje devido a backup's da hospedagem, mas a treta continua e mesmo agora insiste que tem que ser ressarcido pelo estresse e problema passado. Eu disse ao meu parsa que fique tranquilo a culpa de fato não foi dele, pois ele me passou os arquivos, revisei e vi que realmente o problema não foi causado pelo programador. Mas será um briga de "Davi VS Golias" pois é uma franquia de varejo presente em quase todos estados brasileiros enquanto ele só um programador autônomo que passa praticamente 20 horas por dia na frente do PC para sustentar a família. De fato não sei o que querem tirar dele, porque o que essa empresa ganha em um dia ele nem chega perto de ganhar em um/dois/três meses. E acho que qualquer judiciário que for analisar o caso terá esse mesmo entendimento meu.
  20. Omar~

    Redimensionar exibição de imagem através de PHP

    Ter, não tem. Mas tem como recriar outra com o tamanho específico usando a função imagecopyresampled Porém acho que complicar com algo simples como o seu não é o caso. //Ao invés de fazer echo "".$rows_cursos['novonome']."<br>"; //Faça echo "<pre>"; var_dump($rows_cursos['novonome']); // Precisamos saber como essa string é E poste o que aparece na tela
  21. Omar~

    Expressões regulares php

    Hun... Nesse caso basta fazer a substituição, listando todos os caracteres em um array e usar a função str_replace para substituí-los por nada. Exemplo: <?php $stringInicial = " > 'João' e 'maria' < foram no \"mercado\" comprar = `pão`"; var_dump($stringInicial); $invalidos = [ // Array com todos tipos de caracteres que queira remover da string; '"', "'", '`', '=', '-', '<', '>' ]; $stringLimpa = str_replace($invalidos, null, $stringInicial); // Fazendo a substituição por um valor nulo echo ("<hr />"); var_dump($stringLimpa); Lógico que isso irá remover quaisquer caracteres que estejam no array, porém temos nesse termo espaços duplicados como "o asterisco representa um espaço" Antes: *>*'João' Depois: **João Então basta fazer o tratamento desse termo. Porém se for mesmo questão de usar uma expressão basta usar o regex aceitando acentuações: <?php $stringInicial = " > 'João' e 'maria' < foram no \"mercado\" comprar `pão`"; var_dump($stringInicial); echo ("<hr />"); $stringLimpa = preg_replace('/[^[:alnum:] a-zÀ-ú]/', '', $stringInicial); var_dump($stringLimpa);
  22. Omar~

    Expressões regulares php

    Mas que tipo de caractere especial? Na via das dúvidas opte pela função htmlentities
  23. Omar~

    Remover click de elemento

    Sorry... É que quando coloco um código aqui no forum apenas o escrevo aqui, dificilmente testo antes. Mas, enfim, podemos então verificar se o valor digitado no input é um número válido toda a vez que waapTel1 é clicado. Sim o evento vai existir sempre, porém a função só é acionada caso o que está no input seja um número de telefone válido. (Obs.: Usei como referência dados da ANATEL) Assim aceitando como válido os seguintes tipos de números de telefone: +55(99)99999-9999 +559999999-9999 +5599999999999 9999999-9999 99999999999 9999-9999 99999999 Desta vez testei e está funcionando bem como esperado aqui, dar um olhada: O problema é que não consegui uma forma de validar se é realmente um número de telefone móvel ou fixo sem conflitar.... Tomei a liberdade de criar uma máscara ao input fazendo com que o usuário só possa digitar um número de telefone de forma correta (mas para o funcionamento tive de alterar a função): Em ambos eu testei e está funcional aqui, também de nada adianta isso sem uma verificação do lado do servidor
  24. A tag <section> define toda uma cessão dentro no documento, essa por vez pode conter diversos elementos incluindo artigos. A tag <article> define um artigo, dentro de um contexto, esse por sua vez contém um texto narrativo como postagens, comentários, descrições etc... Portanto a estrutura mais adequada é a segunda.
  25. Omar~

    Remover click de elemento

    Estranho... Deveria encerrar o evento nesse situação aí! Bom, podemos também usar alguma variável que é mudada conforme o comprimento do input se altere. Dar uma olhada: <input type="text" name="telefone" id="telefone" /> <span id="waapTel1">waapTel1</span> <script> var podeClicar = false; // Essa variável quando verdadeira vai realmente chamar a função var telefone = document.getElementById('telefone'); telefone.addEventListener('keypress', verificaNumero, false); telefone.value = null; // Apaga qualquer valor no input vindo de cache ou atualização da página document.getElementById('waapTel1').addEventListener('click', function (e) { if (podeClicar) { openWhatsApp(b, apelido); } }, false); function verificaNumero(e) { var alvo = e.target.value; if (alvo.length >= 11) { podeClicar = true; } else { podeClicar = false; } } </script>
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.