コアポーリングモジュールをルールと統合するにはどうすればよいですか?
advpoll モジュールを見つけましたが、まだ開発バージョンであり、どこでもエラーをスローします。
ユーザーが投票に投票した後、単にルールをトリガーしたいと思っています。
同じ機能を実現するための代替手段はありますか?
カスタムモジュールを使用すると、かなり簡単に実行できることがわかりました。
MYMODULE.module
/**
* Implements hook_form_alter().
*/
function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
switch ($form_id) {
case 'poll_view_voting':
$form['vote']['#submit'][] = 'MYMODULE_poll_view_voting_submit';
break;
}
}
/**
* Submit handler for poll_view_voting form.
*/
function MYMODULE_poll_view_voting_submit($form, &$form_state) {
// Invoke our custom rule and pass the loaded node object as an argument.
rules_invoke_event('MYMODULE_poll_vote', node_load($form['#node']->nid));
}
MYMODULE.rules.inc
/**
* Implements hook_rules_event_info().
*/
function MYMODULE_rules_event_info() {
return array(
'MYMODULE_poll_vote' => array(
'label' => t('User casts a poll vote'),
'help' => t('Triggers when users are casting votes on polls.'),
'group' => t('MYMODULE HUMAN NAME'),
'variables' => array(
'poll' => array(
'type' => 'node',
'label' => t('Poll node'),
'description' => t('Voted poll node.'),
),
),
),
);
}