Como adiciono modos de exibição adicionais para um nó?
Estou criando um tipo de conteúdo personalizado. Por padrão, os nós suportam apenas dois modos de exibição ( fulle teaser):
Quero adicionar outros modos de exibição para este tipo de nó, como:
e deseja renderizar o nó com código como este:
— werqious
Encontrei este mearra.com/blogs/juha-niemi/drupal-7-custom-node-view-modes talvez seja útil!
— 23412 werqious #
Aqui está a apresentação de Tim Cosgrove sobre os modos de exibição: timcosgrove.net/drupalcon-viewmodes/#1 Você usará hook_entity_info_alter para adicionar um novo modo de exibição ( exemplo ).
Essa apresentação foi incrível.
— Niksmac 26/11/12
O link mencionado por werqious é movido para wunderkraut.com/NowOnWunderkraut/mearra/430
— Andrey Rudenko
A página se foi. No entanto, os slides estão aqui: slideshare.net/Phase2Technology/…
— Kari Kääriäinen
primeiro precisamos adicionar modos de exibição adicionais com hook_entity_info_alter
// podemos anexar funções ou modelos de tema adicionais e adicionar variáveis ​​com hook_view
// no nosso tema de gancho
Eu usei sua solução. é bom, mas esse gancho customuserblog_view ($ node, $ view_mode) não funcionou. então usei hook_preprocess_node com a função anonymous_profile_preprocess_node (& $ vars) para criar tpl personalizado para o modo de visualização personalizado.
— Mehrdad201
Eu adicionei comentários sobre ganchos usados ​​neste código
— werqious 19/07
Se tudo o que você deseja são modos de exibição personalizados, o Modo de Exibição de Entidade pode ajudar. O Display Suite também facilita a criação de modos de exibição personalizados, a criação de novos pseudo-campos e a boa interface de arrastar e soltar para exibir diferentes elementos nos vários modos de exibição.
Se você quiser fazer isso tudo em código, o entity_example do módulo Examples tem um modo de visualização IIRC. O Drupal Commerce também possui várias entidades personalizadas com modos de visualização personalizados.
obrigado, mas a instalação de módulos adicionais não é apreciada Obrigado por este módulos de hacking códigos de módulos podem dar algo útil
@werqious resposta atualizada
Se você estiver usando o Display Suite, verifique se o módulo ds_ui está ativado e vá para admin / structure / ds / view_modes para obter uma lista dos modos de exibição existentes e criar novos.
Sei que esse é um tópico mais antigo, mas achei o seguinte método para funcionar perfeitamente na maioria dos casos de uso.
Essas etapas simples o ajudarão a criar seu próprio módulo com o novo modo de visualização. É bem simples. Eu adoraria fornecer atribuição, mas não me lembro onde encontrei a base para isso. Ele segue a mesma lógica da resposta de werqious.
Arquivo 1: my_module_view_modes.module
Arquivo 2: my_module_view_modes.info
Salve esses dois arquivos na pasta my_module_view_mode na pasta modules e ative. Limpe seu cache e agora você verá os novos modos de exibição em suas respectivas entidades.