Категория:
Опубликовано:

Views - блок с информацией автора

Рассмотрим пример с использованием информации из профиля пользователя опубликовавшего материал.

Для начала добавим поле к профилю пользователя, чтоб каждый мог заполнять его в личном кабинете.

Сделать это можно на странице admin/config/people/accounts/fields.

Добавим поле с телефоном:

Добавление поля пользователю

Скриншот настроек поля.

Добавили, теперь перейдем к настройкам представления. Переходим на страницу создания нового представления admin/structure/views/add.

Добавим представление "Информация об авторе", в котором будем выводить содержимое нужного нам типа, без сортировки.

Страницу создавать не будем, создадим блок, в котором будем выводить поля неформатированным списком.

Скриншот настроек представления.

Сохраняем и переходим на страницу основных настроек.

В первую очередь добавим контекстный фильтр.

Добавить контекстный фильтр

Нам нужен фильтр по ID материала (NID).

Добавить фильтр NID

В настройках фильтра нужно передать значение по умолчанию, когда значение отсутствует - ID материала из URL.

Настройка фильтра NID

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

Для отображения информации об авторе нужно добавить связь с ним.

Добавить связь

Из списка всевозможных связей находим "Содержимое: Автор"

Добавить связь с автором

В настройках связи ничего настраивать не нужно, так все и оставим. На всякий случай скриншот настроек.

Теперь, благодаря добавленной нами связи, в полях будет доступна любая информация об авторе материала.

Добавим наше поле с номерами телефонов:

Добавить поле
Выбрать поле

В настройках поля проверяем нашу связь, она должна быть выбрана.

Связь с автором

Ну и выведем список телефонов маркированным списком:

Настройка множественного поля

Сохраняем поле.

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

В данной ситуации это поле нам не нужно, потому мы его удалим. Для этого нужно нажать на него и выбрать кнопку "Удалить".

Теперь наше представление готово. Можем его сохранить. Скриншот представления.

Для отображения представления на страницах материала его нужно вывести в нужный регион на странице блоков (admin/structure/block) и настроить нужные страницы для отображения.

Если у Вас возникли вопросы, замечания, предложения или просто благодарность - пишите в комментариях.
Делитесь полезными материалами в социальных сетях.

Комментарии

Как отфильтровать?
Создаю вьюс-блок с аватаром пользователя. Хочу чтоб на страницах пользователя (user/%user) и на странице блога пользователя (/blog/%user) выводился аватар соответствующего пользователя, а на остальных страницах - аватар пользователя вошедшего на сайт.
Я создал контекстный фильтр по ID пользователя из URL, как описано в вашей статье. Для user/%user и /blog/%user работает отлично, а как вывести аватар пользователя вошедшего на сайт на остальных страницах?

Создайте представление по пользователям, добавьте фильтр "Пользователь: Текущий", в полях выведите аватар, или другую информацию о User'е.

Настройте отображение блока на нужных страницах.

Если я правильно понял, Вы предлагаете создать два одинаковых блока с разными фильтрами для разных страниц. А нет ли возможности в одном вьюсе поставить условие: для страниц user/% работает контекстный фильтр, а для других фильтр "Пользователь: Текущий"?

Можно попробовать по аналогии с этим постом. Но все равно 2 представления.

Добавить комментарий