Rules

Часто стандартных наборов правил для Rules не хватает и возникает необходимость выполнить свой php-код. Включать на сайте модуль php нельзя! Ибо это черевато соблазнами добавить какой-то код в базу данных, а это не drupal-way и черевато проблемами и ошибками. Итак, для того чтобы выполнить какое-то своё действие при срабатывании события по Rules, надо реализовать ряд хуков:

/**
 * Implement hook_rules_action_info()
 
 * Declare any meta data about actions for Rules
 */
 
function...

Существует старая громадная Issue на друпал.орг о том, что Rules не умеет работать с nodereference, т.е. все правила Rules не видят объекты, на которые ссылается какое-то поле - соответственно мы не можем, например, получить tid термина таксономии, на который ссылается наше cck-поле "Ссылка на термин".
Но есть возможность это обойти - это создание "Компонент" в Rules, по сути это "правило, вложенное в правило".
Суть проста - мы создаем новый компонент, в котором в качестве входного значения указываем объект, на который ссылается наше поле (например, термин таксономии). И потом...

Оказывается, в Drupal 7 уже нельзя, как раньше, просто написать
return array('node' => $node); и он бы сохранил все изменения, сделанные нами через php-код; в Drupal 7 так делать нельзя, еще не доработали эту фишку (http://drupal.org...

При использовании Rules логично было бы предположить, что после выполнения action "Create new node" в последующих action'ах мы бы смогли использовать nid созданной ноды. Оказывается, это не так.
Видимо до конца выполнения правила нода фактически еще не создана, и nid получить принципиально невозможно, даже если специально добавить action "Сохранить entity".
Не тратьте время на поиск решения, по всей видимости его просто нет. Просто включайте php-фильтр и фигачьте ноды из него.
Ссылки по теме:
...