Как использовать модуль Views с модулем Panels

Модуль Views очень мощный инструмент, используемый при создании сайтов на Drupal. При связке с модулем Panels он обретает дополнительную гибкость, которой так не хватало. Например, можно без проблем вывести один вьюз несколько раз на одной странице с разными настройками и контекстными фильтрами, при этом не приходится тратить время на то, чтобы лезть в код.

Для сегодняшнего урока я поставлю задачу:
Имеется два типа материала (новости и статьи), они связаны друг с другом с помощью модуля References. Необходимо при просмотре новости вывести в левой колонке термины, которые относятся к этой новости, а в правой колонке термины, которые относятся к статье, связанной с этой новостью.

Для начала работы нам необходимо включить модуль Views content panes, он входит в состав модуля Ctools.

После включения модуля, создаем новый вьюз (тип выводимого содержимого - термины таксономии) и добавляем дисплей Фрагмент панели:

Views - добавление нового дисплея
Views - добавление нового дисплея

Здесь у нас появилась новая секция с настройками Pane settings:

Views - pane settings
Views - pane settings

Здесь:

  • Административный заголовок - название вьюза, используется при добавлении вьюза на страницу;
  • Admin desc - описание вьюза, используется при добавлении вьюза на страницу;
  • Категория - категория, в которой будет находится вьюз;
  • Link to view - ссылка на вьюз;
  • Use Panel path - использовать путь панели;
  • Argument input - позволяет выбрать, как будет передаваться аргумент во вьюз;
  • Применить настройки - настройки, которые можно будет поменять в момент добавления вьюза на страницу.

Добавляем отношение Термин таксономии: Материалы с термином, делаем связь обязательной:

Views - добавление отношения
Views - добавление отношения

Добавляем контекстный фильтр Содержимое: Nid, в настройках "Когда значение фильтра НЕ доступно" выбираем "Скрыть представление":

Views - добавление контекстного фильтра
Views - добавление контекстного фильтра

Далее в секции с настройками изменяем настройку Argument input, для этого жмем напротив соответствующей надписи ссылку "Редактировать" и выбираем в селекте Input on pane config, сохраняем вьюз.

Теперь с помощью модуля Page Manager перекрываем страницу с путем "/node/%node", добавляем вариант с правилом выбора Материал: тип, выбираем 3х колоночный макет.

Первым делом нам необходимо добавить в контексты отношение "Материал from Материал (on Материал: Статья [field_news_artice])" (название отношения может меняться в зависимости от типа материала и названия филда). Для этого необходимо перейти по ссылке "Контексты", которая находится в вертикальном меню.

После этого переходим на страницу добавления содержимого, для этого кликаем по ссылке "Содержимое" в вертикальном меню. В центральную колонку добавляем нашу новость.

Затем добавляем вьюз в левую колонку. Кликаем по шестеренке, в открывшемся попапе ищем категорию Представления-Фрагменты (если при создании вьюза не меняли категорию, иначе ищем ту категорию, которую вписали) и в правой части попапа выбираем наш вьюз. В открывшемся попапе в поле Содержимое: Nid вводим %node:nid

Добавление вьюза в левую колонку
Добавление вьюза в левую колонку

Затем добавляем вьюз в правую колонку. Все действия такие же, только теперь в поле Содержимое: Nid вводим %node_2:nid

Добавление вьюза в правую колонку
Добавление вьюза в правую колонку

Поставленная задача выполнена!

P.S. Я намеренно не стал показывать в уроке все настройки, чтобы у вас была возможность попробовать разобраться с ними самим.

Benya