Блоки, видимость которых управляется через роли, список URL, при помощи Region Visibility (те же url) или через CCK Blocks – это замечательно, но мало. Далее я хочу рассказать, как добавить блок в зависимости от типа контента и вывести туда содержимое CCK поля.

Вводная

Варианты управления зависимостью блоков от содержимого в drupal следующие:

  • Настройка зависимости каждого блока через роли, URL, их комбинации или хардкод условий на php;
  • Настройка видимости блоков через модуль Region Visibility;
  • Использование модуля CCK Blocks, который создает по блоку на каждое CCK поле, имеющееся в наличии
  • Использование мозга и смекалки;

На последнем варианте я остановлюсь подробнее.

Ингридиенты

Нам понадобится две столовые ложки CCK и очищенные от скорлупы Views. И, в принципе, всё.

Рецепт

Во-первых, необходимо создать требуемые поля CCK в требуемых типах контента. Можно добавить несколько полей.

Далее необходимо создать новый объект Views, указать его наименование и прочие необходимые для Вас параметры.Также можно использовать существующий объект VIews и добавить в него блок, но при этом следует иметь в виду, что придется делать Override (переопределение) для всех перечисленных ниже параметров объекта.

Тонкая настройка

  1. В фильтры необходимо добавить нужный тип контента и другие требуемые условия (например, "Опубликовано" - "Да").
  2. В список полей необходимо добавить поле, которое необходимо выводить в блок.
  3. Необходимо добавить аргумент Материал: Nid и оформить его следующим образом:



  4. Добавить представление "Блок" (не требуется если изменялся существующий объект Views и блок уже был добавлен). Переименовать по вкусу. Сохранить, проверить на отсутствие сообщений об ошибках.