По умолчанию, в Drupal'е есть несколько дисплеев для нод: teaser, full, default, rss,...
Создать дополнительный тип отображения нод очень просто:
<?php
/**
* Implements hook_entity_info_alter().
*/
function EXAMPLE_entity_info_alter(&$entity_info) {
$entity_info['node']['view modes']['some_new_display'] = array(
'label' => t('Some new display'),
'custom settings' => TRUE,
);
}
Или же можно использовать модуль Display Suite, который позволяет не только создавать дополнительные дисплеи, но и предоставляет дополнительную функциональность. Например, клонировать в новосозданный дисплей настройки полей из другого дисплея.
Как темизировать новый дисплей?
Для того, чтобы затемизировать какой-либо тип материала с новым дисплеем достаточно добавить новый suggestion.
<?php
function EXAMPLE_preprocess_node(&$variables) {
if($variables['view_mode'] == 'some_new_display') {
$variables['theme_hook_suggestions'][] = 'node__some_new_display';
}
}
После того как новый suggestion объявлен достаточно создать шаблон с именем node--article--some-new-display.tpl.php
копированием из шаблона node.tpl.php
, где article - это тип материала, к которому применён дисплей.