Сколько не искал и не пробовал, никак не смог понять как для нода с id=20 сделать свой шаблон вывода. Мне нужен шаблон именно для нода, а не для всей страницы. Добавил шаблон с именем page-node-20.tpl.php , но он перерисовывает всю страницу, а мне нужно, чтобы он отвечал только за основной текст. Меню, различные дополнительные блоки должны оставаться как и на всех страницах. Как такое реализовать? Кто-то может подсказать?
Комментарии
http://drupal.org/node/136647
Действительно, то, что нужно.
У меня в файле template.php есть функция _phptemplate_variables(). Вот её код:
if ($hook == 'page') {
if ($secondary = menu_secondary_local_tasks()) {
$output = '<span class="clear"></span>';
$output .= "<ul class=\"tabs secondary\">\n". $secondary ."</ul>\n";
$vars['tabs2'] = $output;
}
// Hook into color.module
if (module_exists('color')) {
_color_page_alter($vars);
}
return $vars;
}
return array();
}
С учётом предложенного Вами варианта изменил её код на такой:
if ($hook == 'page') {
if ($secondary = menu_secondary_local_tasks()) {
$output = '<span class="clear"></span>';
$output .= "<ul class=\"tabs secondary\">\n". $secondary ."</ul>\n";
$vars['tabs2'] = $output;
}
// Hook into color.module
if (module_exists('color')) {
_color_page_alter($vars);
}
return $vars;
}
elseif ($hook == 'node') {
$vars['template_files'] = array('node-'. $vars['nid']);
return $vars;
}
return array();
}
Я всё правильно сделал? Или что-то надо поправить?
Судя по всему. Теперь можно создавать шаблон для нода.
У меня всё работает. Просто в предложенном Вами варианте написано так:
, а у меня так:
Вот я и сомневаюсь, не приведёт ли такое отличие к ошибкам?
По-моему, это непринципиально.