Для того чтобы изменить макет определенного материала (например example.com/music), надо использовать первоначальный адрес – node/xx, где xx – идентификатор материала. Но что делать, если мы используем модуль Path и в придачу желаем чтобы не только сам материал example.com/music, но и материалы типа example.com/music/1, example.com/music/2 и т.д. имели уникальный одинаковый макет page.tpl.php. Для этого надо использовать специальный сниппет. В файл template.php поместите следующий код:
function phptemplate_preprocess_page(&$vars) {
if (module_exists('path')) {
$alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
if ($alias != $_GET['q']) {
$suggestions = array();
$template_filename = 'page';
foreach (explode('/', $alias) as $path_part) {
$template_filename = $template_filename . '-' . $path_part;
$suggestions[] = $template_filename;
}
}
$vars['template_files'] = $suggestions;
}
}
Теперь с помощью файла page-music.tpl.php вы можете изменить макет материала по адресу example.com/music и всех остальных материалов в данной категории.
Оригинал статьи: http://www.startdrupal.com/node/60