Все о Drupal CMS

Создание представления с агрегацией Views в Drupal 7

В этом уроке мы разберем такое понятие как агрегация на примере представления Жанры.

Первым делом создадим представление Жанры, которое будет основываться на словаре Жанры.

Переходим в раздел Представления Views в Drupal 7 и нажимаем на ссылку Добавить новое представление.

Заполняем стандартную форму создания нового представления. В поле Показать выбираем Термины таксономии типа Жанр. Также сразу создадим блочное отображение Жанры, установим для него Формат отображенияHTML список из Поля.

Создания представления Жанры

Нажимаем кнопку Продолжить редактирование.

На странице редактирования представления сразу нажимаем Добавить в разделе Связи.

Ссылка добавить связь

В списке связей выбираем Термин таксономии: Материалы с термином.

Добавление связи Материалы с термином

Ставим галочку в поле Эта связь обязательна так как нас не интересуют жанры к которым не привязан ни один фильм. Нажимаем Применить (все отображения).

Настройки связи Материалы с термином

Теперь, когда у нас есть связь с материалами, необходимо добавить поле с помощью которого мы будем считать количество фильмов привязанных в термину.

Нажимаем на ссылку Добавить в разделе Поля.

Ссылка добавить поле

В списке полей находим поле Содержимое: Nid, отмечаем его и нажимаем Применить (все отображения).

Добавление поля Nid

В настройках поля снимаем галочку Создать метку. Нажимаем Применить (все отображения).

Настройки поля Nid

Нажимаем на ссылку напротив метки Использовать агрегацию Views в Drupal 7.

Ссылка на включение Агрегации

Ставим галочку Агрегировать и нажимаем Применить (все отображения).

Включение агрегации

Теперь для каждого поля у нас появилась новая настройка Настройки агрегации.

Нажимаем на ссылку Настройки агрегации для поля Содержимое: Nid.

Ссылка настройки агрегации

Задаем тип агрегации Счетчик и нажимаем Применить.

Установка типа агрегации Счетчик

Eсли мы посмотрим на предпросмотр для этого отображения, то увидим, что в поле Содержимое: Nid теперь выводится количество ссылающихся на него материалов (в нашем случае это количество фильмов конкретного жанра).

Предпросмотр блока Жанры

Тепереь мы соберем называние жанра и количество привязанных фильмов в одно поле, которое будет ссылаться на страницу жанра.

Нажимаем на ссылку Добавить в разделе Поля.

Ссылка добавить поле

Отмечаем поле Термин таксономии: ID термина. Это поле нам будет необходимо для формирования ссылки на страницу жанра.

Добавление поля ID термина

Отмечаем поле Глобальный: Пользовательский текст и нажимаем Применить (все отображения).

В поле Пользовательский текст мы и будет выводить собранную из других полей информацию в виде ссылки на страницу жанра.

Добавление поля Пользовательский текст

Так как включена агрегация, то при добавлении новых полей нам предлагается не только задать основные настройки для каждого добавленного поля, но и настройки агрегации для этих полей.

В настройках агрегации для поля Глобальный: Пользовательский текст оставляем все как есть и нажимаем Применить и продолжить.

Настройки агрегации для поля Пользовательский текст

В настройках этого поля убираем галочку Создать метку и нажимаем Применить (все отображения).

Настройки поля Пользовательский текст

Далее настройки агрегации для поля Термин таксономии: ID термина также оставляем без изменений и нажимаем Применить и продолжить.

Настройки агрегации для поля ID термина

В настройках этого поля ставим галочку Исключить из вывода так как оно нам нужно только для формирования ссылки на страницу жанра. Нажимаем Применить (все отображения).

Настройки поля ID термина

Теперь нам необходимо исключить из вывода все остальные поля кроме Пользовательский текст, в котором и будет собрана вся информация.

Переходим к редактированию поля Термин таксономии: Имя.

Ссылка на редактирование поля Имя термина

Ставим галочку Исключить из вывода и нажимаем Применить (все отображения).

Исключение из вывода поля Имя термина

Переходим к редактированию поля Содержимое: Nid.

Ссылка на настройку поля Nid

Также исключаем его из вывода и сохраняем настройки поля.

Исключение из вывода поля Nid

Теперь переходим к редактированию порядка полей.

Ссылка на изменение порядка полей

Изменяем порядок так, чтобы поле Пользовательский текст было в самом низу. Это необходимо для того, чтобы в нем были доступны все подстановочные шаблоны (в виду технических особенностей работы модуля Views, в каждом поле доступны подстановочные шаблоны только тех полей, которые находятся выше него).

Изменяем порядок полей

Переходим к редактированию поля Пользовательский текст.

Ссылка на редактирования поля Пользовательский текст

Первым делом в поле Текст зададим формат вывода. Для этого используем подстановочные шаблоны [name], вместо которого будет выводится имя термина, и [nid], вместо которого будет выводится поле Nid (то есть количество фильмов относящихся к жанру). Как видно из шаблона количество фильмов будет выводиться в скобках.

Настройка текста для поля пользовательский текст

Далее перейдем к секции Перезаписать результаты и поставим галочку Выводить это поле в виде ссылки, чтобы завернуть отображаемый текст в ссылку. В поле Путь ссылки задаем шаблон пути film-by-genre/[tid]. Здесь мы также используем подстановочный шаблон [tid] вместо которого будет выводиться идентификатор термина. Нажимаем Применить (все отображения).

Задание ссылки для поля пользовательский текст

Поле Термин таксономии: Имя по умолчанию выводится как ссылка на страницу термина. Эта настройка имеет приоритет над секцией Перезаписать результаты, поэтому необходимо ее убрать. Переходим к настройкам этого поля.

Ссылка на редактирование поля Имя термина

Снимаем галочку Сделать это поле ссылкой на страницу его термина таксономии и нажимаем Применить (все отображения).

Убрать настройку вывода поля как ссылки

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

Предпросмотр блока Жанры

Сохраняем представление.

Кнопка сохранения представления

Далее размещаем блок Жанры в регион First sidebar (Первая боковая панель) по аналогии с тем, как мы это делали для блоков Топ 5 и В ролях.

Переходим на главную страницу и видим, что блок выглядит довольно неплохо.

Отображение блока Жанры

В следующем уроке мы создадим отображение для страницы жанра Views в Drupal.

Источник: http://drupal-learning.com