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
<?php
//Add more view modes for content type displays, in addition to default and teaser.
function almagest_view_modes_entity_info_alter(&$entity_info) {
//NB: media_ prefix required.
//You can repeat the following section for any view modes you'd like to create.
// First View Mode
// tag 1 references the entity type, ex. node or file
// tag 3 provides a machine name for your mode
$entity_info['node']['view modes']['my_view_mode'] = array(
'label' => t('My View Mode'), // This is what you'll see in your "Manage Display" tab.
'custom settings' => TRUE,
);
// Another View Mode
$entity_info['file']['view modes']['my_other_view_mode'] = array(
'label' => t('Another View Mode'),
'custom settings' => TRUE,
);
}
Arquivo 2: my_module_view_modes.info
name = My Module View Modes
description = Add additional "View Modes" for entities in this module. Helpful for additional displays in views or node rendering.
package = My Modules
version = 7.x - 0.1
core = 7.x
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.