Drupal 7: Как переопределить шаблон для конкретного типа материалов
Часто необходимо бывает переопределить шаблон основной страницы для какого-либо отдельно взятого типа материала. По умолчанию Drupal прелоставляет такую возможность только для нод, что может совершенно не решать поставленной нами задачи.
В этой заметке я расскажу вам как исправить эту досадную несправедливость. Для начала в файле template.php вашей темы необходимо перерлпределить функцию процессинга страницы с указанием шаблона имён:
function ИмяТемы_preprocess_page(&$vars, $hook) {
if (isset($vars['node'])) {
$vars['theme_hook_suggestions'][] = 'page__'. str_replace('_', '--', $vars['node']->type);
}
}
Теперь шаблонизатор Друпала будет отлавливать в именах файлов шаблон типа page__ далее тип и его машинное имя и обрабатывать его для вашего типа материала. Для этого шаблон страницы типа материала необходимо назвать пот по такой схеме: page--blog.tpl.php где blog машинное имя вашего переопределяемого типа материала.