Как настроить верхний и нижний колонтитулы с помощью шаблона страницы для определенного типа контента?
У меня есть тип контента.
Я хочу настроить страницы узлов для этого типа контента, я использовал node--[content-type].tpl.php
, но мне нужно использовать шаблон страницы для настройки верхнего и нижнего колонтитулов, и page--[content-type].tpl.php
не работает.
Я пробовал page--node.tpl.php
, но это также меняет домашнюю страницу, затем я создал page--node--[content-type].tpl.php
, которая не работает.
Пожалуйста, помогите мне.
Спасибо
2 answers
Это объясняется на этой странице по адресу Drupal.org.
Ниже приведено более подробное описание того, как вы делаете это в Drupal 7:
- Откройте файл
template.php
в вашей теме для редактирования. - Найдите функцию с именем
THEME_preprocess_page
(заменитеTHEME
именем темы). - Если эта функция уже существует, вам нужно будет добавить к ней свой код внутри оператора if, который идет в конце этой функции, непосредственно перед закрытием скобка.
- В противном случае, если она не существует, вам нужно будет создать новую функцию:
Вот как должна выглядеть функция:
function THEME_preprocess_page(&$vars) {
// If the function already exists, just leave the code here intact, and add
// the three lines below to the end.
if (isset($vars['node']->type)) {
$vars['theme_hook_suggestions'][] = 'page__' . $vars['node']->type;
}
}
ПРИМЕЧАНИЕ: не заменяйте строкой любые подчеркивания внутри имени машины типа контента, если вы используете Drupal 7 (я думаю, вам пришлось это сделать в Drupal 6).
Теперь скопируйте тему page.tpl.php
в файл с именем page--contenttype.tpl.php
и поместите его в папку темы templates/
. Для contenttype
используйте имя машины типа содержимого. Вы можете проверить имя компьютера, если перейдете к Типам контента "Структура" администрирования.
Теперь отредактируйте page--contenttype.tpl.php
, чтобы верхний и нижний колонтитулы были изменены так, как вы хотите. Не меняйте детали, которые вы не хотите, чтобы они выглядели измененными.
Все узлы с содержимым этого типа будут использовать новый файл шаблона.
При условии, что вы используете Drupal 7, соблюдайте следующие соглашения при именовании шаблона переопределить файл.
- Используйте два дефиса для разделения элементов в имени файла.
- Если вы переопределяете тип контента, и ваш тип контента состоит из двух или более слов, замените символ подчеркивания (_) в имени компьютера на один дефис (-) в имени файла.
Например, имя переопределения шаблона для типа контента с именем машины my_machine_name
должно быть названо (в D7): page--my-machine-name.tpl.php
.
У вас могут быть шаблоны страниц, основанные на типе контента, вам просто нужно добавить некоторый код, чтобы Drupal распознал файл шаблона: Эта ссылка показывает, как это сделать.
Это зависит от вашей версии Drupal. Вы могли бы подумать, что это будет по умолчанию, но по какой-то причине, возможно, связанной с производительностью, это не так.
Для D7 добавьте это в template.php файл в каталоге вашей темы.
<?php
function themeName_preprocess_page(&$vars) {
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;
}
}
?>
Конец теперь вы можете настроить свой нижний колонтитул и т.д.