Доброго всем времени суток.
В модуле rules вешаю на событие выполнение следующего php-кода:
<?php
if ($node->field_stop_pay[0]['value'] != '')
$node->field_stop_pay[0]['value'] = strtotime('+5 day', $node->field_stop_pay[0]['value']);
else
$node->field_stop_pay[0]['value'] = strtotime('+5 day');
$node->field_pay[0]['value'] = 1;
$node->field_do_it_pay[0]['value'] = 0;
return array(
"node" => $node);
?>
Поля field_stop_pay, field_pay, field_do_it_pay - существуют, числового типа.
Однако сохраняется только изменение в поле field_do_it_pay, остальное - остается неизменным.
Почему так может быть?
Заранее спасибо.
Комментарии
Это правило учли?
The code that should be executed. Don't include <?php ?> delimiters.
Эм... Не использовать <?php ?>, ведь так?
То, что вы видите выше, в этой теме - это сам движок ставит, когда выделяешь код тегами.
К тому же, самое то странное - ведь последняя строчка работает:
<?php
$node->field_do_it_pay[0]['value'] = 0;
?>
А если выполнить только это:
$node->field_do_it_pay[0]['value'] = 0;
return array("node" => $node);
field_pay тоже не изменится?
Если так - то меняются два значения.
И что же тогда с первым делать?
*плачед*
Я просто лошара.
У меня еще есть второй действие - обратное. Так там в условии вместо <= было >= и соответственно оно постоянно выполнялось, обнуляя результат работы первого.
Так что все отлично работает.
Спасибо за участие и пардон, что отобрал время.
P.S. "Решено" в заголовке ставить?
Вам решать.
Мля, три часа парился, кучу вариантов подбирал. А оказывается НЕ НАДО ставить. Выдранные волосы не вернуть.