Подключение разных page.tpl.php в зависимости от типа ноды

Иногда встречаются случаи, когда в зависимости от типа материала, нужно выводить разные блоки, регионы или вообще макет страницы другой.
Можно это конечно сделать и внутри page.tpl.php, проверять там тип ноды и в зависимости от него прописывать вывод страницы.
Но лучше это дело разделить на разные шаблоны - и верстать будет проще, и не такое нагромождение кода.

Открываем файл template.php в нашей теме и пишем:

  1. function mytheme_preprocess_page(&$vars) {
  2.  
  3. foreach ($vars['page']['content']['system_main']['nodes'] as $val) {
  4.  
  5. if ($val['#bundle'] == 'page_newtype') {
  6. $vars['theme_hook_suggestions'][] = 'page__newtype'; //для типа материала page-newtype
  7. }
  8. }
  9. }

Далее создаем копию файла page.tpl.php и переименовываем её в page--newtype.tpl.php.