Работа с блоками и использование контекстных фильтров
Стр 1 из 2Следующая ⇒ Создание представлений для собственных типов материала Один из самых мощных модулей 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 соответственно.
Работа с блоками и использование контекстных фильтров Возможности модуля 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 - Создание нового представления Зададим следующие исходные настройки (рис. 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|