Вопрос по шаблону страниц

Главные вкладки

Аватар пользователя JooKeR JooKeR 2 апреля 2015 в 18:24

Здравствуйте, подскажите пожалуйста как реализовать отдельный шаблон страниц для определенного типа материала.

Например: главная и все страницы идут сплошным контентом, а заходим в Новости и нажимаем на какую либо новость из списка, по открытию данной страницы будет другой шаблон (контент разделен уже на 2 части), где справа сбоку можно будет вывести любой блок. Если задавать шаблон с названием page--news.tpl.php, то контент на колонки делится на самой странице новостей,а надо бы внутри каждой новости, и нигде больше.

Как задать правильно имя файла шаблона?

Комментарии

Аватар пользователя Bags85 Bags85 3 апреля 2015 в 20:05

Что вам не понятно вот в этом?

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.

Аватар пользователя JooKeR JooKeR 4 апреля 2015 в 23:06

Я это делал, но мне не это надо было узнать, мне нужно внутри всех материалов одного типа сделать определенный шаблон, чтобы он больше нигде не употреблялся. А не просто создать page--имя.tpl.php

Аватар пользователя Bags85 Bags85 5 апреля 2015 в 2:43

У вас скорее всего и тип материала 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

Аватар пользователя JooKeR JooKeR 5 апреля 2015 в 13:12

Bags85 wrote:
У вас скорее всего и тип материала 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

Огромное спасибо, все заработало и все получилось!