Вожусь с созданием отдельного шаблона страницы для разных типов ноды. Под шестёрку это делалось так. А как такое реализовать в седьмом?
Вожусь с созданием отдельного шаблона страницы для разных типов ноды. Под шестёрку это делалось так. А как такое реализовать в седьмом?
Комментарии
к примеру так: node--book.tpl.php, node--blog.tpl.php
Спасибо за ответ, но этими шаблонами мы темизируем сам контент ноды, а мне нужно перекрыть шаблон page.tpl.php для конкретного типа ноды.
Тогда вам сюда: http://drupal.org/node/1035656
Спасибо Stan.Ezersky.
Странно, но почему-то у меня не работает.
D7, Тема corolla.
template.php:
<?phpfunction corolla_preprocess_page(&$variables, $hook) {
if (isset($variables['node'])) {
$variables['theme_hook_suggestions'][] = 'page__type__'.$variables['node']->type;
$variables['theme_hook_suggestions'][] = 'page__node__'.$variables['node']->nid;
}
}?>
page--node--15.tpl.php:
<?php print $content ?>
Потому что надо не page--node--15.tpl.php а page__node__15.tpl.php
Да не, чувак, в моем случае тоже только page--node--15.tpl.php срабатывает.
Хотя не, именно page--node--15.tpl.php правильно
У меня тоже не чего не получается, можно подробнее расписать, по ссылки читал, но в связи с не очень хорошим знанием английского языка, мало что понял.
Все разобрался, в коде mytheme не изменил на свое, а файл должен быть page--type--типноды.tpl.php
Не забывайте кэш сбрасывать, друзья мои. Час ковыряла бедные шаблоны пока не поняла это.
С созданием отдельного шаблона для конкретной ноды или типа ноды понятно, а можно ли как-то темизировать саму страницу на которой выводятся ноды определенного типа?
Например есть ссылка меню с адресом термина таксономии (taxonomy/term/1) которая отображает список нод одного типа. Как применить свой шаблон к этой странице?
господа форумчане... тема актуальна, я вот тоже не могу добиться желаемого...
в www\themes\bartik\template.php:
<?php
function bartik_preprocess_page(&$variables, $hook) {
if (isset($variables['node'])) {
$variables['theme_hook_suggestions'][] = 'page__type__'. $variables['node']->type;
$variables['theme_hook_suggestions'][] = "page__node__" . $variables['node']->nid;
}
}?>
есть страницы типа "sell", тип определяется корректно, проверил (в вышенаписанный скрипт добавлял вывод типа страницы... выводилось.)
файл "www\themes\bartik\templates\page--type--sell.tpl.php". Если содержимое файла:
{
float: left;
clear: left;
}
.field-name-body
{
float: right;
clear: right;
width: 450px;
text-align: left;
}
то собственно все это и выводится вместо ноды.
если же данное обрамить в
<style type="text/css"></style>
страница выводится абсолютно пустая.
поясните где и чего я недопонимаю...
Есть файл типа node--add--apps.tpl.php, какой будет правильный код для переопределения шаблона в template.php для страницы добавления материалов? Второй день маюсь, никак не получается
Вот так работает на паре сайтов - а на третьем нет:
if (isset($variables['node']) && $variables['node']->type) {
$variables['template_files'][] = 'page--node-partners_page' . $variables['node']->type;
}
}
При этом имя файла: page--node--partners_page.tpl
Сейчас мне нужно присвоить свой шаблон для всех страниц типа services (не нод, а страниц). Тип материала services создан.
Вышеприведенное перекрытие работает для чего угодно (тип ноды, отдельная страница), только не для страницы типа ноды.
Ничего не поменялось случайно? Или где я косячу?
Спасибо Stan.Ezersky.
спасибо, работает