Back-End

22 abr, 2013

Como inserir uma view em todos os nodes de um determinado tipo de conteúdo no Drupal 7

Publicidade

Olá, pessoal! Hoje vamos falar sobre um assunto recorrente. Quantas vezes já foi preciso relacionar uma view a determinado tipo de conteúdo para que, em todos os nodes desse tipo, fosse carregado uma view? No meu caso, várias vezes.

Para dar um exemplo prático disso, vou pegar a view de conteúdo relacionado que fiz em outro artigo e inseri-la abaixo de todo conteúdo que for do tipo “Artigo”.

O que vou fazer, na verdade, é bem simples. Também vou fazer de uma forma que não precisa trabalhar com blocos ou criar uma nova região no meu tema, aproveitando para colocar a view em um local mais apropriado, logo abaixo do conteúdo do artigo.

Vou aproveitar o tema que fiz nesse outro artigo para usar como exemplo neste.

A primeira coisa que vou fazer é criar um node–article.tpl.php dentro do meu tema. No meu caso, vou copiar o arquivo node.tpl.php do meu tema pai e renomeá-lo, seguindo a lógica do tema do outro artigo. Também é importante dizer que o “article” no nome do arquivo node–article.tpl.php é o nome de máquina do meu tipo de conteúdo “Artigo”, onde vou inserir a view.

Sabendo disso, vou inserir no meu node–article.tpl.php, abaixo de onde se encontra a variável $content:

<div class="related-content">
<?php print t('Related content');
print views_embed_view('related_content', 'block');
??></div>

Só para entender, usei a função views_embed_view(), onde o primeiro parâmetro é o nome de máquina da view e o segundo, o id do display. Fácil, né?

Agora é só limpar todos os caches do Drupal e pronto! A view de conteúdo relacionado aparece logo abaixo de todo conteúdo do tipo “Artigo”.

Por hoje é isso! Qualquer coisa é só deixar um comentário.

***

Artigo original pode ser encontrado em: http://drupaldeelite.com.br/blog/como-inserir-uma-view-em-todos-os-nodes-de-um-determinado-tipo-de-conteudo-no-drupal-7