2.7. Field, Entity - работа с полями и сущностями.
В Друпал 8 у нас есть замечательные модули Fields, Field UI, они позволяют нам прикреплять различные поля к объектам (нодам, комментариям, пользователям, терминам таксономии), которые в свою очередь создаются не менее замечательным модулем Entity. С помощью этой связки Entity + Fields, вы можете реализовывать любые связи между реально существующими объектами, на сайт. Например у вас есть фирма, в фирме есть различные отделы, в отделах работают сотрудники. Создаем словарь таксономии Отделы, прописываем там все отделы фирмы, создаем Тип материала Сотрудник и прикрепляем к нему поле Ссылка на термин на словарь Отделы.
Таким образом у нас получится уже не просто страницы отделов и сотрудников, а связанный каталог. В этом уроке мы сделаем такой каталог разделов и сотрудников, а пока важно понять, что друпал позволяет быстро настроить добавление различных объектов на сайт и настроить связи между этими объектами.
Перед началом урока проверьте, что у вас включены модули Entity, Field, Field UI, Taxonomy
Давайте создадим Словарь таксономии Отделы (Мы уже создавали словари таксономии в этом уроке):
Теперь давайте создадим тип материала Сотрудник (мы уже добавляли типы материалов в этом уроке), поле заголовка можно сразу переименовать в ФИО:
Теперь мы можем перейти к разбору трех вкладок Поля, Menage form display, Вывод.
Поля
На этой вкладке мы можем добавлять поля к нашем типам материла (а также другим сущностям: комментариям, пользователям и т.д.). Давайте добавим связь со словарем Отделы:
Также у каждого сотрудника есть должность, давайте добавим поле Должность. Тип поля выберем Текст, это обычное текстовое поле.
Также мы можем добавить поле День рождения к работнику (проверьте что у вас включен модуль datetime):
В тип даты лучше всего указать Date only (только дату):
Давайте еще переименуем поле Body в поле О себе:
Переименуем метку поля:
Ну вот мы и добавили немного полей каждому сотруднику (в следующем уроке мы еще добавим поле Фото, чтобы загрузить фотографии каждого сотрудника). Теперь на странице добавления каждого из сотрудников, у нас будут дополнительные поля.
Если вам необходимо поменять местами поля в форме редактирования ноды, то нужно перейти на вкладку manage form display.
Manage form display
На этой вкладке мы управляем формой добавления ноды, в каком порядке информация будет выводиться информация на странице будет зависеть от вкладке Вывод.
Вывод
Мы можем скрыть например вывод поля Отдела для анонса ноды, потому что в анонсах на странице отдела будут сотрудники только одного отдела и так будет понятно какой это будет отдел. Но в тоже время мы будем выводить поле отдела в полной ноде, чтобы можно было перейти обратно на страницу отдела.
Также нужно настроить формат даты Даты рождения, чтобы выводилось только число, без времени. Для этого нажмите на шестерню и выставите нужный формат даты:
Не забывайте сохранять после каждого изменения. Тоже самое нужно сделать и для отображению По умолчанию (если мы не сделаем отдельно отображение Содержимое полностью, то отображение По умолчанию будет применяться к полной ноде).
Теперь мы можем добавить сотрудников.
Тоже самое что мы проделывали с полями для сотрудников можно проделать и для комментариев. Причем для каждого типа материала поля для комментариев настраиваются отдельно. То есть если для сотрудников у комментариев будет дополнительные поля, то для комментариев статей их может и не быть.
И даже если вы зайдете на страницу редактирования словаря Отделы, то там вы тоже найдете вкладки для редактирования полей терминов таксономии отделов.
Таким образом вы можете добавить поля для каждого отдела (возможно количество сотрудников, логотип отдела).
Тоже самое вы можете проделать с пользователями сайта, на странице управления пользователя
/admin/config/people/accounts
Теперь когда вы знаете что всему и вся можно добавить поля, то можете выбрать для себя чем вам лучше пользоваться Таксономией, пользователями или нодами. Например можно вместо словаря таксономии использовать Тип материала Отдел, а связь настроить с Сотрудником с помощью модуля Entity reference (который дает создавать поля подобные Ссылка на термин, только называются они Ссылка на материал (entity). И даже больше, вы можете не создавать тип материала Сотрудник, а использовать обычных пользователей сайта, только добавить им роль Сотрудник и также задавать связи с помощью Entity rerefence.
Возможность добавления полей в друпал в связке с модулем Views дают огромные возможности в создание сайтов, так что можете переходить к следующему уроку даже если сейчас вам что-то не до конца понятно.