Различные шаблоны 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

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

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

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
2 + 11 =

Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

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

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

Последние статьи

Поделиться

Подписаться

Политика конфиденциальности