Display suite é o tipo de módulo que, quando tu começa a usar, pensa “porque eu não usava isso antes?”. Assim como o Views e o CCK, permite personalizar diversas coisas sem ter que mexer com códigos PHP [bem, talvez um pouco…].
Comecei a usá-lo a pouco e, claro, queria integrá-lo ao Biblio.
Instalação
No Drupal 6 [Drupal 7 em post separado], é necessário instalar o Display Suite e pelo menos um desses outros, conforme explicado aqui:
Pra usar com o Biblio, basta o Node displays. Instale e ative como qualquer outro módulo, em /admin/build/modules.
Uso
As configurações do Display suite ficam em /admin/build/ds.
Primeiramente, podemos colocar todos os campos do Biblio em uma coluna e as informações de autor e data de criação na outra. Isso é feito facilmente:
Nas configurações do Display suite > Layout > Biblio > Node completo [ /admin/build/ds/layout/biblio/full ], colocar o Corpo (que são os campos do Biblio) na coluna do meio e Autor e Data de publicação na da direita:
Dessa maneira, o registro que era assim:
Ficou assim:
Eu coloquei os campos do Biblio na coluna do meio e não na da esquerda pois, quando há conteúdo apenas nas colunas da esquerda e da direita, ele deixa um espaço para a coluna do meio.
E se quisermos manipular apenas alguns campos do Biblio?
Para isso, já que não existe um “Biblio displays”, é necessário usar um pouco (bem pouco, mesmo) de PHP.
Eu não sei PHP mas, como de costume, peguei um exemplo já existente no Drupal pra fazer o que quero.
Nas configurações do Display suite > Node displays > Campos [ /admin/build/ds/nd/fields ], podemos gerenciar campos personalizados a serem exibidos no layout de cada tipo de conteúdo.
Por padrão, já vem configurado o campo “Leia mais”:
O que importa na configuração é o código do campo:
<?php echo l(t("Read more"), "node/$object->nid");?>
Esse código faz um link para node/nid com o texto “Leia mais” (traduzido pelo core do Drupal).
Para exibir campos do Biblio, sem linkar para nada, basta alterar para:
<?php echo "$object->biblio_year";?>
Alterando biblio_year pelo id do campo do Biblio, como vistos em /admin/settings/biblio/fields.
Também é possível adicionar mais de um campo do biblio no mesmo campo do Display suite. O código a seguir exibe o número de páginas e o ano de publicação.
N. de páginas: <?php echo "$object->biblio_pages"; ?> <br /> Ano: <?php echo "$object->biblio_year"; ?>
Depois, basta ir nas configurações do Display suite > Layout > Biblio > Node completo [ /admin/build/ds/layout/biblio/full ] e colocar os novos campos criados.
Evidentemente que é possível incrementar o código PHP para uma exibição mais complexa.
Notei que nem todos os campos funcionam corretamente com este código. Os campos biblio_authors e biblio_keywords, por exemplo, não exibem corretamente o que foi inserido. Provavelmente pela natureza do campo no banco de dados, deve ser necessário algum ajuste no código PHP.
Mesmo assim, já é possível personalizar melhor a visualização. Não coloquei no exemplo, mas é bem útil quando há um campo para a capa do livro, por exemplo.
Em um próximo post, falarei do Biblio + Display suite no Drupal 7 – que, claro, tem algumas coisinhas a mais.
Débora
Ok, acho que vou ter que parar de ler teu blog… Meu nível de nerdice não evoluiu e fiquei pra trás no assunto. Mas ó, casualmente hoje fiz um novo blog! haha. Enfim. Prossiga nerd assim que me dá orgulho! 😀
lfreitas
Hehehe
É que eu ando meio “monoassunto”. Mas eventualmente vou falar de outras coisas que não Drupal 😛