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/

Howto: WordPress – Como retornar somente posts com a data de publicação igual a data atual?

Veja o seguinte problema:

“Você cadastra vários posts, com data de publicação futuras, e quer exbir em uma página somente os posts cuja data de publicação seja igual a data atual (do Sistema Operacional).”

É bem simples, basta utilizar essa sintaxe em seu wp_query:

$hoje = getdate();
query_posts('year=' .$hoje[year] .'monthnum=' .$hoje[mon] .'day=' .$hoje[mday] );

em um loop, ficaria assim:

< ?php
	$hoje = getdate();
	$dhoje = new WP_Query();
	$dhoje->query('year='.$hoje[year].'&monthnum='.$hoje[mon].'&day='.$hoje[mday].'&showposts=1&cat=12' );	
	while($dhoje->have_posts()) : $dhoje->the_post();
	global $more;
	$more = 0;
?>

 <h1>< ?php the_title(); ?></h1><br />
        <h4>< ?php the_content(); ?></h4>

< ?php endwhile; ?>

De boa né?

Howto: WordPress: Agrupando posts por mês

Veja como fazer para puxar todos os posts de uma determinada categoria, exibindo em listas agrupadas por meses, assim:

Julho 2010

  • Titulo do post
  • Titulo do post

Junho 2010

  • Titulo do post
  • Titulo do post

Vejamos:

[sourcecode language=”php”]
< ?php $args=array( 'tag' => ‘tag1’,
‘posts_per_page’ => -1,
‘post_status’ => ‘publish’,
‘orderby’ => ‘date’,
‘order’ => ‘DESC’,
‘caller_get_posts’ =>1
);

$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
$ymdate = ”;
while ($my_query->have_posts()) : $my_query->the_post();
$ympost = mysql2date(“M Y”, $post->post_date);
if ( $ympost != $ymdate) {
$ymdate = $ympost;
echo ‘

Artigos do mes: ‘ . $ymdate . ‘

‘;
}
?>

< ?php the_time('F jS, Y') ?>


[/sourcecode]

[sourcecode language=”css”]

[/sourcecode]

[sourcecode language=”php”]

< ?php $args=array( 'cat' => ’12’,
‘posts_per_page’ => -1,
‘post_status’ => ‘publish’,
‘orderby’ => ‘date’,
‘order’ => ‘ASC’,
‘caller_get_posts’ =>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
$ymdate = ”;
while ($my_query->have_posts()) : $my_query->the_post();
$ympost = mysql2date(“F Y”, $post->post_date);
if ( $ympost != $ymdate) {
$ymdate = $ympost;
echo ‘

‘.$ymdate.’

‘;
echo ‘

‘;
} wp_reset_query();
?>
[/sourcecode]

Perfeito!!!

Como criar interatividade com Jquery sem saber nada de JavaScript?

IxEdit é um framework que gera automaticamente o código JavaScript a partir dos parâmetros que especificou diretamente no browser, on-the-fly….  O código JavaScript gerado é projetado para executar com jQuery e jQuery UI, e apresenta interações poderosíssimas, sem a necessidade de se preocupar com as diferenças entre navegadores.

Qualquer pessoa com conhecimento básico de HTML e CSS pode criar interações em interfaces apenas marcando os elementos e selecionando as ações desejadas, no final é gerado que deve ser inserido diretamente no HEAD da página, veja o vídeo abaixo e entenda o que o IxEdit é capaz de fazer:

[youtube]http://www.youtube.com/watch?v=CcjZnwpBLBU[/youtube]

Integrando o SlideShowPro ao WordPress

Sei que muitos irão falar que não faz sentido usar o Slideshow Pro, por ele ser um produto pago, e gerar Feature Content em Flash, e também devido ao fato de existir inúmeras outras alternativas, tanto em Jquery como em MooTools e blá, blá, blá….

Porém, eu já utilizo o SlidShow Pro a um bom tempo, e o acho muito simples e de fácil manipulação, a grande chatice era ter que editar manualmente um arquivo XML com as informações dos imagens e URL de feature. Pois bem, este howto, irá explicar como você pode integrar ele ao WordPress, de forma que cada usuário possa inserir as imagens diretamente no post, semelhante ao conhecido Featured Content Gallery. Existe um produto comercial com essa mesma idéia, só que em forma de plugin, o  SlidePress. Vamos lá…

( 1 ) Consiga uma versão paga ou “alternativa” dos arquivos:
slideshow.fla, slideshow.html e slideshow.swf
obs: você irá precisar do Adobe Flash CS4 ou maior para editar o slideshow.fla

( 2 ) Abrindo o slideshow.fla, em seu Adobe Flash, você verá uma imagem que você terá que editar e deixar do tamanho que deseja carregar em seu projeto, no exemplo anexo a este post, o SWF será exportado no tamanho de 470×215. Então, assumindo que você tenha o mínimo de conhecimento de Flash, é só editar na aba Position and Size.

( 3 ) Ainda no Flash, você clicando no Scene 1, irá surgir a aba Component Parameters, o qual possui diversos parâmetros que podem ser configurados, porém o mais importante é a penúltima opção, XML File Path, onde é informado o nome do arquivo XML que irá ser carregado, pode deixar como esta. Essa versão não permite que seja inserido um XML remoto, como uma URL. Ao terminar de editar os parâmetros, basta dar um publish, para gerar um novo slideshow.swf, e coloque ele diretamente na pasta de seu tema (wp-content/themes/seutema).

( 4 ) No WordPress você pode criar uma categoria que irá receber todos os posts de destaque, que irá utilizar o slideshow. Faça também uma alteração, na aba Configurações/Diversas, na opção: Armazenar arquivos enviados nesta pasta, pode-se deixar a padrão: wp-content/uploads e desmaque o checkbox Organizar arquivos enviados em pastas baseadas no mês e ano.

( 5 ) Crie diretamente em seu tema uma página com template personalizado, através da tag, Template Name, com o seguinte código:

< ?php
/*
Template Name: Destaque
*/

/*
header('Content-Type: text/xml');
header('Cache-Control: no-store');

echo '<?xml version="1.0" encoding="UTF-8" ?>';
echo '
<gallery>
  <album title="Nature" description="Banner"';
echo ' lgPath="';  
echo '../../../wp-content/uploads';
echo '/">';

query_posts('cat=3');
if ( have_posts() ) : while ( have_posts() ) : the_post();

echo '<img id="';
echo the_ID().'"';
echo ' src="';
echo get_post_meta($post-/>ID, "destaque", true).'"';
echo ' link="';
echo the_permalink().'"';
echo ' target="';
echo '_self';
echo ''.'" />';

endwhile; else: endif;

echo '</album>
</gallery>';
*/
	$path = 'wp-content/themes/default/output.xml';
	$xml  = "< ?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
	$xml .= "<gallery>\r\n";
	$xml .= "<album title=\"Nature\" description=\"Banner\" lgPath=\"../../../wp-content/uploads/\">\r\n";	  

query_posts('cat=3');
if( have_posts() ) : while( have_posts() ) : the_post();
	$xml .= "<img id=\"$id\" src=\"".get_post_meta($post-/>ID, 'destaque', true)."\" link=\"" .get_permalink(). "\" target=\"_self\"/>\r\n";
endwhile; endif;
	$xml .= "</album>\r\n";
	$xml .= "</gallery>\r\n";	  
$file= fopen("$path", "w+");
fwrite($file, $xml);
fclose($file);
?>

Com o mínimo de conhecimento, você pode notar que este código é responsável por gerar um XML com os posts da categoria 3, que no caso é o ID da categoria que criei no WordPress, e que irá receber todos os posts destacados.

O primeiro bloco comentado, é para visualizar o XML na tela, que não é nosso objetivo, mas sim gravar diretamente na pasta do nosso tema ($path) um arquivo chamado output.xml, que é o mesmo nome que você viu na edição do slideshow.fla.

Não perca o ID dessa página, você irá precisa dele adiante.

( 6 ) Instale o plugin kimili que auxiliará na hora de postar o SWF diretamente na página ou post desejado. O uso deste plugin é opcional, pois você pode inserir o slideshow.swf diretamente em uma página personalizada.

( 7 ) Adicione alguns posts, dentro da categoria criada (Destaque). Insira a imagem no post, através da opção Upload/Insert (add image) :

Após inserir sua imagem (para o tamanho do .fla configurado acima, é de 477×215), você verá essa tela:

Copie o nome do arquivo inserido, no caso acima: 1.jpg e pode fechar essa janela de upload de imagem.

Nos campos personalizados, logo abaixo da edição dos posts, cole o nome do arquivo, no campo valor, e adicione como nome destaque:

( 8 ) Com o plugin kimili ativado, crie um novo post ou uma nova página que irá exibir o slideshow, e adicione o seguinte trecho de código:

Claro, trocando o id da página do iframe e a URL do slideshow.swf, para o seu caso.

Pronto, com isso você pode exibir essa página que irá mostrar o slideshow de acordo com os posts inseridos.

OBS, a pasta de seu tema, tem que ter privilégio de escrita.

http://www.featuredcontentgallery.com/

Exemplo do SlideShow funcionando: http://www.tjac.jus.br

Relay: Administrador de arquivos Ajax em seu host

Relay é um serviço que podemos instalar em nosso servidor e que permite de uma maneira cômoda e muito fácil, executar a administração de arquivos e diretórios. Suas principais características são:

  • Upload de arquivos
  • Barra de progresso no upload.
  • Visualização de miniaturas de imagens.
  • Múltiplos usuários e contas.

Os requesitos do sistema:

  • PHP versão 4 ou superior.
  • MySQL versão 4 ou superior.
  • Perl 5.8.0 (para mostrar a barra de progresso)
  • Apache 2.0

Veja um demo: Relay: Ajax Directory Management » »

Criação de temas WordPress – Cada vez mais simples…

[youtube]http://www.youtube.com/watch?v=nTL9SrmR0d8&feature=player_embedded[/youtube]

Elastic Theme Editor é um plugin fantástico, embora se encontre em status beta, já é possível baixar e testar a capacidade de criar e editar temas de todo tipo e formato diretamente da área administrativa do WordPress (Dashboard).

Uma vez instalado e ativado, você vai encontrá-lo na seção Aparência, e então poderá começar a adicionar elementos, editar, modificá-los, todos, sem tocar uma linha de código. Ainda está um pouco verde mas a idéia é ótima.

Entre as características deste editor visual de temas, temos:

  • Várias alterações no seu tema: arrastar e soltar para personalizar.
  • Fontes personalizadas: Faça a previsão com o editor da fonte.
  • Fácil organização baseada em células, personalizando as células com maior flexibilidade.
  • Framework para Temas: Para que os desenvolvedores tenham seu trabalho facilitado.

O plugin ainda apresenta alguns bugs.. como problemas com as barras laterais criadas, mas como ainda está em fase de desenvolvimento e melhoras é esperar pra ver… com certeza esse plugin tem tudo para ser referência em desenvolvimento de temas !

Veja o vídeo da amostra e se impressione um pouco também.

Tempo de carregamento

Você tem idéia de quanto seu blog/site demora para carregar?

Embora a banda larga esteja se disseminando rapidamente, existem muitas pessoas que ainda navegam com internet de 56kbps. A maioria das pessoas que entram nos blogs vem do Google, é comum o visitante estar com bastante pressa, então, se demorar demais para carregar a página, a pessoa fechará e vai partir para outra.

Para isso, algumas dicas são valiosas e devemos nos esforçar para colocar em prática, vejamos:

  • Criar um template com menos de 100kb, para demorar muito menos o carregamento;
  • Evitar o uso de frames/iframes;
  • Utilizar um número razoável de divs/spans. O correto seria no máximo 20;
  • Utilizar apenas uma folha de estilos. Duas ou mais demoram no carregamento;
  • Não utilizar muitas imagens. O tamanho de todas não deve ultrapassar 100kb;
  • Moderar no uso de Scripts. Utilize apenas os scripts necessários, dando preferência por um framework como o Jquery, compactado;
  • Não use muitos objetos <embed>. Objetos em flash ou mp3 demoram bastante para ser carregados.

Pensando nisso, o WebSiteOptimization criou o Analyze, um serviço que mede o tempo de carregamento da sua página e diz o que deve ser melhorado. Tudo bem, não vá colocar o endereço deste blog para verificar, pois eu já fiz isso, e realmente este blog não é o melhor exemplo… de otimização.

Uma outra dica interessante é caso você seja usuário de WordPress (de longe um dos melhores CMS):

Por padrão, o WordPress envia para o navegador do visitante HTML descompactado, o que pode ocasionar demora no carregamento, porém com uma única linha de código você consegue comprimir a saída HTML em até 75%, usando a tecnologia zlib C, você pode aproveitar o poder do PHP e reduzir a velocidade de carga.

1º. Certifique-se que o “zlib” esteja ativado em seu provedor de hospedagem, você pode fazer isso por criar por exemplo, um arquivo teste.php,  com o conteúdo abaixo:

phpinfo();

2º. Em segundo lugar, coloque o seguinte código em seu cabeçalho (acima da DOCTYPE):

ini_set('zlib.output_compression', 'On');
ini_set('zlib.output_compression_level', '1');