Блог Vaden Pro

Все о самостоятельном создании и продвижении сайтов

Настройка связей и контекстных фильтров в представлениях (views) Drupal 7

Раздел: 

Модуль Veiws позволяет не только создавать представления и выводить их в виде страниц и блоков, а также с его помощью можно выводимые материалы: сортировать, фильтровать, темизировать, связывать. Разбираясь с полями представлений в предыдущих уроках курса, мы встретили настройки контекстных фильтров и связей. И вот пришло время разобрать их более подробно.

Настройка связи и контекстного фильтра в представлении (views) Drupal7

Создавая наш основной тип материала, а именно «Книги» , мы заранее задали полю «Написал» тип «ссылка на материал». А он в свою очередь ссылается на тип материала «Автор».

Зайдём на любую из наших книг и пролистав вниз увидим, что поле написал, выступает обычной ссылкой на автора.

Внешний вид поля

Используя модуль Views мы изменим вывод авторов, сделав его более динамичным и релевантным.

Подготовка к работе

Перед тем как начать работать с нашим представлением, нам сначала необходимо скрыть поле, которое мы будем изменять, в нашем случае «Написал», из отображения. Для того, что бы это сделать необходимо, в «Структура», который находится на административной панели, выбрать подраздел «Тип материала», навести курсором на необходимый материал, в моём случае это «книга» и перейти на раздел «Управление отображением».

Управление отображением

В представленном списке находим поле, которое хотим скрыть, и в столбце формат выбираем <Скрытый>. Также можно, используя ползунок слева от названия поля переместить его в подраздел с таким же названием . И сохраняем внесённые нами изменения.

Скрываем поле

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

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

Создаём представление

После добавления представления настраиваем его под себя, как это делать мы уже знаем. Задаём имя представления «Автор», далее вводим машинное имя «author», обратим внимание что при написании машинного имени нельзя использовать буквы верхнего регистра. Далее в поле показать оставляем «Содержимое», ели оно не стояло по умолчанию, то выбираем его, выбираем тип «Автор» и убираем сортировку.

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

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

Так как хорошего писателя, читатель должен знать в лицо, добавим в разделе «поля» поле Фото, а в его настройках сразу выставим Thumbnail (100x100).

Настройки фото

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

Предпросмотр

Создание связи

Теперь Авторы выводятся куда лучше, однако сейчас выводятся все авторы, которые у нас добавлены на сайте. Для того , что бы автор выводился конкретно на своей книге нам необходимо связать наше представление с типом материала «книга».

А что бы это сделать нам надо углубиться в настройки представления, нажав на ссылку «Расширенные». В списке, который появится, добавим «связь» нажав на кнопку добавить в соответствующем разделе.

Связь

В появившемся списке ищем «Содержимое: Написал» . Обращаем внимание на описание, нам необходимо то в котором будет написано, что содержимое ссылается на «…, соотносимый к материалу через Написал».

Связанное поле

В настройках связи изменяем поле «Идентификатор» с стандартного на необходимый нам, в своём отображении я напишу «Написал». И после того как поставили галочку на «Эта связь обязательна» сохраняем настройки нажатием кнопки «Применить». Так из представления уберутся все авторы, которые ни с чем на сайте не связаны.

Настройка связи

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

Дальнейшим этапом настройки будет добавление контекстного фильтра, для того, чтобы выводить писателя только на своей книге. Для этого в графе «контекстные фильтры» нажимаем кнопку «Добавить».

Контекстный фильтер

В выплывающем списке нам необходимо добавить «Содержимое: Nid», и перейти к его настройкам нажав клавишу применить.

Добавляем Nid

В настройках в графе связь выбираем ранее созданную нами fiel_napisana. Это действие необходимо для указания аргумента фильтрации. В данном случае мы указываем на индефикатор Книги, а не Автора.

Далее переходим к разделу «Когда значение фильтра не доступно». Тут ставим галочку на «Передать значение по умолчанию», а выплывающем списке поля «Тип» выбираем «ID материала из URL». С помощью этих настроек, перейдя на страницу книги в нашем представлении будет тот автор который указан в поле «Написал». Нажатием кнопки применить сохраняем наши настройки.

Настройки Nid

На этом наши настройки закончены и можно сохранять наше отображение.

Сохранить

Выведение представления в нужном месте

Этими действиями мы создали «Блок» с нашим отображением, который по умолчанию ни где не выводиться. Для того чтобы его вывести необходимо, перейти в «Блоки», который вложен в раздел «Структура», найти в отключённых наш блок и вывести там где мы хотим его видеть. В своей библиотеке я выведу его в сайдбаре выше нашего блока «популярные» и сохраним блоки.

Блоки

Теперь перейдём в настройки непосредственно блока.

Пролистываем в самый низ и в «настройки видимости» в разделе «Типы материалов» выбираем «книга» и сохраняем. Теперь наш блок будет выводиться только на типах материала «Книга».

Настройки блока

Теперь перейдём на нашу книгу и увидим что выводится её Автор. Дальнейшая тимизация блока будет проходить посредством Css.

Наш блок

В случае если в этом блоке у вас будет выводиться несколько материалов, то желательно настроить количество столбцов у сетки. Для этого необходимо перейти в настройки представления и нажать на ссылку «настройки» в разделе формата. Находим поле под названием «число столбцов*» и выставляем необходимое нам значение.

Число столбцов сетки

Данная функция модуля представления, расширяет область его использования и очень помогает при создании интернет магазинов на базе Drupal.