Различные шаблоны page.tpl.php для разных типов материалов, представлений и таксономий

Начнем с того, что пояснию, по умолчанию в Drupal 7 имена шаблонов для page.tpl.php имеют вид page--[front|internal/path].tpl.php. 

То есть для главной страницы page--front.tpl.php, для страницы node/1 — page--node--1.tpl.php, для страницы редактирования — page--node--edit.tpl.php. Для views так же сработает вариант, если указать путь в имени шаблона. Например, для страницы views, доступной по адресу catalog, шаблон будет иметь имя page--catalog.tpl.php

Почитать подробнее можно на Drupal.org

Но, к сожалению, для конкретных типов материала возможность задать свой шаблон page.tpl не предусмотрена. Решается данная проблема внедрением хука в файл template.php

function имятемы_preprocess_page(&$vars, $hook) {
  if (isset($vars['node'])) {
    $vars['theme_hook_suggestions'][] = 'page__'. str_replace('_', '--', $vars['node']->type);
  }
}

Теперь для типа материала product вы сможете создавать шаблон с именем page--product.tpl.php

Вот еще одно пояснение, в каком порядке подключаются шаблоны. Нижестоящий шаблон переопределяет вышестоящий:

page–node.tpl.php
page–node–%.tpl.php
page–article.tpl.php
page–path-1.tpl.php
page–path-1–path-2.tpl.php
page–path-1–path-2–my-article.tpl.php
page–my-article.tpl.php
page–node–5.tpl.php


Надеюсь данная статья была полезна Вам. Спасибо.

Добавить комментарий

Поделиться...

Группа вконтакте

Статьи

jQuery: клик вне элемента (блока)
июня 08, 2017
Создание шаблона на Drupal7: page.tpl.php
июня 02, 2017

Контакты

город Краснодар

8 (995) 552-72-80

sitegrup@mail.ru

Поделиться

Подписаться