Автоматическое заполнение поля термина таксономии, взятое через поле Entity reference

Главные вкладки

Аватар пользователя buldozer_kpi buldozer_kpi 25 мая 2023 в 12:33

Здравствуйте.
Есть тип материала Компания, который имеет поле с термином таксономии Категория. Поле Категория заполняется администратором сайта при создании Компании.
Есть тип материала Отзыв о компании, который через поле Entity reference ссылается на Компанию и тоже имеет поле с термином таксономии Категория. Но в этом случае поле Категория скрыто от обычного пользователя.
Как сделать, чтобы при сохранении Отзыва поле Категория автоматически заполнилось, взяв необходимые данные из материала Компания через поле Entity reference?

Комментарии

Аватар пользователя Andruxa Andruxa 29 мая 2023 в 20:25
1

Да, реальная. Готовых модулей навскидку не вспомню, решается с помощью hook_node_presave
Перед сохраненим ноды типа Отзыв о компании - загрузить связнную ноду Компания, взять оттуда id термина Категория, и заполнить им поле Категория в ноде Отзыв о компании, после этого хука она сохранится с заполненным полем.

Но - зачем вообще задваивать это поле, если через связь Отзыв - Компания можно вытянуть из компании Категорию - хоть при отображении отзыва, хоть в фильтрах вьюса, если надо искать отзывы по категориям.

Аватар пользователя Andruxa Andruxa 30 мая 2023 в 0:27

Думаю, что да. Не уверен, что там есть событие перед сохранением ноды/сущности, но можно использовать событие после сохранения (аналог hook_node_save), просто придется сохранить ноду еще раз после того, как ее сохранит пользователь из формы редактирования.