diff --git a/invite.module b/invite.module index f04985e..ff38c2a 100644 --- a/invite.module +++ b/invite.module @@ -534,6 +534,11 @@ function invite_process($invite, $account) { $args = array('invitee' => $account, 'inviter' => $invite->inviter, 'roles' => &$roles); module_invoke_all('invite', 'escalate', $args); + // Invoke rules event "Invitation was accepted". + if (module_exists('rules')) { + rules_invoke_event('invite_accept_event', user_load($invite->inviter->uid), $account); + } + return $roles; } @@ -1118,6 +1123,11 @@ function invite_form_submit($form, &$form_state) { if (!$form_state['values']['resent']) { $args = array('inviter' => $invite->inviter, 'email' => $invite->email, 'code' => $invite->code); module_invoke_all('invite', 'invite', $args); + + // Invoke Rules event "Invitation was sent". + if (module_exists('rules')) { + rules_invoke_event('invite_invite_event', user_load($invite->inviter->uid)); + } } $num_succeeded++; @@ -1280,6 +1290,11 @@ function invite_cancel_submit($form, &$form_state) { // Notify other modules. $args = array('inviter' => $invite->inviter, 'email' => $invite->email, 'code' => $invite->reg_code); module_invoke_all('invite', 'cancel', $args); + + // Invoke Rules event "Invitation was cancelled". + if (module_exists('rules')) { + rules_invoke_event('invite_cancel_event', user_load($invite->inviter->uid)); + } } /** diff --git a/invite.rules.inc b/invite.rules.inc new file mode 100644 index 0000000..2cecdca 100644 --- /dev/null +++ b/invite.rules.inc @@ -0,0 +1,41 @@ + array( + 'label' => t('Invitation was sent'), + 'module' => 'Invite', + 'arguments' => array( + 'inviter' => array('type' => 'user', 'label' => t('Inviting user')), + ), + 'help' => 'This event is triggered when a user sends a new invitation.', + ), + 'invite_cancel_event' => array( + 'label' => t('Invitation was cancelled'), + 'module' => 'Invite', + 'arguments' => array( + 'inviter' => array('type' => 'user', 'label' => t('Inviting user')), + ), + 'help' => 'This event is triggered when an inviting user cancels an invitation.', + ), + 'invite_accept_event' => array( + 'label' => t('Invitation was accepted'), + 'module' => 'Invite', + 'arguments' => array( + 'inviter' => array('type' => 'user', 'label' => t('Inviting user')), + 'invited' => array('type' => 'user', 'label' => t('Invited user')), + ), + 'help' => 'This event is triggered when a user has accepted an invitation.', + ), + ); +}