Всем привет. У меня Друпал 7.36. Хочу сделать уникальные layout'ы для некоторых разделов сайта, таких как Услуги, Цены итд.
Нажимаю добавить содержимое > Баизик пейдж > создаю страницу "services". Потом делаю page--services.tpl.php и она не подхватывается почему-то!Если файл переименовать в page--node--1.tpl.php - то подхватывается. Но я знаю, что можно использовать не название ноды, а название в адресной строке, т.е. http://localhost/drupal/services. Кеш чистил, ставил чистые ссылки, глобал редирект, патчауто....не подхватывает.
Если я буду делать page--node--1.tpl.php то потом запутаюсь если будет много страниц. Как сделать, чтобы работало с названием page--services.tpl.php?
ps делаю все на adaptivetheme.
Комментарии
Она и не должна подхватиться. Из коробки темплейты только для системных путей.
http://drupal.stackexchange.com/questions/103199/drupal-7-template-sugge...
// Get the alias for the page being viewed
$alias = drupal_get_path_alias($_GET['q']);
if ($alias != $_GET['q']) {
$template_filename = 'page';
//Break it down for each piece of the alias path
foreach (explode('/', $alias) as $path_part) {
// Added the str_replace becayse path parts with - were not being picked up properly by the theme_hook_suggestions
$template_filename = $template_filename . '__' . str_replace("-", "_", $path_part);
$variables['theme_hook_suggestions'][] = $template_filename;
}
}
if (isset($variables['node'])) {
// If the node type is "blog_madness" the template suggestion will be "page--blog-madness.tpl.php".
$variables['theme_hook_suggestions'][] = 'page__'. $variables['node']->type;
}
а что здесь менять, кроме названия темы mytheme_preprocess_page? и $template_filename = 'page'; можно на примере page--services.tpl.php?
Ничего более не менять
не получается. Parse error: syntax error, unexpected end of file in C:\Apache24\htdocs\drupal736\sites\all\themes\myadaptive\template.php on line 120
в файле template.php
<?php function myadaptive_preprocess_page(&$variables) {
// Get the alias for the page being viewed
$alias = drupal_get_path_alias($_GET['q']);
if ($alias != $_GET['q']) {
$template_filename = 'page--services';
//Break it down for each piece of the alias path
foreach (explode('/', $alias) as $path_part) {
// Added the str_replace becayse path parts with - were not being picked up properly by the theme_hook_suggestions
$template_filename = $template_filename . '__' . str_replace("-", "_", $path_part);
$variables['theme_hook_suggestions'][] = $template_filename;
}
}
if (isset($variables['node'])) {
// If the node type is "blog_madness" the template suggestion will be "page--blog-madness.tpl.php".
$variables['theme_hook_suggestions'][] = 'page__'. $variables['node']->type;?>
в папке с темой templates есть файл page--services (он рабочий, если переименовать его в page--node--1)
в чем может быть syntax error?
если это всё содержимое, то у вас не хватает фигурных скобок
Спасибо большое, проблема решена)
Действительно не было фигурной скобочки в конце+нужно было создать новый тип содержимого "services (Машинное имя: services)" Я изначально не понял назначение этой функции, стандартный Basic page она не перекрывает. Теперь все работает, спасибо!