私は Advanced Poll モジュールを使用していますが、これには素敵な「時間管理」機能があります。投票を開始または終了するタイミングをスケジュールできます。
投票締め切り日の1日前に管理者に電子メール通知を送信したい。そのため、管理者は通知を受け取り、別の投票を作成します。
Rules モジュールまたはフックでこれを可能にする方法はありますか?
コンポーネントの評価をスケジュールする(メールを送信する)ルールを作成する必要があります。
コンポーネントを作成
admin/config/workflow/rules/components/add
)のコンポーネントプラグインを作成します-それに名前を付けますポーリングの終了について管理者に通知します "。Data type = Content
、Label - Poll Node
、Machine name = poll_node
、Usage = Parameter
。アクションの追加-> HTML電子メールの送信。メールパラメータを設定します以下はコンポーネントのエクスポートです
{ "rules_notify_admin_about_poll_closure" : {
"LABEL" : "Notify admin about poll closure",
"PLUGIN" : "rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules_i18n", "rules", "mimemail" ],
"USES VARIABLES" : { "poll_node" : { "label" : "Poll Node", "type" : "node" } },
"DO" : [
{ "mimemail" : {
"key" : "poll_closure_notify_admin",
"to" : "[email protected]",
"subject" : "Poll will close tomorrow",
"body" : "Poll [poll-node:title] will close tomorrow",
"plaintext" : [ "" ],
"language" : [ "" ]
}
}
]
}
}
ルールを作成
After saving new content of type Advanced Poll
」、「After updating existing content of type Advanced Poll
」node
、フィールド:advpoll_dates
アクションを追加します "コンポーネントの評価をスケジュールします"-作成したコンポーネントを選択します "ポーリングの終了について管理者に通知します "。
評価予定日-> node:advpoll-dates:value2
。オフセット「-1 days
」を追加します。これにより、投票締め切りの1日前にメールがスケジュールされます。
識別子を「Poll closure notification: [node:nid] - [node:title]
」のようなものに設定します。新しいスケジュールされたタスクがキューに追加されるたびに一意の値を持つ必要があるため、node:title
およびnode:nid
を使用する必要があります。
ポーリングNodeフィールドをnode
に設定します。
ルールを保存してテストします。
{ "rules_schedule_notification_about_poll_closure" : {
"LABEL" : "Schedule notification about poll closure",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "rules_scheduler" ],
"ON" : {
"node_insert--advpoll" : { "bundle" : "advpoll" },
"node_update--advpoll" : { "bundle" : "advpoll" }
},
"IF" : [
{ "entity_has_field" : { "entity" : [ "node" ], "field" : "advpoll_dates" } }
],
"DO" : [
{ "schedule" : {
"component" : "rules_notify_admin_about_poll_closure",
"date" : {
"select" : "node:advpoll-dates:value2",
"date_offset" : { "value" : -86400 }
},
"identifier" : "Poll closure notification: [node:nid]",
"param_poll_node" : [ "node" ]
}
}
]}}
コンポーネントのエクスポートと、使用して好みに合わせて変更できるルールを提供しました。お役に立てれば。
追伸スケジュールされたイベントを適切に機能させるには、WebサイトでCronを有効にして構成する必要があります。