Отдельный шаблон page.tpl.php для каждой ноды

22.05.2013
10

Иногда при разработке сайта появляется необходимость создавать отдельный шаблон для определенной ноды. По умолчанию такой возможности нет, зато можно это прикрутить самостоятельно.

Для этого необходимо в template.php Вашей темы добавить следующее:

function ИМЯ_ТЕМЫ_preprocess_page(&$vars, $hook) {
if (isset($vars['node'])) { 
    $vars['theme_hook_suggestions'][] = 'page__type__'. $vars['node']->type; //для определенного типа ноды
    $vars['theme_hook_suggestions'][] = "page__node__" . $vars['node']->nid; //для определенного номера ноды
  }
}

Теперь в папку с темой можно ложить шаблоны с названиями

page--node--35.tpl.php  //для определенного номера ноды
page--type--blog.tpl.php //для определенного типа ноды

Обратите внимание - в функции используется знак "_" (подчеркивание), а в названии шаблона "-" (тире).

Добавить комментарий
Может быть интересно

Иногда необходимо вывести в одном документе не только символы стандартной латиницы и своего национального алфавита. Например, для того, чтобы сослаться на название немецкого, французского или чешского источника, либо привести цитату на греческом языке (кстати, огромное множество символов просто отсутствует на клавиатуре).

1

По умолчанию вход пользователя root запрещен.

2

Например, необходимо получить следующую запись:

<meta name="keywords" content="{keywords}">
2
Продолжение темы про вывод полей формы в одну строку. На этот раз мы изменим нашу функцию темизации с учетом разметки популярного фреймворка для разработки адаптивных web-проектов - Bootstrap 3.
1

Порядок действий для установки Solr на сервере с Centos 7

3