Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инструкции Drupal.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.22 Mб
Скачать

Агрегация

Еще одной очень важной возможностью модуля Views является агрегация. Она позволяет применять функции группировки к результатам представления. Например, создадим представление, которое отображает список актеров и количество фильмов, в которых они снимались. Создадим новое представление: Меню администратораСтруктураПредставления Добавить новое представление (рис. 43).

Рис. 43 - Создание нового представления

Зададим следующие исходные настройки (рис. 44):

  • Имя представления: Актеры;

  • Машинное имя: v_actors;

  • Показать: Содержимое типа: Человек сортировать по: Несортированный.

Рис. 44 -Настройка представления Актеры

Создадим страницу со следующими параметрами (рис. 45):

  • Заголовок страницы: Актеры;

  • Адрес: Actors;

  • Формат отображения: таблица.

Рис. 45 - Создание страницы для представления Актеры

После нажатия кнопки Продолжить и редактировать в исходном состоянии наше представление отображает список всех материалов типа Человек. Но информация о фильмах, в котором снимались актеры сохраняется в материале Фильмы. Таким образом, нужно создать взаимосвязь (рис. 46, 47).

Рис. 46 - Создание взаимосвязи представления Актеры

Рис. 47 - Выбор поля связи в представлении Актеры

Следует напомнить, что обязательно необходимо установить пункт «Эта связь обязательна», что позволит оставить в списке только тех людей, которые хотя бы раз снимались в фильме.

После этого необходимо добавить поле, которое будет выводить названия фильмов, в которых снимались актеры (рис. 48).

Рис. 48 - Добавление поля заголовка

Параметры настройки поля заголовка приведены на рис. 49.

Рис. 49 - Настройка поля заголовка

Следует заметить, что обязательно необходимо установить для этого поля свіязь. Если этого не сделать, то будет выводится заголовок основного материала, т.е. Человек, и вместо названий фильмов мы увидим дублирование имен актеров. Промежуточный результат работы будет представлен в виде таблицы (рис. 50).

Рис. 50 - Промежуточный вид представления Актеры

Для того, чтобы подсчитать количество фильмов необходимо применить агрегацию. В технологии Drupal агрегация позволяет группировать данные и добавлять расчетные поля. Для этого необходимо применить агрегацию. Для этого сначала необходимо осуществить следующую настройку (рис. 51).

Рис. 51 - Добавление агрегации в представление

После данного пункта немного изменится вид подменю Поля (рис. 52), для каждого поля теперь можно выбрать функцию агрегации:

Рис. 52 - Добавление агрегации к полям представления

Функцию агрегации по умолчанию является группировка. Для подсчета количества фильмов каждого актера необходимо сгруппировать данные по актерам (выполнено по умолчанию), а названия фильмов посчитать. Изменение функции агрегации для поля Количество фильмов показано на рис 53.

Рис. 53 - Изменение функции агрегации для поля Количество фильмов

Кроме указанных действий, необходимо провести дополнительную настройку созданного представления. Нужно изменить заголовок первого столбца (рис. 54).

Рис. 54 - Дополнительная настройка представления Актеры

Дальше необходимо добавить ссылку на нашу страницу в главное меню ВОКС (рис. 55).

Рис. 55 - Создание пункта в главном меню для представления Актеры

После сохранения результатов по соответствующему адресу можно увидеть результаты создания представления с использованием агрегации (рис. 56).

Рис. 56 - Результирующий вид созданного представления