カレンダー イベントの前日と翌日にリマインダー メールを送信する必要があります。残念ながら、PHP ではトークンを操作できないため、Rules Scheduler を使用できません。私が持っている場合、それは動作しません
[node:field_event_date-datetime] -1 day
予定時間通り。
私がやったことは、DAY BEFOREとDAY AFTERの2つの「ダミー」日付フィールドを作成することです.フォームにフックして、イベントの日付を取得し、strtotime()のようなPHPを使用して追加/減算しますこれらをデータベースに入れる値にします。
フォームの #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 の日付フィールドに基づいてメールの送信をスケジュールするもフォローしています - うまくいきません
正しいフックを使用していますか? 入力された日付値を適切に傍受するにはどうすればよいですか?