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


90

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

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

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

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

По умолчанию при запуске команды  composer update происходит перезапись основных файлов в корне сайта (.htaccess, robots.txt). Но зачастую такое поведение мешает работе системы (если файлы отредактированы вручную, или для формирования robots.txt используется специальный модуль)

4

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

4

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

1

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

3
По умолчанию модуль Node clone добавляет свою ссылку в разделе действий (MENU_LOCAL_ACTION). Что бы перенести их в раздел вкладок (tabs) нужно добавить в свой модуль небольшой hook
1