Мне нужно отправить электронное письмо с напоминанием на ДЕНЬ ПЕРЕД КАЛЕНДАРЬОМ, а также ДЕНЬ ПОСЛЕ.К сожалению, я не могу использовать планировщик правил, потому что токены нельзя манипулировать с помощью PHP.Это не сработает, если у меня есть
[node:field_event_date-datetime] -1 day
в качестве запланированного времени.
Я закончил тем, что создал два «фиктивных» поля даты для DAY BEFORE и DAY AFTER,и я пытаюсь подключиться к форме, захватывая дату события, используя некоторый PHP, такой как strtotime (), чтобы сложить / вычесть день, и сделать эти значения, которые войдут в базу данных.
Я пробовал ссылаться на часть формы #submit, но в phpMyAdmin все значения равны NULL.Для этого кода я даже не изменил дату, я просто пытаюсь заставить значения появляться в базе данных.
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == "event_node_form") {
$form['#submit'][] = '_mymodule_after_build';
// Makes the fields invisible
$form["field_event_day_before"]["#access"] = FALSE;
$form["field_event_day_after"]["#access"] = FALSE;
}
}
function _mymodule_after_build($form, &$form_state) {
$eventcopy = array();
// copy the value part from the Event
$eventcopy = $form['field_event_date'][0]['#value'];
// without doing any PHP yet, simply copy the values. Doesn't show up in db.
$form['field_event_day_before'][0]['#value'] = $eventcopy;
dsm($form);
return $form;
}
Я прочитал учебники по использованию Rules Scheduler с CCK и
Я также слежу за Расписание электронной почты для отправки на основе поля даты CCK - у меня не работает
Использую ли я правильные хуки?Как правильно перехватить введенное значение даты?