Здравствуйте, подскажите пожалуйста как реализовать отдельный шаблон страниц для определенного типа материала.
Например: главная и все страницы идут сплошным контентом, а заходим в Новости и нажимаем на какую либо новость из списка, по открытию данной страницы будет другой шаблон (контент разделен уже на 2 части), где справа сбоку можно будет вывести любой блок. Если задавать шаблон с названием page--news.tpl.php, то контент на колонки делится на самой странице новостей,а надо бы внутри каждой новости, и нигде больше.
Как задать правильно имя файла шаблона?
Комментарии
https://www.drupal.org/node/1089656#contenttype
что то я там не все понял, если не сложно можете объяснить?
Что вам не понятно вот в этом?
Add a page.tpl.php depending on content type.
In Drupal 7, you do this by having this code in the function THEME_preprocess_page (where THEME is the name of the theme) in the theme's template.php.
<?php
function THEME_preprocess_page(&$vars, $hook) {
if (isset($vars['node']->type)) {
// If the content type's machine name is "my_machine_name" the file
// name will be "page--my-machine-name.tpl.php".
$vars['theme_hook_suggestions'][] = 'page__' . $vars['node']->type;
}
}
?>
Add the if-statement at the end if this function already exists in the theme's template.php, otherwise, add the functions.
Я это делал, но мне не это надо было узнать, мне нужно внутри всех материалов одного типа сделать определенный шаблон, чтобы он больше нигде не употреблялся. А не просто создать page--имя.tpl.php
пример:
node--bingo.tpl.php
У вас скорее всего и тип материала news и views с адресом site.com/news. Тогда исправляем малость код:
<?php
function THEME_preprocess_page(&$vars, $hook) {
if (isset($vars['node']->type)) {
// If the content type's machine name is "my_machine_name" the file
// name will be "page--type--my-machine-name.tpl.php".
$vars['theme_hook_suggestions'][] = 'page__type__' . $vars['node']->type;
}
}
?>
И шаблон будет page--type--news.tpl.php
Огромное спасибо, все заработало и все получилось!