Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Работа с блоками и использование контекстных фильтров




Создание представлений для собственных типов материала

Один из самых мощных модулей Drupal – Views. Он позволяет разрабатывать пользовательские представления данных. Установка и русификация модуля Views осуществляется аналогично уже рассмотренному процессу для модуля ССК. Рассмотрим простейший пример – создадим страницу поиска фильмов.

Для создания нового представления необходимо выбрать пункт меню администратора – Структура (рис. 1).

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

Далее необходимо нажать кнопку Добавить новое представление (рис. 2).

Рис. 2 – Добавление нового представления

Для создания нового представления необходимо задать несколько свойств (рис. 3):

1) Имя представления

2) Системное имя

3) Показать - выберите пункт Содержимое.

4) Тип – выберите пункт Фильм

5) Сортировать по – выберите несортированный

Рис. 3 – Установка свойств представления

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

Далее необходимо задать следующие параметры страницы (рис. 4):

1) Заголовок – Поиск. Заголовок будущей страницы

2) Адрес – poisk. Относительные адрес будущей страницы.

3) Формат отображения – Таблица. В каком виде будут отображатся данные.

4) Элементы для показа – сколько записей будут отображатся одновременно. Установите в 0, если хотите чтобы одновременно отображались все записи.

5) Использовать пейджер – создать кнопки для перехода к следующей порции материала

Рис. 4 – Установка дополнительных свойств представления

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

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

Рис. 5 – Редактирование представления

Первое, что необходимо сделать – это добавить новые поля для отображения. Изначально у нас отображается только заголовок материала. Для этого нажмем кнопку Добавить (рис. 6).

Рис. 6 - Добавление полей в представление

В появившемся окне найдите элемент Содержимое: Страна. Используйте фильтры для ускорения поиска (рис. 7).

Рис. 7 – Добавление полей в представление с помощью фильтров

В следующем окне (рис. 8) можно исключить поле с вывода, или задать особые параметры его отображения.

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

Аналогичным образом необходимо добавить поля Год и Жанр. Внизу страницы можно увидеть предпросмотр нашего представления, который изображен на рис. 9.

Рис. 9 – Предварительный просмотр представления

Добавим пользователю возможность искать фильмы по названию. Для этого добавим Новый фильтр (рис. 10).

Рис. 10 – Добавление фильтра к представлению

Выбор полей для фильтрации изображен на рис. 11.

Рис. 11 – Настройка фильтра представления

Опция Expose this filter to visitors, to allow them to change it – позволяет пользователю изменять значения фильтра. Оператор – операция, определяющая работу фильтра.

Рис. 12 – Дополнительные настройки фильтров

Результат работы разработанного фильтра представлен на рис. 13

Рис. 13 - Результат работы разработанного фильтра

Поскольку фильм «Бойцовский клуб» не содержит в названии буквы ‘а’ и потому не попал в данную выборку. Аналогичным способом добавим фильтр по годам (рис. 14), но разрешим пользователю самому выбирать не только значение фильтра, но и оператор. Для этого необходимо отметить поле Expose operator (рис. 15).

Рис. 14 - Создание фильтра по годам

Рис. 15 - Настройка фильтра по годам

Необходимо отметить, что все изменения представления не вступят в силу, пока вы не нажмете кнопку Сохранить. После сохранения созданного представления его результат доступен по ссылке http://newfilm.ua/poisk (рис. 16).

Рис. 16 - Результат работы поиска

Система меню CMS Drupal

Отметим, что в CMS Drupal существует несколько видов меню:

1) Меню администратора(Management): Панель инструментов, Содержимое, Внешний вид, Пользователи, Модули, Конфигурация, Отчёты, Помощь.

2) Меню пользователя: Мой аккаунт, Выход вид которого представлен на рис. 17.

3) Меню навигации (Добавить содержимое). Это меню создается системой и тесно связано с правами пользователей.

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

Рис. 17 - Пользовательское меню CMS Drupal

Просмотреть список всех меню можно выбрав пункт меню администратора Структура и выбрав пункт Меню (рис. 18).

Рис. 18 - Работа с меню в CMS Drupal

Далее необходимо добавить в существующее в Drupal главное меню ссылки на страницу поиска. Для этого нужно нажать кнопку Добавить ссылку (рис. 19).

Рис. 19 - Добавление ссылки в главное меню

Если пункт меню ведет на страницу сайта, то путь можно вводить относительный (рис. 20).

 

Рис. 20 – Настройка ссылки в меню

Результат настройки меню можно увидеть на главной странице ВОКС (рис. 21).

Рис. 21 - Главная страница ВОКС

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

Рис. 22 - Настройка отображения представления в меню

Модуль DHTML Menu

Модуль DHTML Menu позволяет использовать Java Script для динамического раскрытия меню. Его работу хорошо видно на примере меню навигации. Виды меню навигации до и после установки модуля DHTML Menu приведены на рисунках 23, 24 соответственно.

  Рис. 23 – Вид навигационного меню до установления DHTML Menu Рис. 24 – Вид навигационного меню после установления DHTML Menu

 

Работа с блоками и использование контекстных фильтров

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

Для начала необходимо создать новое представление, но вместо пункта страница необходимо выбрать пункт Блок (рис. 25).

Рис. 25 - Создание блока

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

Рис. 26 - Установление взаимосвязи между материалами

 

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

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

При настройке связи необходимо установить флажок ее обязательности – это позволит выбрать только тех людей, которые принимали участие в фильмах как актеры (рис. 28).

Рис. 28 - Настройка связи между материалами

Результат создания взаимосвязи представлен на рис. 29.

Рис. 29 - Результат установления связи между материалами

Анализ полученных результатов показывает, что в списке остались только актеры, но некоторые из них повторяются несколько раз. Это объясняется тем, что эти актеры участвовали в нескольких фильмах.

Добавим новые поля: Название фильма и Год выпуска фильма (рис. 30).

Рис. 30 - Добавление поля Название фильма

В настройках (рис. 31) обязательно необходимо указать, что поле получает свое значение через связь.

Рис. 31 - Настройка поля Название фильма

Аналогичную последовательность действий необходимо провести для добавления поля Год (рис. 32, рис. 33).

Рис. 32 - Добавление поля Год

Рис. 33 - Настройка поля Год

Результат приведен на рис. 33.

Рис. 34 - Результат созданной взаимосвязи

На следующем шаге необходимо создать контекстный фильтр, который отбирает записи только текущего актера (рис. 35).

Рис. 35 - Создание контекстного фильтра

Далее необходимо выбрать поле для отбора (рис. 36). Следует заметить, что Nid (node id) – это уникальный идентификатор контента.

Рис. 36 – Выбор поля отбора

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

Рис. 37 - Настройка поля отбора

Для проверки работы блока поместим его на странице информации о Человеке. Для управления блоками необходимо перейти в пункт меню администратора Структура и выбрать пункт Блоки (рис. 38). Окно управления позволяет настраивать расположение блоков и их поведение.

Рис. 38 - Управление блоками

С помощью этого окна необходимо блок «Снимался в фильмах» поместить в область Содержимое (рис. 39).

Рис. 39 – Добавление созданного блока в содержимое главной страницы

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

Рис. 40 – Переход на настройку блока

В пункте Настройки видимости нужно выбрать подпункт Типы содержимого и отметить Человек (рис. 41).

Рис. 41 - Установление ограничения для отображения блока

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

Рис. 42 - Результат работы контекстного фильтра

Агрегация

Еще одной очень важной возможностью модуля 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 - Результирующий вид созданного представления

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...