Модуль Veiws позволяет не только создавать представления и выводить их в виде страниц и блоков, а также с его помощью можно выводимые материалы: сортировать, фильтровать, темизировать, связывать. Разбираясь с полями представлений в предыдущих уроках курса, мы встретили настройки контекстных фильтров и связей. И вот пришло время разобрать их более подробно.
Создавая наш основной тип материала, а именно «Книги» , мы заранее задали полю «Написал» тип «ссылка на материал». А он в свою очередь ссылается на тип материала «Автор».
Зайдём на любую из наших книг и пролистав вниз увидим, что поле написал, выступает обычной ссылкой на автора.
Используя модуль Views мы изменим вывод авторов, сделав его более динамичным и релевантным.
Подготовка к работе
Перед тем как начать работать с нашим представлением, нам сначала необходимо скрыть поле, которое мы будем изменять, в нашем случае «Написал», из отображения. Для того, что бы это сделать необходимо, в «Структура», который находится на административной панели, выбрать подраздел «Тип материала», навести курсором на необходимый материал, в моём случае это «книга» и перейти на раздел «Управление отображением».
В представленном списке находим поле, которое хотим скрыть, и в столбце формат выбираем <Скрытый>. Также можно, используя ползунок слева от названия поля переместить его в подраздел с таким же названием . И сохраняем внесённые нами изменения.
Теперь наше поле выводиться на странице представления не будет, что нам и нужно было так как мы его заменим другим представлением. Ну а для этого, конечно же, его нужно будет создать, а как это делать мы уже знаем.
Создание представления
После добавления представления настраиваем его под себя, как это делать мы уже знаем. Задаём имя представления «Автор», далее вводим машинное имя «author», обратим внимание что при написании машинного имени нельзя использовать буквы верхнего регистра. Далее в поле показать оставляем «Содержимое», ели оно не стояло по умолчанию, то выбираем его, выбираем тип «Автор» и убираем сортировку.
Его мы будем выводить не как страницу, а как блок, по этому мы ставим галочку на соответствующем разделе и убираем её с «Создать страницу». В настройках блока заполняем графу «заголовок блока», а в формате отображение выбираем «Сетка» из «поля» и продолжаем создание представления нажатием кнопки «продолжить редактирование».
Так как хорошего писателя, читатель должен знать в лицо, добавим в разделе «поля» поле Фото, а в его настройках сразу выставим Thumbnail (100x100).
Теперь можно воспользоваться уже известной нам функцией «предпросмотр» и посмотреть, что у нас получилось.
Создание связи
Теперь Авторы выводятся куда лучше, однако сейчас выводятся все авторы, которые у нас добавлены на сайте. Для того , что бы автор выводился конкретно на своей книге нам необходимо связать наше представление с типом материала «книга».
А что бы это сделать нам надо углубиться в настройки представления, нажав на ссылку «Расширенные». В списке, который появится, добавим «связь» нажав на кнопку добавить в соответствующем разделе.
В появившемся списке ищем «Содержимое: Написал» . Обращаем внимание на описание, нам необходимо то в котором будет написано, что содержимое ссылается на «…, соотносимый к материалу через Написал».
В настройках связи изменяем поле «Идентификатор» с стандартного на необходимый нам, в своём отображении я напишу «Написал». И после того как поставили галочку на «Эта связь обязательна» сохраняем настройки нажатием кнопки «Применить». Так из представления уберутся все авторы, которые ни с чем на сайте не связаны.
Создание контекстного фильтра
Дальнейшим этапом настройки будет добавление контекстного фильтра, для того, чтобы выводить писателя только на своей книге. Для этого в графе «контекстные фильтры» нажимаем кнопку «Добавить».
В выплывающем списке нам необходимо добавить «Содержимое: Nid», и перейти к его настройкам нажав клавишу применить.
В настройках в графе связь выбираем ранее созданную нами fiel_napisana. Это действие необходимо для указания аргумента фильтрации. В данном случае мы указываем на индефикатор Книги, а не Автора.
Далее переходим к разделу «Когда значение фильтра не доступно». Тут ставим галочку на «Передать значение по умолчанию», а выплывающем списке поля «Тип» выбираем «ID материала из URL». С помощью этих настроек, перейдя на страницу книги в нашем представлении будет тот автор который указан в поле «Написал». Нажатием кнопки применить сохраняем наши настройки.
На этом наши настройки закончены и можно сохранять наше отображение.
Выведение представления в нужном месте
Этими действиями мы создали «Блок» с нашим отображением, который по умолчанию ни где не выводиться. Для того чтобы его вывести необходимо, перейти в «Блоки», который вложен в раздел «Структура», найти в отключённых наш блок и вывести там где мы хотим его видеть. В своей библиотеке я выведу его в сайдбаре выше нашего блока «популярные» и сохраним блоки.
Теперь перейдём в настройки непосредственно блока.
Пролистываем в самый низ и в «настройки видимости» в разделе «Типы материалов» выбираем «книга» и сохраняем. Теперь наш блок будет выводиться только на типах материала «Книга».
Теперь перейдём на нашу книгу и увидим что выводится её Автор. Дальнейшая тимизация блока будет проходить посредством Css.
В случае если в этом блоке у вас будет выводиться несколько материалов, то желательно настроить количество столбцов у сетки. Для этого необходимо перейти в настройки представления и нажать на ссылку «настройки» в разделе формата. Находим поле под названием «число столбцов*» и выставляем необходимое нам значение.
Данная функция модуля представления, расширяет область его использования и очень помогает при создании интернет магазинов на базе Drupal.