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

manage form display

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

Вывод

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

Поле отдела

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

дата

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

сотрудник

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

список сотрудников

Дальше больше, у нас есть еще три вкладки для управления полями комментариев.

комментарии поля

 

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

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

таксономия поля

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

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

/admin/config/people/accounts

аккаунт поля

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

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

Комментарии

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

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Уважаемый Иван, доброго Вам

Уважаемый Иван, доброго Вам дня!
Посмотрел урок и прочитал материал на этой странице. Все понятно! Спасибо за изложенный материал. При его реализации на своем сайте уперся в следующую задачку...
Итак, дано:
есть словарь таксономии с перечнем нежилых помещений в Офисном центре. Каждый термин таксономии включает в себя:
1. Название термина (номер помещения);
2. Площадь помещения (кв.м.)
3. Фото помещения;
4. Описание помещения.

Также есть словарь таксономии с перечнем собственников помещений в офисном центре. Каждый термин включает в себя:
1. Название термина (ФИО собственника)
2. Телефон
3. e-mail

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

Задача: сделать так, чтобы при создании материала "Аренда помещения", при выборе соответствующего термина таксономии, автоматически подгружались в созданный материал данные из полей выбранного термина таксономии, такие как "площадь", фото, описание и т.д....

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

Заранее благодарю за ответ!

А если у меня 1000

А если у меня 1000 сотрудников? Друпал будет генерить 1000 нод. А если еще нужен поиск нужного сотрудника и вывод только его инфо?

Да, если у вас 1000

Да, если у вас 1000 сотрудников, то будет 1000 нод. Выводить информацию частично и полями вы можете через модуль Views, так же через Views  и его exposed filters можно сделать поиск по сотрудника: Имени, отделу, должности и прочее.