5. Lei de Peer
A solução do problema muda o problema.
quarta-feira, 23 de janeiro de 2013
terça-feira, 22 de janeiro de 2013
#4
4. Lei de Thoreau
Se alguém aproximar-se de você com a intenção declarada de lhe fazer o bem, é melhor correr para salvar sua vida.
Se alguém aproximar-se de você com a intenção declarada de lhe fazer o bem, é melhor correr para salvar sua vida.
#2
2. Lei de Mencken
Para cada problema na humanidade existe uma solução simples e clara, e esta será sempre a solução errada.
Para cada problema na humanidade existe uma solução simples e clara, e esta será sempre a solução errada.
#1
Se você não perde cabeça quando todos ao redor já perderem, talvez você apenas não esteja entendendo a situação.
Operações com datas em PHP do jeito quase certo
Há uns 2 meses atrás, fiz uma função que somava 10 dias em uma certa data.
Fiz assim:
É até vergonhoso ver que fiz algo de um jeito tão jurássico, há apenas 2 meses. Só percebi o problema porque um dos vendedores tentou cadastrar um orçamento com a data 32/01/2013...
Como agora tem toda essa história de 'php do jeito certo', decidi ver qual o jeito certo de se fazer, que é mais ou menos o seguinte:
Mas, ao testar em produção, deu erro, porque a versão do php do servidor está desatualizada (novidade...), e a função date_add só existe a partir da versão 5.3.0. Aí tive que tentar o segundo jeito certo, que é algo assim:
Fiz assim:
(date('d')+10).date('/m/Y');
É até vergonhoso ver que fiz algo de um jeito tão jurássico, há apenas 2 meses. Só percebi o problema porque um dos vendedores tentou cadastrar um orçamento com a data 32/01/2013...
Como agora tem toda essa história de 'php do jeito certo', decidi ver qual o jeito certo de se fazer, que é mais ou menos o seguinte:
$hoje = date_create();
date_add($hoje, date_interval_create_from_date_string('10 days'));
echo $hoje->format('d/m/Y');
Mas, ao testar em produção, deu erro, porque a versão do php do servidor está desatualizada (novidade...), e a função date_add só existe a partir da versão 5.3.0. Aí tive que tentar o segundo jeito certo, que é algo assim:
$date = date_create();
date_modify($date, '+10 day');
echo date_format($date, 'd/m/Y');
sexta-feira, 18 de janeiro de 2013
jQuery hasAttr
Um plugin simples para utilizar a função hasAttr com jQuery, que funciona do mesmo jeito que hasClass.
$.fn.hasAttr = function(name) {
return this.attr(name) !== undefined;
};
sexta-feira, 11 de janeiro de 2013
Exportando tabelas para excel e acertando o formato dos campos
Como 'gerar' um arquivo excel com php, todo mundo já sabe:
Simples:
Aqui tem os formatos aceitos:
http://cosicimiento.blogspot.com.br/2008/11/styling-excel-cells-with-mso-number.html
Fonte:
http://cosicimiento.blogspot.com.br/2008/11/styling-excel-cells-with-mso-number.html
http://stackoverflow.com/questions/354476/html-to-excel-how-can-tell-excel-to-treat-columns-as-numbers
Mas como fazer com que as colunas fiquem com os tipos de dados certos, como por exemplo, os campos de data?$arquivo = "export".date("dmY_His").".xls"; header("Content-Type: text/plain"); header("Content-Disposition: attachment; filename=\"$arquivo\";");
Simples:
Criando o seguinte css:.date {
mso-number-format:"Short Date";
}
E aplicando este estilo na célula da tabela que contém o valor que deve ser formatado.Aqui tem os formatos aceitos:
http://cosicimiento.blogspot.com.br/2008/11/styling-excel-cells-with-mso-number.html
Fonte:
http://cosicimiento.blogspot.com.br/2008/11/styling-excel-cells-with-mso-number.html
http://stackoverflow.com/questions/354476/html-to-excel-how-can-tell-excel-to-treat-columns-as-numbers
sexta-feira, 4 de janeiro de 2013
Colocando um elemento dentro de outro com Javascript
1: $.each($('input.check_red'), function(index, elemento){
2: var id_rand = Math.floor((Math.random()*1000)+1);
3: var id_rand2 = Math.floor((Math.random()*1000)+1);
4: var id_span = "span_"+id_rand+'_'+id_rand2;
5: $(elemento).before('<span class="check_red" id="'+id_span+'" title="Espaço do Corretor"></span>');
6: $(elemento).prependTo($('#'+id_span));
7: })
1: Seleciona os elementos que serão inseridos dentro do novo elemento criado2: Gera um número aleatório para criar o ID do novo elemento3: Gera outro número aleatório(porque, como é aleatório, pode acontecer de gerar duas vezes o mesmo número. Claro que é possível que os dois numeros aleatórios sejam iguais...4: Concatena os dois números gerados para criar o id do elemento novo5: Cria o novo elemento antes do elemento que será 'arrastado'6: Arrasta o elemento para dentro do novo elemento
quarta-feira, 2 de janeiro de 2013
Acessando a página 'mãe' com javascript
Dentro da página que foi aberta (pop-up):
Um exemplo, para 'atualizar' a página que chamou o pop-up:
Outro exemplo, pra popular um campo na página mãe com o valor de um campo na página filha:
window.opener
Um exemplo, para 'atualizar' a página que chamou o pop-up:
window.opener.location = 'pagina_mae.html';
Outro exemplo, pra popular um campo na página mãe com o valor de um campo na página filha:
window.opener.document.getElementById('campo1').value = document.getElementById('campo1').value;
Sowilo Rune
Lord Summerisle: "Now, those children out there, they're jumping through the flames in the hope that the god of the fire will make them fruitful. Really, you can't blame them. After all, what girl would not prefer the child of a god to that of some acne-scarred artisan?"
Sergeant Howie: "And you encourage them in this?"
Lord Summerisle: "Actively! It's most important to teach new generation born of Summerisle be made aware that here the old gods aren't dead."
Sergeant Howie: "And what of the true God? To whose glory churches and monasteries have been built on these islands for generations past? Now shall what of Him?"
Lord Summerisle: "Oh, He's dead. He can't complain. He had his chance and in modern parlance. Blew it."
Sergeant Howie: "And you encourage them in this?"
Lord Summerisle: "Actively! It's most important to teach new generation born of Summerisle be made aware that here the old gods aren't dead."
Sergeant Howie: "And what of the true God? To whose glory churches and monasteries have been built on these islands for generations past? Now shall what of Him?"
Lord Summerisle: "Oh, He's dead. He can't complain. He had his chance and in modern parlance. Blew it."
quinta-feira, 20 de dezembro de 2012
Debugando erros Episódio 1
Pra quando o script trava sem nenhum motivo aparente:
error_reporting(E_ALL);
ini_set('display_errors','on');
error_reporting(E_ALL);
ini_set('display_errors','on');
quarta-feira, 12 de dezembro de 2012
Como tornar uma imagem em preto-e-branco com css
Update: O cara que disponibilizou a classe que eu copiei, atualizou o código. Segue abaixo:
.imagem{
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); /* Firefox 10+ */
filter: gray; /* IE6-9 */
-webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */
-webkit-transition: all .6s ease; /* Fade to color for Chrome and Safari */
-webkit-backface-visibility: hidden; /* Fix for transition flickering */
}
Só não funcionou no Safari nem no Opera...
..com a seguinte classe:
.imagem{
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); /* Firefox 10+, Firefox on Android */
filter: gray; /* IE6-9 */
-webkit-filter: grayscale(100%); /* Chrome 19+, Safari 6+, Safari 6+ iOS */
}
Fonte: http://www.karlhorky.com/2012/06/cross-browser-image-grayscale-with-css.html
terça-feira, 11 de dezembro de 2012
Select Case no Mysql
Simples:
SELECT id, nome, descricao,
CASE status
WHEN 1 THEN 'Aprovado'
WHEN 2 THEN 'Vencido'
WHEN 3 THEN 'Pendente'
WHEN 0 THEN 'Reprovado'
END AS status
FROM tabela
Fonte:http://talibamartins.wordpress.com/2007/09/20/if-e-case-no-mysql/
SELECT id, nome, descricao,
CASE status
WHEN 1 THEN 'Aprovado'
WHEN 2 THEN 'Vencido'
WHEN 3 THEN 'Pendente'
WHEN 0 THEN 'Reprovado'
END AS status
FROM tabela
Fonte:http://talibamartins.wordpress.com/2007/09/20/if-e-case-no-mysql/
sexta-feira, 7 de dezembro de 2012
Zero entre aspas
Só uma coisinha rápida, pra eu lembrar mais tarde, e pro caso de alguém precisar:
Tem um site que eu 'fiz' (na verdade, personalizei) em wordpress.
Pra gerenciar as galerias de fotos, eu instalei o Nextgen Gallery, que é um plugin pra isso.
O bom de mexer com wordpress, e com coisas que muita gente usa, é que tem milhares de blogs falando como se usa esses negócios. O ruim é que nenhum deles é o que eu quero fazer.
Eu queria era ter uma página chamada 'fotos', onde ia mostrar automaticamente todos os albuns de fotos cadastrados. Do jeito que todo mundo mostrava, tinha que entrar na página e dizer pra mostrar tal álbum. Mas eu não queria isso, queria um jeito de mostrar todos os albuns.
Bueno, eu dei uma olhada no código e achei o que eu queria. Ou seja, a resposta tava bem debaixo do meu nariz.
Ou pra ser mais específico, na frente. Porque eu não fico com o nariz em cima do monitor, e sim de frente pra ele. Mas enfim.
Nos outros blogs, aparecia sempre pra colocar assim no post:
[album=#]
onde # é o id do álbum que eu quero mostrar. Mas eu não queria mostrar um álbum, queria mostrar todos. Daí no código eu achei esse comentário:
// in the case somebody uses the '0', it should be 'all' to show all galleries
Quer dizer, se eu colocar '0' como id do álbum que eu quero mostrar, ele mostra todos.
E eu tava desde ontem à noite tentando descobrir como fazer isso...
sexta-feira, 20 de julho de 2012
Pegando a altura da tela de dentro de um iframe com jQuery
Estava mais uma vez brigando com iframes, tentando pegar a altura interna da janela.
Como já é de costume, não funcionou no ie - pegava sempre a altura do iframe sem considerar o tamanho do conteúdo.
A solução foi pegar a altura da primeira tabela (não é um layout tableless), assim:
jQuery('table:first').css('height')
quarta-feira, 6 de junho de 2012
Como interceptar o pressionamento de teclas do teclado
Com jQuery, óbvio.
jQuery("input").keypress(function(event){ if(event.keyCode=='13') { event.preventDefault(); } })
Nesse caso, está impedindo o pressionamento do Enter (keycode=13).
Caso precise descobrir o keycode das demais teclas, ao invés de procurar uma tabela poraí, é mais fácil assim:
jQuery("input").keypress(function(event){
console.log(event.keyCode)
})
terça-feira, 22 de maio de 2012
Agrupar campos de formulários
Na verdade, não é bem agrupar, e sim colocar dentro de arrays, o que não deixa de ser um certo tipo de agrupamento.
Exemplo: temos esse formulário assim:
O retorno desse formulário vai sair assim:
Array ( [campos] => Array ( [campo1] => valor 1 [campo2] => valor 2 [campo3] => valor 3 [campo4] => valor 4 [campo5] => valor 5 ) )
Pena que não dá pra colocar mais sub-arrays, mas já é algo.
Assinar:
Postagens (Atom)