суббота, 11 декабря 2010 г.

Отдельный файл page.tpl.php для каждого типа материала

Основной файл любой темы оформления – это page.tpl.php. Именно в нем размещается макет сайта, общая структура, которая отображается на всех страницах сайта. Но что делать, если для определенного типа материалов (например, для новостей), макет, структура должна быть совсем другая. А если в принципе для каждого типа материала должен быть свой уникальный макет. Для решения этого вопроса надо использовать следующий сниппет. В файл template.php поместите следующий код:

function phptemplate_preprocess_page(&$variables) {
if  ($node = menu_get_object()) {
    $variables['node'] = $node;
    $suggestions = array();
    $template_filename = 'page';
    $template_filename = $template_filename . '-' . $variables['node']->type;
    $suggestions[] = $template_filename;
    $variables['template_files'] = $suggestions;
   }
}

Теперь Вы с легкостью можете изменить макет, просто создав файл page-nodetype.tpl.php. Например, для стандартного типа – «статьи» - надо будет создать файл page-story.tpl.php.

Оригинал статьи: http://www.startdrupal.com/node/59