Minha situação é a seguinte: Tenho um tipo de conteúdo Seminário, com os campos A, B e C. Tenho as regiões Cabeçalho, Rodapé, Conteúdo e Barra Lateral Esquerda. Existem alguns campos no Seminário que quero exibir na região Conteúdo, mas também na região Esquerda da barra lateral.
Como faço para fazer isso? Desculpas se isso já foi respondido antes. Sou desenvolvedor e não hesito em mergulhar nas funções de gancho e pré-processador. Eu tenho o módulo Views instalado, mas nunca o usei (este é o meu primeiro site Drupal, se você não souber: P).
Felicidades.
EDIT: Isto é para Drupal 7 .
Respostas:
Não há uma maneira fácil e imediata de adicionar o conteúdo de um nó a diferentes regiões da página. Existem várias maneiras de resolver esse problema.
Maneira sem codificação: vistas e blocos
Crie uma vista
(além das configurações adicionais desejadas)
Em seguida, vá para a página de bloqueio do administrador Mova o novo bloco de exibição para a região que você deseja que ele seja exibido. Ele deve ser exibido apenas nas páginas do nó do seminário.
Repita para todas as regiões
Caminho de codificação com theme_preprocess_region ():
código seria algo parecido com isto
Isto é apenas para o Drupal 7. Agora está disponível em sua region.tpl.php.
fonte
O módulo Display Suite permite fazer isso. Você precisará habilitar o módulo Display Suite Extras para expor regiões do tema como destinos para componentes do nó. Informações sobre como fazer isso podem ser encontradas nos campos Adicionar a uma página de bloqueio da documentação do Display Suite
fonte
Eu tive o mesmo problema. A solução é bastante fácil. Você pode basear o fato de que no Drupal 7 podemos definir nosso próprio view_mode, não apenas FULL e TEASER (como sabemos nas versões mais antigas). Portanto, defina outro view_mode para uso em sua região: por exemplo, LEFTHAND. Drupal exibe view_mode COMPLETO na região de conteúdo. Então, você deve dizer ao Drupal para exibir LEFTHAND na região da barra lateral esquerda.
Em template_preprocess_page ()
No node.tpl.php, adicione uma nova exibição para o modo de visualização à esquerda
fonte
if (array_key_exists('block_14',$vars['page']['main_content'])){}
fazer aparecer apenas em páginas com um bloco específico.Se o Display Suite parecer demais para você (é um ótimo módulo, mas pode ser um exagero se você apenas precisar realocar alguns campos), existe um módulo apenas para esse fim -> CCK Blocks .
Eu sei que é chamado de blocos 'CCK', mas funciona com o Drupal 7 (que trouxe a funcionalidade do CCK ao núcleo).
fonte
Uma pequena alteração na resposta do @Patrik Lucan
if ($vars['node'])
estava causando problemas em páginas que não eram nós, por exemplo, página inicial personalizada com bloco ou página de visualizações.Alterado para:
if (array_key_exists('node', $vars))
O que parece ter resolvido o problema.
fonte
Enquanto isso, há um módulo para isso. Na página do módulo:
fonte