Добавление региона в шаблон узла

  1. Определить регион
  2. Переопределить шаблон узла по умолчанию
  3. Сделайте регион доступным для шаблона узла
  4. Перестройте реестр тем
  5. Добавить новый регион в шаблон узла
  6. Добавить блоки в ваш новый регион

Как правило, регионы возвращаются в файле page.tpl.php темы. Это работает практически для всего, но, как мы недавно обнаружили, в некоторых ситуациях может потребоваться сделать регион доступным для файла node.tpl.php с целью более точного управления расположением блока в узле. Хорошим примером этого является узел с включенными комментариями. Содержимое узла и его комментарии будут отображаться один за другим, оба возвращаются значением $ content в page.tpl.php . Как добавить блок между ними?

Во-первых, мы хотим подготовить тему для принятия нашего региона на основе узлов. Это будет включать определение новой области, переопределение файла по умолчанию node.tpl.php и создание переопределения темы. Тогда это всего лишь вопрос изменения шаблона узла для правильной печати региона.

Определить регион

В вашей теме вы должны найти файл .info. Этот файл существует, чтобы идентифицировать тему для Drupal, а также предоставить вам способ в глобальном масштабе, включая любые регионы, css или javascript. Верх файла должен выглядеть примерно так:

name = My Theme description = Описание моей темы. screenshot = images / screenshot.png core = 6.x engine = phptemplate

Чуть ниже добавьте следующее:

; Регионы регионов [node_bottom] = Узел снизу

… И сохраните файл.

Переопределить шаблон узла по умолчанию

Перейдите в каталог Drupal и скопируйте /modules/node/node.tpl.php в каталог вашей темы.

Сделайте регион доступным для шаблона узла

Регионы по умолчанию могут быть возвращены только из page.tpl.php . Это достаточно легко исправить. Откройте файл template.php вашей темы (создайте его, если он не существует) и добавьте в него:

function YOURTHEME_preprocess_node (& $ vars) {$ vars ['content_footer'] = theme ('blocks', 'content_footer'); }

Перестройте реестр тем

Большинство внесенных вами изменений не будут автоматически распознаваться Drupal. Вам придется пересобрать реестр тем. Для этого войдите в свою среду Drupal как администратор, перейдите на страницу «Темы» («Администрирование»> «Создание сайта»> «Темы») и нажмите кнопку «Сохранить». Это заставит Drupal повторно сканировать вашу тему, подбирая все новые файлы ( node.tpl и template.php ), а также включая новый регион, определяемый из файла .info .

Добавить новый регион в шаблон узла

Все, что вы сделали до сих пор, - это поддержка этого последнего шага, который заключается в возвращении региона в шаблоне. Откройте файл node.tpl.php вашей темы и вставьте его в любое удобное место (подсказка: чуть ниже $ content ):

<? php if ($ node_bottom):?&gt; <div class = "node-bottom"> <? php print $ node_bottom; ?&gt; </ div> <? php endif; ?>

Добавить блоки в ваш новый регион

Все сделано! Все, что вам нужно сделать сейчас, это добавить один или два блока в этот регион (Администрирование> Создание сайта> Блоки).

Как добавить блок между ними?
Php if ($ node_bottom):?
Gt; <div class = "node-bottom"> <?
Php print $ node_bottom; ?
Gt; </ div> <?
Php endif; ?