Criando uma aplicação do zero com PHP+OO(DRY)+PDO+AJAX…

Material excelente em forma de série que mostra todo o desenvolvimento de uma Aplicação Web, desde a idéia no papel até a implementação final, utilizando conceitos, técnicas e ferramentas modernas, como:

  • Linguagem: PHP
  • Programação Orientada a Objeto, com o conceito de programação DRY em mente (“Don’t Repeat Yourself”).
  • Implementação de segurança do lado do cliente e do servidor
  • Utilização de PHP Data Objects (PDO), como forma de garantir a segurança do Banco de Dados.
  • Uso de strip_tags (), para evitar que o usuário armazene dados maliciosos no Banco de Dados.
  • Compactação de bibliotecas JavaScripts, para carregamento mais rápido da aplicação.
  • e muito mais…

Com certeza um material que deve ser analisado por todos.

Navegação nos tópicos da série:

Link oficial: WebAppFromScratch
Outro legal: http://www.phpro.org/tutorials/Creating-A-PHP-Application.html

Howto: como fazer Milkbar ou Lollo?

Se você tem aproximadamente 30 anos ou mais chegou a conhecer um chocolate chamado Lollo, que tinha como  divulgação um comercial na televisão onde uma vaquinha cantava “Estou lou lou louquinha por lollo”, pois é, os tempos passaram e o chocolate até mudou de nome, passou a se  chamar “Milkbar”.

No sabor nada mudou, um chocolate gostoso que desmancha na boca e que ao mesmo tempo não é muito enjoativo. Infelizmente ele já não faz tanto sucesso quanto antigamente,  mas quem provou o Lollo ou o Milkbar sabe a maravilha que é.

Então para que você mesmo possa provar essa delícia em sua casa, vou passar aqui a receita:

Ingredientes:

  • 400g de leite em pó integral instantâneo (Leite Ninho é o melhor)
  • 1 lata de leite condensado
  • 200g de chocolate em pó (Não use o Nescau, a muito tempo deixou de ser um “chocolate em pó”)
  • 1 colher de sopa de glucose de milho (Melado, você acha fácil um chamado Mel Karo)
  • 2 colheres de sopa de manteiga sem sal
  • 1 gota de baunilha
  • chocolate para banhar (uma barra derretida em banho maria)

Modo de preparo:

  1. Misture todos os ingredientes muito bem, a massa deve ficar bem macia (se ficar seca, adicione 1 ou 2 colheres de leite comum ou água).
  2. Depois de pronta, forre a pia com filme plástico, coloque a massa, cubra com o filme e abra com o rolo, até uma espessura média. (aproximadamente 1 ou 2 dedos)
  3. Retire o papel filme de cima, corte em retângulos, forre uma forma com papel alumínio e ponha os retângulos na geladeira para firmar.
  4. Quando endurecer um pouco, banhe-os no chocolate derretido.
  5. Coloque na geladeira até secar a cobertura.

Comparação de CMS: WordPress, Joomla, Drupal e Plone

A Idealware publicou um relatório de 60 páginas onde compara 4 sistemas de gerência de conteúdo opensource: Joomla, Plone, Drupal e WordPress.

Entre os itens avaliados estão:

  • facilidade de hospedagem e instalação;
  • facilidade de configuração para um site simples;
  • curva de aprendizado para construção de um site mais complexo;
  • facilidade de administração;
  • flexibilidade gráfica e estrutural;
  • roles e workflow;
  • funcionalidades de web 2.0 e criação de comunidades no software;
  • extensão e integração com outras ferramentas;
  • escalabilidade e segurança;
  • manutação e força da comunidade/suporte.

Download do documento:

Howto: Criando uma metodologia de publicação de popup com WordPress

Olá pessoal, hoje iremos mostrar como fazer um sistema de publicação de banners em popups utilizando o WordPress, mas sem o uso de plugins.

É sei que muita gente odeia popup, e eu sou uma dessas pessoas, porém ao trabalhar para clientes que exigem a utilização desse recurso, torna-se necessário implementar no site.

Antigamente era comum a utilização da técnica de abrir uma janela via Javascript, porém os browsers já a algum tempo possuem mecanismos para bloquear esse tipo de publicidade.

O que se tem usado muito é a utilização de DIV´s, muito comum em sites de comércio eletrônico (aquelas janelinhas com propaganda, que obriga você clicar no fechar).

Vamos ao passo-a-passo, utilizando o WordPress:

1. Crie uma categoria no seu wp-admin, com o nome de popup.

2. Insira um post que será seu popup, faça a inserção da sua imagem normalmente no post, e crie dois campos personalizados logo abaixo do editor, com os nomes de Largura e Altura, e coloque o tamanho em pixel do seu popup.

3. Na sua header.php, você irá acrescentar um javascript, que irá fazer o popup ser fechado.

<script>
function MM_showHideLayers() { //v9.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i&amp;amp;amp;lt;(args.length-2); i+=3)
with (document) if (getElementById &amp;amp;amp;amp;&amp;amp;amp;amp; ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
obj.visibility=v; }
}
</script>

4. Em sua home.php ou na sua index.php (depende de seu tema), você irá criar o seguinte trecho de código, logo no início, após o get_header():

< ?
	$popup=new WP_Query();
	$popup->query('showposts=1&cat=5');
	while($popup->have_posts()):$popup->the_post();
?>

<style>
#destaque {
	width:< ? echo get_post_meta($post->ID, "largura", true); ?>px;
	height:< ? echo get_post_meta($post->ID, "altura", true); ?>px;
        position: absolute;
	top:0; 
	bottom:0; 
	left:0; 
	right:0;
	margin:auto; 
} 
#dtopo {
	border-bottom: #666666 solid 1px;
	height:32px;
	background: url(< ?php bloginfo('template_url'); ?>/images/closelabel.gif) no-repeat right;
}
</style>

<!-- ************************** POPUP DESTAQUE ************************** -->
<div id="destaque" style="visibility: visible;">

<!-- Botao Fechar | Inicio -->
<div id="dtopo" title="Fechar esse janela" style="cursor:pointer" onclick="MM_showHideLayers('destaque','','hide')"> </div>
<!-- Botao Fechar | FIM -->

<!-- CONTEUDO -->
<div onclick="MM_showHideLayers('destaque','','hide')" title="Fechar esse janela" style="cursor:pointer"></div>
< ?php the_content()?>

<!-- CONTEUDO | FIM -->
</div>
< ?php endwhile;?>
<!-- POPUP DESTAQUE | FIM -->

Explicando: no inicío deste código, criamos um laço do WordPress onde irá mostrar sempre o ultimo post da categoria popup (id=5).

No CSS, criamos uma DIV e configuramos que a sua largura e altura serão os informados no post, nos campos personalizados.

A classe dtopo, é a apenas para colocar um botão de fechar. Os demais são auto-explicativos.

6. Com isso, o laço irá exibir sempre o post publicado, caso não queira mais o popup, basta ir no wp-admin e despublicar o post, simples assim.

Howto: Redirecionando permanentemente um site para um novo domínio

===================================================
Howto: Redirecionando permanentemente um site para um novo domínio
===================================================

Vejamos o problema:

Eu tinha um site hospedado em um domínio X e o cliente me pediu para alterar o domínio para Y.  Sem dúvida essa é uma idéia estúpida, ainda mais quando o site já esta a um bom tempo com o nome de domínio X, pois alterar o endereço de um site sem pensar em todos os usuários que possuem páginas do mesmo em seus favoritos é algo que não deve ocorrer, pois significa perder todos estes antigos usuários.

É possível resolver parcialmente isso realizando um redirecionamento de site, utilizando para isso o status HTTP 301, para identificar que o site mudou permanentemente. Há muitas formas de fazer isso, mas porque não utilizar o Htaccess do Apache, pois a a maioria dos serviços de hospedagem suportam tão configuração. Em primeiro lugar eu tentei isso:

RewriteEngine On
RewriteBase /
Redirect 301 / http://novodominio.com.br/

Dessa forma, todas as solicitações para a raiz do antigo domínio serão redirecionadas para a raiz do novo domínio.

Mas ainda temos um problema, ao se tentar acessar algum caminho dentro do domínio antigo ( http://dominioantigo.com.br/caminhoxyz/), muito comum quando se chega ao site através de um buscador, o que aconteceria? Seria exibido um erro 404 (not found), porque o caminho não existe mais.

O que queremos é que se usuário acessar http://dominioantigo.com.br/caminhoxyz/ ele seja redirecionado para http://novodominio.com.br/caminhoxyz/.

Veja como é fácil, basta alterar o Htaccess, assim:

RewriteEngine On
RewriteBase /
RedirectMatch 301 (.*)$ http://dominionovo.com.br$1

Com isso em mente e um pouco de conhecimento de .httacces, é possível fazer coisas bem legals, como por exemplo:

RewriteEngine On

# Regra para os dias da semana.
# Se o dia atual for maior que 0 (domingo) E menor que 6 (sábado)
RewriteCond %{TIME_WDAY} >0
RewriteCond %{TIME_WDAY} <6

# Verificamos o horário do servidor.
# Se for menor que 8h OU maior que 18h
RewriteCond %{TIME_HOUR}%{TIME_MIN} <0800 [OR]
RewriteCond %{TIME_HOUR}%{TIME_MIN} >1800

# Enviamos a requisição para um outro domínio
RewriteBase /
RedirectMatch 301 (.*)$ http://dominoxyz.com.br$1

# Ou então redireciona para um arquivo no mesmo servidor:
# RewriteRule .* opz.php

# Regra para o sábado.
# Se o dia atual for 6 (sábado)
RewriteCond %{TIME_WDAY} =6

# Verificamos o horário do servidor
# Se for menor que 8h OU maior que 12h
RewriteCond %{TIME_HOUR}%{TIME_MIN} <0800 [OR]
RewriteCond %{TIME_HOUR}%{TIME_MIN} >1200

# Enviamos a requisição para o outro domínio
RewriteBase /
RedirectMatch 301 (.*)$ http://dominionovo.com.br$1

# Ou então redirecionamos para um outro arquivo no mesmo servidor:
# RewriteRule .* opz.php

Não fazer o que o usuário quer, fazer o que ele precisa…

Em um dos grupos que participo, um dos membros disparou esta mensagem:

“Ae pessoal,
Meu tio tem uma pequena construtora e precisa de alguém para fazer um software para gestão dela.
Ele encaminhou o documento explicando o que precisa e tem boa noção de sistema, precisa de alguém mais para fazer a parte de programação, talvez até um já pronto possa ser adaptado… Ele tem certa urgência nesse trabalho…”

E anexou um este documento, com requisitos…. vejam que é uma coisinha simples… e claro, o contratante vai querer “aquele preço especial”….

Depois de ler esse requisitos, me lembrei dessa tirinha do Dilbert:

🙂

Rastreio

Se você faz compras pela internet, tanto nacional como internacional, com certeza deve utilizar o serviço de rastreio de encomendas dos correios, porém indico dois sites que ajudam a monitorar seus pacotes transportados pelos Correios de forma bem mais completa, com notificação por email, feed RSS, twitter…. mostra até o caminho que seu pacote esta percorrendo utilizando o google maps, simplesmente perfeito.

  1. http://www.encontreseupacote.com.br
  2. http://www.muambator.com.br/