Drupal 6 : Biblio + Display suite

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:

Configuração dos campos do Biblio no Display suite (Drupal 6)
Configuração dos campos do Biblio no Display suite (Drupal 6)

Dessa maneira, o registro que era assim:

Visualização de registro no Biblio sem Display Suite (Drupal 6)
Visualização de registro no Biblio sem Display Suite (Drupal 6)

Ficou assim:

Visualização de registro no Biblio com Display Suite no Drupal 6
Visualização de registro no Biblio com Display Suite no Drupal 6

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”:

Configuração de um campo personalizado no Display suite (Drupal 6)
Configuração de um campo personalizado no Display suite (Drupal 6)

O que importa na configuração é o código do campo:
[sourcecode language=”php”]<?php echo l(t(“Read more”), “node/$object->nid”);?>[/sourcecode]

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:
[sourcecode language=”php”]<?php echo “$object->biblio_year”;?>[/sourcecode]

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.
[sourcecode language=”php”]N. de páginas: <?php echo “$object->biblio_pages”; ?> <br />
Ano: <?php echo “$object->biblio_year”; ?>[/sourcecode]

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.

Configuração de um campo personalizado do Biblio no Display suite (Drupal 6)
Configuração de um campo personalizado do Biblio no Display suite (Drupal 6)

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.

2 respostas para “Drupal 6 : Biblio + Display suite”

  1. 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! 😀

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *