Jump to content

matmper

Members
  • Content count

    13
  • Joined

  • Last visited

Community Reputation

2 Comum

About matmper

  • Birthday October 24

Informações Pessoais

  • Sexo
    Masculino

Contato

  • Site Pessoal
    http://matheusp.com.br

Recent Profile Visitors

336 profile views
  1. matmper

    Problema com Root Path no Cakephp 2.8

    Estou com um problema, eu possuo um sistema antigo, e que a cliente não se desfaz de nenhuma maneira, está escrito em CakePHP 2.8. Eu não dou mais manutenção do mesmo faz anos, e hoje trabalho apenas com Laravel e Code Igniter, mas tive que fazer uma migração de hospedagem. Tudo ocorreu bem, conexão com o banco de dados, funcionamento e apache. O servidor está com Apache 2.2 e PHP 5.6 O problema é que todos os actions dos <form> e os href dos <a> estão exibindo pastas do servidores, que não deveria. O correto seria: <a href="/cartao/18.06.2018/18.06.2018" class="xn-text">Cartões</a> Porém, está exibindo da seguinte maneira: <a href="/var/www/html/dominio.com.br/web/cartao/18.06.2018/18.06.2018" class="xn-text">Cartões</a> O que devo alterar? Já tentei pelo .htaccess e no index do projeto. /index.php define('APP_DIR', 'app'); define('DS', DIRECTORY_SEPARATOR); define('ROOT', dirname(__FILE__)); define('WEBROOT_DIR', 'webroot'); define('WWW_ROOT', ROOT . DS . APP_DIR . DS . WEBROOT_DIR . DS); .htaccess <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule> Como posso solucionar o problema? Obrigado desde já!
  2. matmper

    jQuery Mask - CPF e CNPJ no mesmo input

    Eu fiz o post mais para ajudar quem procura esse conteúdo, o que eu comentei acima funciona perfeitamente, de qualquer modo, é um adicional o seu conteúdo. Valeu!
  3. Eu sempre tive problemas em utilizar máscaras (mask.js) em campos que podem ser CPF ou CNPJ, então baseado em algumas soluções, fiz algumas adaptações para que o mesmo suporte ambos dados no mesmo campo, e segue a solução. Realize o download do mask plugin, e chame o js na página que recebera a máscara. jQuery Maks Plugin: https://github.com/igorescobar/jQuery-Mask-Plugin <script src="assets/js/jquery.mask.min.js"></script> Adicione a função no seu main.js ou no script de sua página, sempre após o jQuery e o jQuery Mask // jQuery Mask Plugin v1.14.11 // github.com/igorescobar/jQuery-Mask-Plugin var cpfMascara = function (val) { return val.replace(/\D/g, '').length > 11 ? '00.000.000/0000-00' : '000.000.000-009'; }, cpfOptions = { onKeyPress: function(val, e, field, options) { field.mask(cpfMascara.apply({}, arguments), options); } }; $('.mascara-cpfcnpj').mask(cpfMascara, cpfOptions); Agora, basta adicionar a classe .mascara-cpfcnpj, no campo desejado, e o mesmo será apto a receber CPF ou CNPJ. <input name="cpfcnpj" class="mascara-cpfcnpj"/> Pronto!
  4. Boa noite. Estou desenvolvendo uma pequena rede social, e cheguei na parte do scroll infinito por PHP + MySQL + Ajax, a parte da programação, tudo certo, fiz a query corretamente, o PHP tranquilo, mas o meu problema é, quado bate próximo ao fim da página (scroll), eu deveria pegar a página do get e dar um append, tudo certo até aí, o problema entra quando ele dar 2, 3 get e append, e fica tudo bagunçado. Eu preciso que ele só permita dar outro get, depois que o primeiro for concluído, tentei usar a variável sinal, mas sem sucesso! Controller (CodeIgniter) public function usuario_pergunta($usuario = null, $last = null) { $data['uci'] = $this->m_acao->get( 'usuarios', array('id' => $usuario), true ); $data['perguntas'] = $this->m_usuarios->getTimeLine( $usuario, $last ); $this->load->view('site/usuarios/usuario_perguntas', $data); } Model (Query) public function getTimeLine($usuario = null, $last = null) { if($last) { $last = 'AND p.id < '.$last; } $query = $this->db->query(" SELECT p.id, p.pergunta, p.criacao, r.resposta, r.criacao as r_criacao, u.nome, u.username, u.oauth_uid, u.foto, u.id as uid FROM perguntas p LEFT JOIN usuarios u ON u.id = p.usuarios_id LEFT JOIN respostas r ON p.id = r.perguntas_id WHERE p.usuario_destino = ".$usuario." AND p.status > 1 ".$last." ORDER BY p.criacao DESC LIMIT 15"); //echo $this->db->last_query(); if($query->num_rows() > 0) { $result = $query->result(); return $result; } else return false; } js_scroll.php var win = $(window); var sinal = 1; win.scroll(function() { if ( $(document).height() - win.height() - 150 <= win.scrollTop()) { if(sinal == 1) { sinal = 0; $('.loading').fadeIn(500); //PERFIL DO USUÁRIO @USER if( $('.pergunta-user').length > 0 ) { var last = $('.item-perg').last().data('perg'); $.get('<?= base_url('usuarios/usuario_pergunta/'.$uci->id.'/') ?>' + last, function (dados) {$("#pergunta").append(dados);}); } $('.loading').fadeOut(500); sinal = 1; } } });
  5. Pessoal, estou desenvolvendo uma pequena rede social, e preciso fazer com que alguns campos transformem parte de uma string em uma URL, fiz uma function para isso, a mesma funciona em partes. Se observarem, se eu colocar 2 ou mais URLS com http:// na mesma string, ele reconhece como apenas URL. $texto = 'http://teste.com e http://google.com e www.globo.com' echo texto($string) Function PHP (CodeIgniter) function texto($texto) { $er = "/(https:\/\/(www\.|.*?\/)?|http:\/\/(www\.|.*?\/)?|www\.)([a-zA-Z0-9]+|_|-)+(\.(([0-9a-zA-Z]|-|_|\/|\?|=|&)+))+/i"; $texto = preg_replace_callback($er, function($match){ $link = $match[0]; $link = (stristr($link, "http") === false) ? "http://" . $link : $link; $link = str_replace ("&", "&", $link); return "<a href='".strtolower($link)."' target='_blank'>".str_replace('http://', '', $link)."</a>"; }, $texto); return $texto; } Retorno HTML (return $texto): <a href='http://teste.com e http://google.com' target='_blank'>teste.com e google.com</a> e <a href='http://www.globo.com' target='_blank'>www.globo.com</a>
  6. matmper

    Banner 100% Tamanho da Tela

    <style> .cover { background-size: cover; width: 250px; height: 200px; } </style> <div style="background-image:url('<?php echo $miniatura ?>')" class="cover"> <h1>Título do artigo</h1> </div>
  7. Segue exemplo: É importante lembrar que para o .css funcionar, é necessário importar o jquery, e faça isso sempre antes de fechar a tag body. No exemplo abaixo ele muda a cor caso seja dia 15 ou menos (#F00F00) ou 16 ou mais (#000000) <html> <head> <title>Meu site</title> </head> <body> <!-- SEU CONTEÚDO --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> day = new Date; var getDay = day.getDay(); if (day <= 15) { $('body').css('background-color', '#F00F00'); } else { $('body').css('background-color', '#000000'); } </script> </body> </html> Você também pode fazer no PHP, algo nesse estilo, faz a mesma coisa, mas nesse caso, deve ser feito dentro da tag <head> <?php$today = date('d'); if($today <= 15) { $bg = '#F00F00'; } else { $bg = '#000000'; } ?> <style> body {background-color: <?php echo $bg; ?>;} </style>
  8. Se for possível realizar a troca do H1 para texto, é sim mais relevante. Imagens são imagens, e devem conter as tags title e alt, mesmo que sejam iguais, lembrando que background é bem pior do que a tag <img>, já que o Google não vai ler style, o mesmo deve apenas estar minificado...
  9. matmper

    Calcular descontos

    <form id="cupom"> <input type="text" name="nomeCupom"> <button type="submit">Buscar Cupom</button> </form> $("#cupom button").click(function(e) { e.preventDefault(); $.ajax({ type: "POST", url: '/PÁGINA-QUE-BUSCA-CUPONS.PHP', data: $("#cupom").serialize(), success: function(data) { $('#resultado').append( data ); } }); }); Faça um form para o seu cupom, com um text e o botão, pode usar submit ou não, faça uma requisição (select) em um script em PHP que irá buscar esse cupom, e se o resultado for true, traga o valor do desconto, depois insira-o dentro de um input ou div, no caso, eu coloquei o resultado dentro da div #resultado, senão apenas retorne false e diga alguma mensagem.
  10. matmper

    barra de duração/progresso vídeo php

    Cara, utilize players de vídeos, o próprio HTML5 já oferece por padrão, mas você pode personalizar com plugins jQuery e CSS. <video src="https://s3-sa-east-1.amazonaws.com/onlytestes/video.mp4" controls autoplay preload="auto" poster="img/thumb.jpg" ></video>
  11. Eu fiz uma pequena função em GalleriesController.php para redimensionar imagens na view, pesando menos os arquivos e melhorando o page speed, funciona normal, porém, eu preciso importar de um jeito menos demorado, que exija menos servidor e de maneira mais dinâmica, estilo importar essa função na view. Essa função recebeu uma rota: Router::connect('/imagem/*', array('controller' => 'Galleries', 'action' => 'index', 'admin' => false)); Então, atualmente eu estou chamando assim: <img src="./imagem/350/350/85/portfolio---<?= $p['Portfolio']['gallery_1'] ?>" /> função index //recebe width, height, qualidade e caminho public function index($w, $h, $q, $img){ $img = str_replace("---","/", $img); $img = WideImage::load(FULL_BASE_URL.$this->webroot . IMAGES_URL . $img); $img = $img->resize($w, $h, 'outside'); $img = $img->crop('center', 'center', $w, $h); $img = $img->output('jpg', $q); return $img; }
  12. Consegui realizar o upload de um arquivo (imagem) na pasta /img/upload quando se editar o perfil, mas preciso fazer com que salve a variável $filename no banco de dados. Só preciso fazer com que retorne o nome do arquivo ao controller ou model e salve, mesmo que em um before filter, seja na function add ou edit. Estou usando o CakePHP 3 com MySQL, e o campo é "Users.thumb". Toda ajuda é bem-vinda, pois estou saindo do cake 2 e migrando para o 3. Obrigado! UsersController public function edit($id = null) { $this->set('title', 'Editar Usuário'); $user = $this->Users->get($id, [ 'contain' => [] ]); if ($this->request->is(['patch', 'post', 'put'])) { $user = $this->Users->patchEntity($user, $this->request->getData()); if($this->request->data['thumb']) { $this->Upload->send($this->request->data['thumb']); } if ($this->Users->save($user)) { $this->Flash->success(__('The user has been saved.')); return $this->redirect(['action' => 'index']); } $this->Flash->error(__('The user could not be saved. Please, try again.')); } $roles = $this->Users->Roles->find('list', ['limit' => 200]); $this->set(compact('user', 'roles')); $this->set('_serialize', ['user']); } UploadComponent public function send( $data = null ) { $filename = $data['name']; $file_tmp_name = $data['tmp_name']; $dir = WWW_ROOT.'img'.DS.'uploads'; $allowed = ['.png', '.jpg', '.jpeg', '.bmp']; if($this->request->session()) { $user = $this->request->session()->read('Auth.User.id'); } else { $user = 0; } if ( !in_array( strrchr($filename, '.'), $allowed ) ) { throw new InternalErrorException("Extensão de arquivo não permitido", 1); } else if( is_uploaded_file($file_tmp_name) ) { $filename = date('Ymd-Hi').'-'.$user.'-'.md5($filename.$file_tmp_name).'.jpg'; move_uploaded_file($file_tmp_name, $dir.DS.$filename); return $filename; } } Resolução: No "UsersController", alterei um trecho para: if($this->request->data['thumb']) { $thumb = $this->Upload->send($this->request->data['thumb']); $user['thumb'] = $thumb; }
  13. matmper

    CakePHP + Envio de Email SSL e TLS

    Eu testei com mais de um e-mail e SSL e TLS em ambos, com todas as portas possíveis, o problema está no sistema (também ocorre o mesmo erro localhost) com a conexão, não com o servidor de e-mail. No caso, foi um servidor interno da empresa, com Zimbra, e outro com um servidor de revenda de hospedagem UOL Host, que também suporta SSL.
×

Important Information

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