Создание представления с агрегацией Views в Drupal 7
В этом уроке мы разберем такое понятие как агрегация на примере представления Жанры.
Первым делом создадим представление Жанры, которое будет основываться на словаре Жанры.
Переходим в раздел Представления Views в Drupal 7 и нажимаем на ссылку Добавить новое представление.
Заполняем стандартную форму создания нового представления. В поле Показать выбираем Термины таксономии типа Жанр. Также сразу создадим блочное отображение Жанры, установим для него Формат отображения — HTML список из Поля.
Нажимаем кнопку Продолжить редактирование.
На странице редактирования представления сразу нажимаем Добавить в разделе Связи.
В списке связей выбираем Термин таксономии: Материалы с термином.
Ставим галочку в поле Эта связь обязательна так как нас не интересуют жанры к которым не привязан ни один фильм. Нажимаем Применить (все отображения).
Теперь, когда у нас есть связь с материалами, необходимо добавить поле с помощью которого мы будем считать количество фильмов привязанных в термину.
Нажимаем на ссылку Добавить в разделе Поля.
В списке полей находим поле Содержимое: Nid, отмечаем его и нажимаем Применить (все отображения).
В настройках поля снимаем галочку Создать метку. Нажимаем Применить (все отображения).
Нажимаем на ссылку напротив метки Использовать агрегацию Views в Drupal 7.
Ставим галочку Агрегировать и нажимаем Применить (все отображения).
Теперь для каждого поля у нас появилась новая настройка Настройки агрегации.
Нажимаем на ссылку Настройки агрегации для поля Содержимое: Nid.
Задаем тип агрегации Счетчик и нажимаем Применить.
Eсли мы посмотрим на предпросмотр для этого отображения, то увидим, что в поле Содержимое: Nid теперь выводится количество ссылающихся на него материалов (в нашем случае это количество фильмов конкретного жанра).
Тепереь мы соберем называние жанра и количество привязанных фильмов в одно поле, которое будет ссылаться на страницу жанра.
Нажимаем на ссылку Добавить в разделе Поля.
Отмечаем поле Термин таксономии: ID термина. Это поле нам будет необходимо для формирования ссылки на страницу жанра.
Отмечаем поле Глобальный: Пользовательский текст и нажимаем Применить (все отображения).
В поле Пользовательский текст мы и будет выводить собранную из других полей информацию в виде ссылки на страницу жанра.
Так как включена агрегация, то при добавлении новых полей нам предлагается не только задать основные настройки для каждого добавленного поля, но и настройки агрегации для этих полей.
В настройках агрегации для поля Глобальный: Пользовательский текст оставляем все как есть и нажимаем Применить и продолжить.
В настройках этого поля убираем галочку Создать метку и нажимаем Применить (все отображения).
Далее настройки агрегации для поля Термин таксономии: ID термина также оставляем без изменений и нажимаем Применить и продолжить.
В настройках этого поля ставим галочку Исключить из вывода так как оно нам нужно только для формирования ссылки на страницу жанра. Нажимаем Применить (все отображения).
Теперь нам необходимо исключить из вывода все остальные поля кроме Пользовательский текст, в котором и будет собрана вся информация.
Переходим к редактированию поля Термин таксономии: Имя.
Ставим галочку Исключить из вывода и нажимаем Применить (все отображения).
Переходим к редактированию поля Содержимое: Nid.
Также исключаем его из вывода и сохраняем настройки поля.
Теперь переходим к редактированию порядка полей.
Изменяем порядок так, чтобы поле Пользовательский текст было в самом низу. Это необходимо для того, чтобы в нем были доступны все подстановочные шаблоны (в виду технических особенностей работы модуля Views, в каждом поле доступны подстановочные шаблоны только тех полей, которые находятся выше него).
Переходим к редактированию поля Пользовательский текст.
Первым делом в поле Текст зададим формат вывода. Для этого используем подстановочные шаблоны [name], вместо которого будет выводится имя термина, и [nid], вместо которого будет выводится поле Nid (то есть количество фильмов относящихся к жанру). Как видно из шаблона количество фильмов будет выводиться в скобках.
Далее перейдем к секции Перезаписать результаты и поставим галочку Выводить это поле в виде ссылки, чтобы завернуть отображаемый текст в ссылку. В поле Путь ссылки задаем шаблон пути film-by-genre/[tid]. Здесь мы также используем подстановочный шаблон [tid] вместо которого будет выводиться идентификатор термина. Нажимаем Применить (все отображения).
Поле Термин таксономии: Имя по умолчанию выводится как ссылка на страницу термина. Эта настройка имеет приоритет над секцией Перезаписать результаты, поэтому необходимо ее убрать. Переходим к настройкам этого поля.
Снимаем галочку Сделать это поле ссылкой на страницу его термина таксономии и нажимаем Применить (все отображения).
Переходим к предпросмотру и убеждаемся, что список жанров выводится правильно.
Сохраняем представление.
Далее размещаем блок Жанры в регион First sidebar (Первая боковая панель) по аналогии с тем, как мы это делали для блоков Топ 5 и В ролях.
Переходим на главную страницу и видим, что блок выглядит довольно неплохо.
В следующем уроке мы создадим отображение для страницы жанра Views в Drupal.
Источник: http://drupal-learning.com