Необходимо после сохранения ноды типа_материала_1 при выставленном значение поля_1, добавить значение в поле_2 типа_материал_2 связанного с типом_материала_1 по связи entity reference.
Я выбираю
Event
Before saving content
в Conditions
задаю условия
- тип_материала_1
- Entity has field (где выбираю связь entity reference и в нем поле_1)
и дальше затык
как задать в действие правило что бы выставить значение нужно в поле_2 связанной с ней нодой типа материала 2.
Комментарии
Решил задачу.
Теперь стоит задача. Обратная. Сижу парюсь - не выходит.
Теперь при сохранение ноды типа_2 если поле_2 не имеет значения, у всех связанных нод типа_1 с этой нодой (типа_2) по связи entity refernce изменить значение поле_1.
Что там нужно в экшенах прописывать?
Чем отличаются Rule от Rule set ?
Опишу решение дабы может быт кто-то подскажет обратное решение.
Имеем:
ноду Тип_1, ноду Тип_2
ноды этих типов имеют Поле_1
нода Тип_2 связана с нода Тип_1 по связи entity reference (Поле_2)
Задача:
После сохранения ноды Типа 2 со значением Поля_1 равным НЕОБХОДИМОЕ ЗНАЧЕНИЮ, изменить в связанной с ней ноде Типа_1(связь entity reference - Поле_2) значение Поля_1 на НЕОБХОДИМОЕ ЗНАЧЕНИЕ.
Решил так:
Создал правило - После сохранения контента.
в условия добавил нода Типа_2, у которой Поле_1 имеет НЕОБХОДИМОЕ ЗНАЧЕНИЕ
а в действие добавил компонент Rule Set в котром указал параметр: Поле_2 (связь между нодами по entity reference)
Rule для компоненты Rule set имеет следующее:
в условиях - ноды Типа_1
в действиях - Set a data value, где задал Поле_1 с НЕОБХОДИМЫМ ЗНАЧЕНИЕМ.
И все работает как надо.
ТЕПЕРЬ СТОИТ ЗАДАЧА: при изменение значения Поля_1 в ноде Типа_1 на НЕОБХОДИМОЕ, изменять у ВСЕХ НОД связанных с этой нодой Типа_1 значение Поля_1 на НЕОБХОДИМОЕ.
За 3 часа ничего не получилось.
Надо притянуть связанные ноды через Fetch Entity и далее через Loop проводить необходимые манипуляции с притянутыми сущностями.
т.е. я просто в экшенах добавляю Fetch Entity : nid
и потом вожусь тут же с лупами?
в лупе при выборе Data selector * entity-fetched
что делать дальше, что то совсем не понятно =((((
не уверен что nid, т.к надо будет явно указать откуда этот nid брать. Возможно Fetch by property больше подойдет. Надо будет потыкать и найти подходящий вариант. Этот экшен вернет список результатов, который надо будет указать в качестве источника при создании loop. Далее ВНУТРИ loop создаем экшен и смотрим какими данными из этого списка можем манипулировать. Если нужного поля нет, а есть только стандартные (типо тайтл, имя автора и т.д.), то тут уже надо создавать отдельно компонент и в качестве входящих данных брать элементы этого списка и с кондишенс проверять наличие нужного поля и экшене этого компонента проводить необходимые вам манипуляции.