Ivan Abramenko 11/10/2019

В Друпал 8 у нас есть замечательные модули Fields, Field UI, они позволяют нам прикреплять различные поля к объектам (нодам, комментариям, пользователям, терминам таксономии), которые в свою очередь создаются не менее замечательным модулем Entity. С помощью этой связки Entity + Fields, вы можете реализовывать любые связи между реально существующими объектами, на сайт. Например у вас есть фирма, в фирме есть различные отделы, в отделах работают сотрудники. Создаем словарь таксономии Отделы, прописываем там все отделы фирмы, создаем Тип материала Сотрудник и прикрепляем к нему поле Ссылка на термин на словарь Отделы.

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

Перед началом урока проверьте, что у вас включены модули Entity, Field, Field UI, Taxonomy

Давайте создадим Словарь таксономии Отделы (Мы уже создавали словари таксономии в этом уроке):

taxonomy departments

Теперь давайте создадим тип материала Сотрудник (мы уже добавляли типы материалов в этом уроке), поле заголовка можно сразу переименовать в ФИО:

Content type employee

Теперь мы можем перейти к разбору трех вкладок Поля, Menage form display, Вывод.

content type drupal

Поля

На этой вкладке мы можем добавлять поля к нашем типам материла (а также другим сущностям: комментариям, пользователям и т.д.). Давайте добавим связь со словарем Отделы:

employee

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

Position field

Также мы можем добавить поле День рождения к работнику (проверьте что у вас включен модуль datetime):

Position field

В тип даты лучше всего указать Date only (только дату):

date only

 Давайте еще переименуем поле Body в поле О себе:

About myself

Переименуем метку поля:

About myself

Ну вот мы и добавили немного полей каждому сотруднику (в следующем уроке мы еще добавим поле Фото, чтобы загрузить фотографии каждого сотрудника). Теперь на странице добавления каждого из сотрудников, у нас будут дополнительные поля.

additional fields

Если вам необходимо поменять местами поля в форме редактирования ноды, то нужно перейти на вкладку manage form display.

Manage form display

manage form display

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

Вывод

Мы можем скрыть например вывод поля Отдела для анонса ноды, потому что в анонсах на странице отдела будут сотрудники только одного отдела и так будет понятно какой это будет отдел. Но в тоже время мы будем выводить поле отдела в полной ноде, чтобы можно было перейти обратно на страницу отдела.

Department field

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

date

Не забывайте сохранять после каждого изменения. Тоже самое нужно сделать и для отображению По умолчанию (если мы не сделаем отдельно отображение Содержимое полностью, то отображение По умолчанию будет применяться к полной ноде).

employee

Теперь мы можем добавить сотрудников.

list of employees

Тоже самое что мы проделывали с полями для сотрудников можно проделать и для комментариев. Причем для каждого типа материала поля для комментариев настраиваются отдельно. То есть если для сотрудников у комментариев будет дополнительные поля, то для комментариев статей их может и не быть.

И даже если вы зайдете на страницу редактирования словаря Отделы, то там вы тоже найдете вкладки для редактирования полей терминов таксономии отделов.

taxonomy of the field

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

Тоже самое вы можете проделать с пользователями сайта, на странице управления пользователя

/admin/config/people/accounts

field account

Теперь когда вы знаете что всему и вся можно добавить поля, то можете выбрать для себя чем вам лучше пользоваться Таксономией, пользователями или нодами. Например можно вместо словаря таксономии использовать Тип материала Отдел, а связь настроить с Сотрудником с помощью модуля Entity reference (который дает создавать поля подобные Ссылка на термин, только называются они Ссылка на материал (entity). И даже больше, вы можете не создавать тип материала Сотрудник, а использовать обычных пользователей сайта, только добавить им роль Сотрудник и также задавать связи с помощью Entity rerefence.

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