Друзья, помогите решить проблему.
В action rules добавляю выполнение PHP кода в котором вычисляю некоторое значение, используя поля из инициировавшей правило ноды. Каким образом результат этого вычисления можно использовать в дальнейшем процессе обработки правила? В кратце, результат работы PHP кода - дата. Мне необходимо эту дату использовать в качестве даты запланированного выполнения компонента (sheduled rules).
Пробовал добавлять в action переменную (напр. $next_date) до PHP кода и в самом PHP коде записываю результаты вычислений в эту переменную ($next_date), но это ничего не меняет.
Есть возможность изменять перменную прямо в ней в поле "PHP evaluation", но в нём не предоставляется доступ к содержимому ноды и оно становится для меня бесполезным. Найти рецепт так и не удалось.
Комментарии
Наверное нужен сначала action "установить значение" в котором в переменную установиться php-кодом нужно значение.
А потом эту переменную использовать в других actions
Это я тоже пробовал, там суть такая же - не предоставляется доступ к переменным.
То, что мне нужно, делается только с типом данных "текст", прям при добавлении переменной можно уже использовать переменную $node для получения нужных полей из ноды с помощью PHP.
Но если я использую тип данных "текст", то его потом нельзя применить в качестве даты запланированной задачи. Откопал модуль Rules Data Transforms, который умеет менять формат строки в дату. Там что-то такое есть, но данные по прежнему не доступны в полях выбора даты.
Подскажите, как ещё можно добыть данные из БД, названия нужных полей я уже выудил через devel.
Проблема решилась установкой модуля Rules Transformers, который корректно изменяет тип данных string на date. Это делается через action Transform a timestamp string.