Помогите пожалуйста написать код php для rules

Аватар пользователя space11 space11 23 июня в 9:27

В правилах

запланировано выполнение компонента (а именно смена статуса заявки с "в работе" на "выполнена"
указана дата выполнения node:field-3date:0:value2
Т.е. сейчас, когда node:field-3date:0:value2 <== Время UTC, то статус заявки меняется с "в работе" на "выполнена"
Необходимо сделать, чтобы статус менялся
field-3date:0:value2 -(минус) "разницу времени из field_chasovoi_poyas" <== Время UTC
или можно это же условие сформулировать по другому:
field-3date:0:value2 <== Время UTC +(плюс) "разницу времени из field_chasovoi_poyas" (что собственно одно и тоже)
Примечание:
с учётом часового пояса как со знаком +(плюс), так и со знаком минус -(минус)

0 Thanks

Комментарии

Аватар пользователя space11 space11 23 июня в 9:39

Есть код, но только при срабатывании крона статус меняется сразу, независимо от условий, подскажите что не так с кодом?

<?php
$nid
=arg(1);
$node node_load($nid);
//drupal_set_message('<pre>'. print_r($node, TRUE) .'</pre>');
$termtaxonomy_term_load($node->field_city_zakaza_term2['und'][0]['target_id']);
if(isset(
$term->field_chasovoi_poyas['und'][0]['value'])){
$value=date('Y-m-d H:i:s',$value);
$datetime = new DateTime($value, new DateTimeZone($term->field_chasovoi_poyas['und'][0]['value']));

$datetime->setTimezone(new DateTimeZone("UTC"));
//drupal_set_message('<pre>'. print_r($datetime->format('Y-m-d H:i:s'), TRUE) .'</pre>');
return strtotime($datetime->format('Y-m-d H:i:s'));
}
?>
Аватар пользователя zvse zvse 24 июня в 19:30

<?phpisset($term->field_chasovoi_poyas['und'][0]['value'])?>
тут надо !empty() использовать, видимо

Аватар пользователя space11 space11 24 июня в 21:49

Всплывает ошибка, может поэтому и не работает?
Notice: Trying to get property of non-object в функции eval() (строка 3 в файле /home/users/9/alex/domains/site.ru/sites/all/modules/rules/modules/php.eval.inc(179) : eval()'d code).

Аватар пользователя zvse zvse 25 июня в 11:14

Лучше вам нанять программиста. Либо попробовать разобраться в том, что написано: что приходит, откуда приходит и пр.