Olá pessoal!
À dois dias eu recebi nos meu Google Reader um artigo do Bruno Alves demonstrando como contextualizar o Boo-box no Wordpress.
O Boo-box é um serviço de vitrine para vários tipos de programa de afiliados. Você pode vê-la em ação na coluna lateral ou no final de cada artigo na página principal do blog.
O artigo é muito bom e me inspirou em criar um artigo que ensine a fazer uma implementação semelhante no Drupal.
Eu poderia simplesmente sugerir que o código da vitrine de tags do Boo-box seja inserido diretamente no tema. Mas ultimamente tenho evitado o máximo possível fazer este tipo de lambança. O tema atual do site usa muito disso (o código de qualquer coisa é inserido diretamente no tema) e isso torna tudo mais díficil de manter... Eventualmente devo lançar um novo tema para o site e consertar todos estes defeitos, algum dia...
Irei utilizar dois módulos no meu tutorial: o CCK (Content Construction Kit), um módulo poderoso que me permite inserir campos nos formulários de cadastro de conteúdo, e o Content Template, que fornece meios alterar o template das visualizações de conteúdo (como o teaser, a página inteira e o Feed). Utilizei a versão 5 do Drupal neste tutorial, Mas ambos os módulos foram lançados para a versão 6, e ele é facilmente adaptável.
Após fazer o download e instalação destes módulos, vamos começar a brincar. Primeiro, gere um código para você no assistente do boo-box. Não precisa inserir nenhuma tag. O seu código deve ficar bem parecido com o meu abaixo:
<!-- boo-widget start -->
<script type="text/javascript">
bb_bid = "107";
bb_lang = "pt-BR";
bb_name = "fixedlist";
bb_keywords = "";
bb_width = "600px";
bb_limit = "6";
</script>
<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
<!-- boo-widget end -->
De todas as variáveis, a mais importante para o tutorial é a bb_keywords (que eu grifei acima, no quote). Vamos usar o CCK para criar um campo no formulário de cadastro de posts, onde serão inseridos as palavras-chave que irão dar valor a esta variável.
Meu artigo começa a diferenciar do Bruno Alves aqui. No seu artigo, ele utiliza as próprias tags de categorias do artigo. É uma ótima solução, mas eu não consegui imprimir as tags removendo o link para a respectiva página de categoria.
Em vez disso, vou criar um campo no formulário de envio de posts, onde as tags serão digitadas. Outra opção seria imprimir o título do artigo como valor da variável, para tornar o processo automático e não precisar de um novo campo.
Com o módulo CCK devidamente instalado, acesse /admin/content/types/

Após criar o campo, vamos configurar o mesmo. Aqui não tem muito segredo, a única configuração obrigatória é selecionar o tipo de widget "textfield". Eu também adicionei um texto explicativo, informando que as tags devem ser separadas por vírgula. Veja a imagem abaixo:

Após configurar o campo, vamos esconder seu valor para que ele não seja exibido por padrão no node. Acesse a sessão display fields (/admin/content/types/

Depois, vamos acessar /admin/content/types/

Terminando nosso trabalho no módulo CCK, agora vamos mexer no Contemplate. o Content Template (contemplate para os íntimos), ele nos permite alterar o template de exibição do conteúdo do site. Ele é um assistente que nos lista uma série de variáveis que podemos inserir no teaser, corpo ou RSS do nosso conteúdo. Acesse o endereço /admin/content/types/

Eu preferi inserir o Boo-box apenas no teaser. Fica a critério e gosto de cada um.
A variável que imprime o valor do campo criado é $node->field_tags_boo_box[0]['value']. Como sei? Simples, esta variável é listada pelo Contemplate na sessão "teaser variables". Novamente, force sua vista tentando entender a imagem abaixo:

...
Antes que você comece a me xingar e todos os meus descendentes, digo para ter calma. Tive que redimensionar a imagem para que a mesma não quebrasse o layout do site, e ficou meio ilegível. Mas não se preocupe. Eu vou descrever detalhadamente o processo.
Logo abaixo de onde está escrito <?php print $teaser ?> (esta variável imprime o teaser do artigo). Eu fiz a seguinte condição:
<?php
if($node->field_tags_boo_box[0]['value']) {
?>
<?php
}
?>
Ou seja, estou testando para ver se a variável $node->field_tags_boo_box[0]['value'] possui algum valor. Se houver, vou fazer uma coisa. Essa coisa, no caso, é imprimir o valor desta mesma variável na linha da bb_keywords.
<?php
if($node->field_tags_boo_box[0]['value']) {
?>
<!-- boo-widget start -->
<script type="text/javascript">
bb_bid = "107";
bb_lang = "pt-BR";
bb_name = "fixedlist";
bb_keywords = "<?php print check_plain($node->field_tags_boo_box[0]['value']) ?>";
bb_width = "500px";
bb_limit = "5";
</script>
<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
<!-- boo-widget end -->
<?php
}
?>
Se o seu blog tiver muitos artigos escritos, você terá vários posts onde o boo-box acima não irá aparecer, simplesmente porque o valor da variável $node->field_tags_boo_box[0]['value'] vai ser nulo. O que você pode fazer é adicionar um "else" à condição acima, e adicionar tags padrão.
<?php print $teaser ?>
<?php
if($node->field_tags_boo_box[0]['value']) {
?>
<!-- boo-widget start -->
<script type="text/javascript">
bb_bid = "107";
bb_lang = "pt-BR";
bb_name = "fixedlist";
bb_keywords = "<?php print check_plain($node->field_tags_boo_box[0]['value']) ?>";
bb_width = "500px";
bb_limit = "5";
</script>
<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
<!-- boo-widget end -->
<?php
} else {
?>
<!-- boo-widget start -->
<script type="text/javascript">
bb_bid = "107";
bb_lang = "pt-BR";
bb_name = "fixedlist";
bb_keywords = "Notebook,TV,Câmera Digital,Impressora,Monitor";
bb_width = "500px";
bb_limit = "5";
</script>
<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
<!-- boo-widget end -->
<?
}
?>
Claro que dá para tornar esse código acima melhor, com menos linhas, mas estou com uma preguiça federal e é sábado à noite.
O tutorial está completo, e você pode ver o campo funcionando na imagem abaixo:

E com isso, completo o tutorial. Nossa, pensei que nunca iria completá-lo. E olha que ele nem é tão longo assim. Tem quatro dias tento escrever este texto, e sempre tenho que interromper o processo para realizar hábito que não posso ou consigo abandonar, como trabalhar ou dormir o mínimo de horas aceitáveis por dia.
Até a próxima!
copyright © Marcus VBP, Todos os direitos reservados
Permitida a cópia desde que citado a fonte. [Política de Privacidade]
Powered by Drupal CMS.
1. Jogos de Carros*
Olá amigo!
Eu sou novo no blog, cheguei hoje, mas estou gostando muito de seus artigos!
Meus parabéns por esse ótimo projeto!
Continue Assim,
Luiz
Enviar novo comentário