Gerando ID Alfanumérico único

Postado por: Anderson Custódio em

Olha eu de novo aqui :) Não apareço faz tempo, muito trabalho e etc… Acho que quase ninguém me conhece, mas em fim, estou de volta e espero que gostem do post :D

Como está na moda URLs curtas, acho que muita gente vai gostar e achar interessante, vou citar duas soluções, a segunda eu não usaria.

Gerando aleatoriamente

Se você reparar no código abaixo a pré configuração gera IDs no mesmo estilo que do YouTube, a intenção foi exatamente esta, usei este mesmo padrão em um portal que estou montando, serão postados muitas fotos e vídeos diariamente, achei esta uma excelente solução e fiz uma função bem simples e funcional.

Com uma pequena configuração você pode gerar URLs Curtas e Únicas, estilo os encurtadores de URL.

Continuar lendo »

Central Server

Target _blank é uma afronta a liberdade de escolha do usuário

Postado por: Anderson Custódio em

O desenvolvedor não pode escolher pelo usuário se o link vai abrir ou não em outra janela, está é uma decisão exclusivamente do usuário que há tempos está mal acostumado com o target _blank.

Todos links deveriam abrir na mesma janela (ou aba, tanto faz) com isso o usuário ficaria bem acostumado, ele já saberia que para abrir o link em uma nova janela seria só clicar no link segurando o shift, em uma nova aba crtl ou apenas clicar para abrir na mesma janela, ai está, graças ao target _blank os usuários não podem abrir o link na mesma janela.

Digo o mesmo para o autocomplete off, se o usuário não quer adicionar a senha dele no autocomplete cabe exclusivamente a ele decidir, e não ao desenvolvedor, o próprio navegador perguntar se ele quer ou não fazer isso.

Mesmo no final de formulários onde há um link para uma página com os termos de uso, o botão voltar não foi feito para enfeitar o navegador, mesmo o usuário já tendo preenchido todo formulário e abrindo outra página na mesma janela ao clicar em voltar o formulário fica com todos campos preenchidos mantidos, mas se mesmo assim o usuário quiser abrir em outra janela ele tem liberdade de escolha. :)

Outros lugares onde pode usar o “or” no PHP

Postado por: Anderson Custódio em

Muitos pensam que o “or” só pode ser usado dentro do “if”. Por exemplo:

if ($a == 1 or $a == 2) {
 echo '$a tem o valor de 1 ou 2';
}

Mas tem outras formas, acho que não tem muito o que explicar, então só vou fazer alguns exemplos.

// Se o arquivo não existir mostra a mensagem de não encontrado
file_exists('tpl.php') or die('Arquivo não encontrado');

// Se teste não tiver valor é atribuído um
$teste or $teste = 'ok';

// Se teste tiver valor é atribuído outro
!$teste or $teste = 'outro'; //repare o "!" na frente da váriavel teste

// Se teste não tiver valor executo uma função
$teste or funcao();

// Se teste for igual a "outro" é atribuído outro valor
$teste == 'outro' or $teste = 'outro valor';

// Se teste for diferente a "outro" executa uma função
$teste != 'outro' or funcao();

Bom é isso, apenas alguns exemplos para dar uma noção do que se pode fazer, qualquer erro me avisem, próximo artigo vai ser sobre URLs Amigáveis, to devendo a um tempão =/

PS: Descobri fazendo alguns testes, não sei se tem documentação sobre isso, e só testei no PHP5.

Compactando o (X)HTML/CSS de suas páginas

Postado por: Anderson Custódio em

Fiz um código super simples, para deixar qualquer (X)HTML ou CSS em uma única linha, sem tabs e sem comentários.

Sobre o CSS seria interessante você usar junto com esta dica do Bruno Alves.

Bom, primeiro lhe apresento a função que tira todos os Enters, tabs, comentários CSS e (X)HTML. Basta colocar no index.php de seu site.

function strip($buffer) {
  return trim(preg_replace('/\n|\r|\t|/', ' ', $buffer));
}

Agora em seguida é só usar o buffer do PHP com a função strip no callback.

Exemplo com o index do WordPress:

define('WP_USE_THEMES', true);

function strip($buffer) {
	return trim(preg_replace('/\n|\r|\t|/', ' ', $buffer));
}

ob_start('strip');
	require('./wp-blog-header.php');
ob_end_flush();

E pronto, todo (X)HTML que seu WordPress gerar vai ficar em uma única linha e sem comentários. Lembrando que você pode usar este código em qualquer sistema. É só usar o código corretamente no index.

PS: Sobre o vídeo tutorial “Como trabalhar com URLs Amigáveis” peço desculpas pela demora, nele vou ensinar técnicas avançadas para gerenciar URLs e como usar slugs.

Update: Como haviam dito o expressão para remover os comentários teriam que ser mais complexa, como na época conhecia só o básico não cheguei a entender os comentários. Para não ter problema está apenas a parte que deixa todo código em uma única linha. Desculpe, logo farei um post sobre expressões regulares e mostrarei como fazer essa expressão. Até lá :)

Máscaras em campos de formulários com jQuery

Postado por: Anderson Custódio em

Para criar máscaras com jQuery, iremos usar o plugin Masked Input, com apenas uma linha de código podemos criar qualquer tipo de máscara.

Para começar, caso não tenha o jQuery, faça o download do mesmo, após isso pegue o Masked Input, e apenas inclua-los em sua página.

Agora vamos criar as máscaras que precisamos.

jQuery.noConflict();
(function($) {
$(function() {
$('.mask-data').mask('99/99/9999'); //data
$('.mask-hora').mask('99:99'); //hora
$('.mask-fone').mask('(999) 999-9999'); //telefone
$('.mask-rg').mask('99.999.999-9'); //RG
$('.mask-ag').mask('9999-9'); //Agência
$('.mask-ag').mask('9.999-9'); //Conta
});
})(jQuery);

Repare que estou setando as máscaras para “classes”, no site do autor é usado “ids”, mas isso não é muito legal, caso tenha dois campos de telefone numa mesma página, teriamos que mecher no javascript, pois não pode haver “id” repetidos na mesma página.

Agora pra implemetar as máscaras é só incluir as classes setadas nos inputs dos formulários.

<input type="text" name="fone1" class="mask-fone" />
<input type="text" name="fone2" class="mask-fone" />
<input type="text" name="rg" class="mask-rg" />
<input type="text" name="cpf" class="mask-fpc" />

E pronto, já esta funcionando, repare que caso você erre, é possível alterar sem ter que apagar tudo, geralmente algumas máscaras, como a do Banco do Brasil, não deixa editar pelo meio do campo, temos que apagar e digitar tudo de novo, se não tudo que for digitado vai para o final do campo.

Para facilitar, recomendo colocar o código que gera as máscaras no final do código do plugin, sim no mesmo arquivo, assim você não precisa ficar refazendo, e é só incluir e usar.