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


57

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

Для этого необходимо в 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 //для определенного типа ноды

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

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

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

4

Несколько способов как в twig объединить несколько строк в одну

3

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

1
Те, кто использует модуль Double field могли заметить, что в текстовой области отсутствует редактор. Бывают случаи, когда для удобства наполнения он просто необходим.
1
Данный модуль просто незаменим, если на Вашем сайте реализована мультиязычность или на Вашем сайте используются панели. Multilingual Panels позволяет создавать/менять настройки панели для различных языков.
1