Drupal 7: Anzeigemodus hinzufügen

Um neben »Anrisstext« und »Vorgabe« noch einen weiteren Anzeigemodus zur Verfügung zu haben, sollte man hook_entity_info_alter in einem Modul implementieren:

/**
 * Implements hook_entity_info_alter().
 */

function MODULNAME_entity_info_alter(&$entity_info) {
    $entity_info['node']['view modes']['custom_mode'] = array(
        'label' => t('Custom Mode'),
        'custom settings' => TRUE
    );
}

/**
 * Implements hook_preprocess_node().
 */

function MODULNAME_preprocess_node(&$vars) {
    if($vars['view_mode'] == 'custom_mode') {
        $vars['theme_hook_suggestions'][] = 'node__' . $vars['type'] . '__custom_mode';
    }
}

Eigentlich sollte es reichen den Cache zu leeren, allerdings erscheint der neue Anzeigemodus nicht immer als neuer Tab. Hier hilft es unter »Benutzerdefinierte Anzeigemodi« den Haken weg zu machen udn dann zu Speichern. Nachdem man ihn wieder anktiviert hat wird er in der Regel korrekt als Tab angezeigt.