Drupal 7: отображать разные боковые панели в зависимости от типа контента

Итак, у меня есть три разных блока внутри правой области боковой панели. Что я хотел бы сделать, так это изменить, какой из них отображается в зависимости от типа контента. Я новичок в Drupal, и из того, что я вижу в списке доступных переменных, у меня нет возможности увидеть, какой тип контента я использую при настройке block.tpl.php. Является ли это возможным?


person csm232s    schedule 14.04.2011    source источник


Ответы (3)


Я бы рекомендовал использовать модуль контекста для определения разных "контекстов" для разных типов контента. Затем каждый контекст можно настроить для отображения разных блоков.

Другой альтернативой является модуль Panels, но Panels делает гораздо больше и, следовательно, имеет более сложный интерфейс, поэтому он новичкам может быть трудно освоить.

person Matt V.    schedule 14.04.2011

В Drupal 7 нет необходимости в дополнительном модуле. Когда вы редактируете блок (в CMS, а не в файле шаблона), посмотрите «Настройки видимости» в разделе «Типы контента< /сильный>"

Здесь вы можете указать, на каких типах показывать блок.

Примечание. Если ничего не выбрано, оно будет доступно для всех типов содержимого.

person Chance G    schedule 15.04.2011

Если вы хотите использовать только 1 блок, вы можете добавить код для получения типа узла:

<?php
if (arg(0) == 'node') {
  $node = node_load(arg(1));
}
?>

И теперь вы можете получить доступ к типу с помощью: $node->type

Если бы вы собирались с 3 отдельными блоками...

Установите автоматический путь (http://drupal.org/project/pathauto)

Установите пути к узлам, чтобы они были разными. В этом примере я буду использовать статьи и продукты в качестве типов контента:

Статьи: статьи/[title-raw] Товары: products/[title-raw]

Затем настройте отображение блоков на основе URL-адреса.

Для блока статей используйте: article/* Для блока товаров используйте: products/*

person Coder1    schedule 17.04.2011