Drupal → Отдельный шаблон для тизеров (анонсов)

13.06.2012

1. Добавить в template.php:

/**
 * Preprocess function for node.tpl.php.
 */
function THEMENAME_preprocess_node(&$vars) {
  $node_type_suggestion_key = array_search('node__' . $vars['type'], $vars['theme_hook_suggestions']);
  if ($node_type_suggestion_key !== FALSE) {
    $node_view_mode_suggestion = 'node__' . $vars['type'] . '__' . $vars['view_mode'];
    array_splice($vars['theme_hook_suggestions'], $node_type_suggestion_key + 1, 0, array($node_view_mode_suggestion));
  }
}

2. Создать в папке темы шаблон с именем node--[TYPE]--teaser.tpl.php.

3. Сбросить кэш.

Написанное актуально для
Drupal 7
Похожие записи

Комментарии

Сергей
26.07.2014, 23:55

Спасибо огромное, в целом все работает!
Однако у меня появилась некоторая трудность. По задумке мой сайт в одном из типов материала не должно иметь комментарии, вернее слово "комментарий" должно быть изменено на "отзыв". Я поменял согласно данному примеру - habrahabr.ru/sandbox/53531/ При этом возникла необходимость в изменении шаблона тизера. Поменял по Вашему примеру, после чего в тизерах вернулись "комментарии", а в ноде остались "отзывы".

Когда удаляю шаблон тизера, везде появляются "отзывы".

Прошу подсказать что мне нужно изменить, чтобы создав шаблон для тизера по Вашему примеру, у меня остались "отзывы".

Надеюсь понятно объяснил. А также надеюсь на Вашу помощь!

С Уважением, Сергей.

Добавить комментарий