Crie um arquivo ".bat" com o seguinte conteúdo:
O CÓDIGO
cd CAMINHO_DA_SUA_PASTA
ren *.extensao_atual *.nova_extensao
pause
Execute o arquivo.
hasta!
segunda-feira, 29 de outubro de 2012
sexta-feira, 26 de outubro de 2012
Bloquear a seleção de elementos no html
Algumas vezes se faz necessário o bloqueio da seleção dos elementos no html. Algumas vezes esses eventos acontecem sem querer, como o acontecido recentemente. Tinha uma esteira em que se o usuário clicasse 2x nas setas de navegação, como havia um bloqueio para mover 1 elemento por vez, o duplo clique não funcionava, logo todo o conteúdo era selecionado deixando aquele bloco azul de vídeo reverso.
Este caso ocorreu apenas nos testes realizados no Chrome 22 rodando no Windows.
Para resolver o problema basta adicionar o CSS abaixo em todos os elementos que não queira a seleção:
O CÓDIGO:
.seus-seletores{
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
}
hasta!
Este caso ocorreu apenas nos testes realizados no Chrome 22 rodando no Windows.
Para resolver o problema basta adicionar o CSS abaixo em todos os elementos que não queira a seleção:
O CÓDIGO:
.seus-seletores{
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
}
hasta!
quinta-feira, 4 de outubro de 2012
Validar formulário quando Enter for pressionado
O Código:
$('input,select').keypress(function(e){
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
//Do something
$(this).parents('form').find('div.bt-enviar').trigger('click');
}
});
A Explicação:
Para todos os inputs e selects (fique livre para adicionar outros campos caso seu form os tenha), é criado um listener para capturar a tecla pressionada. Quando o keyCode for igual a 13 (enter), chamará o evento definido no onclick do seu botão submit, no caso acima, é uma div com a classe bt-enviar.
$('input,select').keypress(function(e){
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
//Do something
$(this).parents('form').find('div.bt-enviar').trigger('click');
}
});
A Explicação:
Para todos os inputs e selects (fique livre para adicionar outros campos caso seu form os tenha), é criado um listener para capturar a tecla pressionada. Quando o keyCode for igual a 13 (enter), chamará o evento definido no onclick do seu botão submit, no caso acima, é uma div com a classe bt-enviar.
terça-feira, 25 de setembro de 2012
MeioMask: Um Plugin JQuery muito útil para máscaras de campos
Para fazer máscaras para campos que possuem um padrão definido, como por exemplo cpf, telefone, cep, etc, utilizo este plugin para facilitar a vida.
Ele está disponível aqui:
https://github.com/zejuniortdr/jquery.meiomask.9digito
Depois de adicioná-lo em sua página, basta criar um arquivo de iniciliação como o a seguir:
/* Mascaras pre-existentes*/ /*$.mask.masks : { 'phone' : { mask : '(99) 9999-9999' }, 'phone-us' : { mask : '(999) 9999-9999' }, 'cpf' : { mask : '999.999.999-99' }, 'cnpj' : { mask : '99.999.999/9999-99' }, 'date' : { mask : '39/19/9999' }, //uk date 'date-us' : { mask : '19/39/9999' }, 'cep' : { mask : '99999-999' }, 'time' : { mask : '29:69' }, 'cc' : { mask : '9999 9999 9999 9999' }, //credit card mask 'integer' : { mask : '999.999.999.999', type : 'reverse' }, 'decimal' : { mask : '99,999.999.999.999', type : 'reverse', defaultValue: '000' }, 'decimal-us' : { mask : '99.999,999,999,999', type : 'reverse', defaultValue: '000' }, 'signed-decimal' : { mask : '99,999.999.999.999', type : 'reverse', defaultValue : '+000' }, 'signed-decimal-us' : { mask : '99,999.999.999.999', type : 'reverse', defaultValue : '+000' } } */ /* Mascaras personalizadas */ $.mask.masks = $.extend($.mask.masks,{ msk:{ mask: '999-999' }, other_msk:{ mask: '6666' }, another_one:{ mask: '7777' , type:'reverse' }, dose:{ mask: '99'}, termina_em:{ mask: '39/19/9999', autoTab:false }, phone_9digito:{ mask: '(99) 99999-9999'} }); (function($){ $(function(){ $('input:text').setMask(); var ddds = ['11) 9','12) 9','13) 9','14) 9','15) 9','16) 9','17) 9','18) 9','19) 9','21) 9','22) 9','24) 9','27) 9','28) 9']; // SP 11 - 19 // RJ 21,22,24 // ES 27,28 $('#id_telefone, #id_celular, #id_celular_validacao, #id_telefone').keydown(function(event) { if( procura_no_array($(this).val().substring(1,6), ddds) >= 0){ $(this).attr('alt','phone_sp'); }else{ $(this).attr('alt','phone'); } $(this).setMask(); }); }); })(jQuery);
No comentário acima, é possivel verificar alguns dos tipos disponíveis deste plugin, e se caso achar necessário pode-se criar novas máscaras como pode ser visto logo abaixo do bloco comentado. O init normal resume-se a apenas a instrução $('input:text').setMask(); chamada no onload da página.
Com a nova norma da Anatel, os celulares de São Paulo receberam o número 9 a frente dos 8 dígitos já existentes, e uma personalização para tal foi necessária no plugin. No evento onkeypress de todos os campos telefones e celulares, caso o DDD tenha o nono dígito, será aplicado a máscara personalizada "phone_9digito", caso contrário a máscara normal de telefone ("phone") será aplicada.
Para aplicação de qualquer máscara em seus inputs, basta colocar a identificação da máscara no atributo alt do input. Como no exemplo abaixo:
<input alt="phone_9digito" class="input2" id="id_telefone" name="telefone" placeholder="Telefone" type="text" value="" />
quinta-feira, 23 de agosto de 2012
Atualizando campo datetime com valores aleatórios
Muitas vezes, principalmente durante testes na fase de desenvolvimento, é preciso gerar datas aleatórias para os registros que muitas vezes já estão no banco.
O CÓDIGO:
UPDATE artigos_artigo SET data = FROM_UNIXTIME(RAND() * 2147483647)
hasta!
O CÓDIGO:
UPDATE artigos_artigo SET data = FROM_UNIXTIME(RAND() * 2147483647)
hasta!
terça-feira, 14 de agosto de 2012
Somando/Subtraindo datas com DATE_ADD no MySQL
O CÓDIGO:
UPDATE perguntas_pergunta SET data_disparo = DATE_ADD(data_disparo, INTERVAL 7 DAY);
Outros tipos de INTERVAL podem ser consultados em: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add.
Para subtração de datas, basta utilizar um valor negativo do intervalo escolhido.
hasta!
UPDATE perguntas_pergunta SET data_disparo = DATE_ADD(data_disparo, INTERVAL 7 DAY);
Outros tipos de INTERVAL podem ser consultados em: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add.
Para subtração de datas, basta utilizar um valor negativo do intervalo escolhido.
hasta!
sexta-feira, 22 de junho de 2012
Validar email em JS
O CÓDIGO:
hasta!
function valida_email(mail){
var er = RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
if(mail == "" || er.test(mail) == false){
return false;
}
return true;
}
quarta-feira, 6 de junho de 2012
Remover acentos com PHP
O CÓDIGO:
function retira_acentos($texto){
return strtr($texto, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ", "aaaaeeiooouucAAAAEEIOOOUUC");
}
O USO:
echo retira_acentos("Teste de acentuação");
// saida: Teste de acentuacao
function retira_acentos($texto){
return strtr($texto, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ", "aaaaeeiooouucAAAAEEIOOOUUC");
}
O USO:
echo retira_acentos("Teste de acentuação");
// saida: Teste de acentuacao
quinta-feira, 31 de maio de 2012
IE Hacks - Adequando o site aos problemas do Internet Explorer
A sintaxe geral para escrever comentários condicionais é a mostrada a seguir:
Afirmativa
<!--[if condição]> HTML < ![endif]-->
Negativa
< !--[if !condição] > < ![IGNORE[--> < ![IGNORE[]] > HTML < !-- < ![endif]-- >
HTML
condição admite uma das seguintes sintaxes:
IE
Todas as versões do IE
lt IE versão
Versões anteriores a versão
lte IE versão
Versões anteriores ou igual a versão
IE versão
Somente a versão versão
gte IE versão
Versões posteriores ou igual a versão
gt IE versão
Versões posteriores a versão
versão é a versão do Internet Explorer, tipicamente 5, 5.5, 6, ou 7
HTML é a marcação HTML regular a ser incluida se a condição for ou não for satisfeita dependendo do tipo de condição declarada, se afirmativa ou negativa. Quando incluida, a marcação será iserida no código, no mesmo local onde se encontra o comentário condicional.
Para condições negativas a diretiva pode ser abreviada para --> se a condição for simplesmente IE. A sintaxe não abreviada é necessária somente quando o Internet Explorer tem que parsear o conteúdo do comentário.
A diretiva não é aceita em XML, assim seu uso é ilegal em XHTML. Uma solução é dividir a diretiva em dois comentários condicionais especiais: XHTML na qual XHTML é o mesmo nas duas diretivas. Notar que o Internet Explorer 7 e anteriores não reconhecem XHTML servido como XML, assim esta observação que acabamos de fazer aplicar-se-á, possivelmente, somente para versões futuras do IE.
Com a finalidade de evitar que o seu site "quebre" em versões futuras do Internet Explorer leia um artigo em inglês denominado Preparing your site for IE.next.
Transparencia de um elemento via CSS
O CÓDIGO:
.opacidade40 { opacity:0.4; filter:alpha(opacity=40); }
O USO:
<div> Div com 40% de transparência </div>
.opacidade40 { opacity:0.4; filter:alpha(opacity=40); }
O USO:
<div> Div com 40% de transparência </div>
Função para Crop de imagens no PHP
O CÓDIGO:
function CroppedThumbnail($imgSrc,$thumbnail_width,$thumbnail_height) { //$imgSrc is a FILE - Returns an image resource.
if (!file_exists($imgSrc)) {
return "";
}
$imagem_file = ultimo_elemento($imgSrc, '/');
$novo_path_imagem = str_replace($imagem_file, "thumb_".$imagem_file, $imgSrc);
if(file_exists($novo_path_imagem)){
return $novo_path_imagem;
}
//getting the image dimensions
list($width_orig, $height_orig) = getimagesize($imgSrc);
$myImage = imagecreatefromjpeg($imgSrc);
$ratio_orig = $width_orig/$height_orig;
if ($thumbnail_width/$thumbnail_height > $ratio_orig) {
$new_height = $thumbnail_width/$ratio_orig;
$new_width = $thumbnail_width;
} else {
$new_width = $thumbnail_height*$ratio_orig;
$new_height = $thumbnail_height;
}
$x_mid = $new_width/2; //horizontal middle
$y_mid = $new_height/2; //vertical middle
$process = imagecreatetruecolor(round($new_width), round($new_height));
imagecopyresampled($process, $myImage, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
$thumb = imagecreatetruecolor($thumbnail_width, $thumbnail_height);
imagecopyresampled($thumb, $process, 0, 0, ($x_mid-($thumbnail_width/2)), ($y_mid-($thumbnail_height/2)), $thumbnail_width, $thumbnail_height, $thumbnail_width, $thumbnail_height);
imagedestroy($process);
imagedestroy($myImage);
imagejpeg($thumb, $novo_path_imagem);
return $novo_path_imagem;
}
O USO:
<img src=" < ?=CroppedThumbnail($foto,161,220);?>" width="161" height="220" alt="foto">
function CroppedThumbnail($imgSrc,$thumbnail_width,$thumbnail_height) { //$imgSrc is a FILE - Returns an image resource.
if (!file_exists($imgSrc)) {
return "";
}
$imagem_file = ultimo_elemento($imgSrc, '/');
$novo_path_imagem = str_replace($imagem_file, "thumb_".$imagem_file, $imgSrc);
if(file_exists($novo_path_imagem)){
return $novo_path_imagem;
}
//getting the image dimensions
list($width_orig, $height_orig) = getimagesize($imgSrc);
$myImage = imagecreatefromjpeg($imgSrc);
$ratio_orig = $width_orig/$height_orig;
if ($thumbnail_width/$thumbnail_height > $ratio_orig) {
$new_height = $thumbnail_width/$ratio_orig;
$new_width = $thumbnail_width;
} else {
$new_width = $thumbnail_height*$ratio_orig;
$new_height = $thumbnail_height;
}
$x_mid = $new_width/2; //horizontal middle
$y_mid = $new_height/2; //vertical middle
$process = imagecreatetruecolor(round($new_width), round($new_height));
imagecopyresampled($process, $myImage, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
$thumb = imagecreatetruecolor($thumbnail_width, $thumbnail_height);
imagecopyresampled($thumb, $process, 0, 0, ($x_mid-($thumbnail_width/2)), ($y_mid-($thumbnail_height/2)), $thumbnail_width, $thumbnail_height, $thumbnail_width, $thumbnail_height);
imagedestroy($process);
imagedestroy($myImage);
imagejpeg($thumb, $novo_path_imagem);
return $novo_path_imagem;
}
O USO:
<img src=" < ?=CroppedThumbnail($foto,161,220);?>" width="161" height="220" alt="foto">
Forçar o download de arquivos com PHP
O CÓDIGO:
Salve o código abaixo em um arquivo chamado download.php.
$arquivo = $_GET["arquivo"];
if(isset($arquivo) && file_exists($arquivo)){
switch(strtolower(substr(strrchr(basename($arquivo),"."),1))){
case "pdf": $tipo="application/pdf"; break;
case "exe": $tipo="application/octet-stream"; break;
case "zip": $tipo="application/zip"; break;
case "doc": $tipo="application/msword"; break;
case "xls": $tipo="application/vnd.ms-excel"; break;
case "ppt": $tipo="application/vnd.ms-powerpoint"; break;
case "gif": $tipo="image/gif"; break;
case "png": $tipo="image/png"; break;
case "jpg": $tipo="image/jpg"; break;
case "mp3": $tipo="audio/mpeg"; break;
case "php": // deixar vazio por seurança
case "htm": // deixar vazio por seurança
case "html": // deixar vazio por seurança
}
header("Content-Type: ".$tipo);
header("Content-Length: ".filesize($arquivo));
header("Content-Disposition: attachment; filename=".basename($arquivo));
readfile($arquivo);
exit;
}
?>
O USO:
<a href="download.php?arquivo=CAMINHO_DO_ARQUIVO">Clique aqui para fazer o download do arquivo</a>
Salve o código abaixo em um arquivo chamado download.php.
$arquivo = $_GET["arquivo"];
if(isset($arquivo) && file_exists($arquivo)){
switch(strtolower(substr(strrchr(basename($arquivo),"."),1))){
case "pdf": $tipo="application/pdf"; break;
case "exe": $tipo="application/octet-stream"; break;
case "zip": $tipo="application/zip"; break;
case "doc": $tipo="application/msword"; break;
case "xls": $tipo="application/vnd.ms-excel"; break;
case "ppt": $tipo="application/vnd.ms-powerpoint"; break;
case "gif": $tipo="image/gif"; break;
case "png": $tipo="image/png"; break;
case "jpg": $tipo="image/jpg"; break;
case "mp3": $tipo="audio/mpeg"; break;
case "php": // deixar vazio por seurança
case "htm": // deixar vazio por seurança
case "html": // deixar vazio por seurança
}
header("Content-Type: ".$tipo);
header("Content-Length: ".filesize($arquivo));
header("Content-Disposition: attachment; filename=".basename($arquivo));
readfile($arquivo);
exit;
}
?>
O USO:
<a href="download.php?arquivo=CAMINHO_DO_ARQUIVO">Clique aqui para fazer o download do arquivo</a>
quarta-feira, 2 de maio de 2012
Rotação de texto cross-browser via CSS (CSS Cross-browser Text Rotation)
.rotate {
/* Safari */
-webkit-transform: rotate(-90deg);
/* Firefox */
-moz-transform: rotate(-90deg);
/* IE */
-ms-transform: rotate(-90deg);
/* Opera */
-o-transform: rotate(-90deg);
/* Internet Explorer */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
hasta!
/* Safari */
-webkit-transform: rotate(-90deg);
/* Firefox */
-moz-transform: rotate(-90deg);
/* IE */
-ms-transform: rotate(-90deg);
/* Opera */
-o-transform: rotate(-90deg);
/* Internet Explorer */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
hasta!
Assinar:
Postagens (Atom)