Как настроить верхний и нижний колонтитулы с помощью шаблона страницы для определенного типа контента?


У меня есть тип контента.

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

Я пробовал page--node.tpl.php, но это также меняет домашнюю страницу, затем я создал page--node--[content-type].tpl.php, которая не работает.

Пожалуйста, помогите мне.

Спасибо

Author: Free Radical, 2014-04-01

2 answers

Это объясняется на этой странице по адресу Drupal.org.

Ниже приведено более подробное описание того, как вы делаете это в Drupal 7:

  1. Откройте файл template.php в вашей теме для редактирования.
  2. Найдите функцию с именем THEME_preprocess_page (замените THEME именем темы).
  3. Если эта функция уже существует, вам нужно будет добавить к ней свой код внутри оператора if, который идет в конце этой функции, непосредственно перед закрытием скобка.
  4. В противном случае, если она не существует, вам нужно будет создать новую функцию:

Вот как должна выглядеть функция:

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.

 2
Author: Free Radical, 2014-04-06 13:20:35

У вас могут быть шаблоны страниц, основанные на типе контента, вам просто нужно добавить некоторый код, чтобы 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;
  }
}
?>

Конец теперь вы можете настроить свой нижний колонтитул и т.д.

 5
Author: Petro Popelyshko, 2014-04-01 12:25:37