function user_relationship_mailer_send_email in User Relationships 7
Same name and namespace in other branches
- 5 plugins/user_relationship_mailer/user_relationship_mailer.module \user_relationship_mailer_send_email()
- 5.2 plugins/user_relationship_mailer/user_relationship_mailer.module \user_relationship_mailer_send_email()
- 6 user_relationship_mailer/user_relationship_mailer.module \user_relationship_mailer_send_email()
Sends mail to the appropriate user
Parameters
$op: string of action to take [request|delete|cancel|approve|disapprove|remove]
$relationship: object of the relationship
2 calls to user_relationship_mailer_send_email()
- user_relationship_mailer_user_relationships_delete in user_relationship_mailer/
user_relationship_mailer.module - Implements hook_user_relationships_delete().
- user_relationship_mailer_user_relationships_save in user_relationship_mailer/
user_relationship_mailer.module - Implements hook_user_relationships_save().
File
- user_relationship_mailer/
user_relationship_mailer.module, line 24 - Handles email notifications when relationships are added or removed.
Code
function user_relationship_mailer_send_email($op, $relationship) {
//Cron runs may call this and not set $relationship to a valid object. Happens during request expiry in user_relationships_cron().
if (!isset($relationship->rtid)) {
return;
}
//use correct op for sending out message on pre-approved relationship (see #415536)
if ($relationship->approved == TRUE && $op == 'request') {
$op = 'pre_approved';
}
if (!variable_get("user_relationship_mailer_send_{$op}", TRUE)) {
return;
}
$relationship->requester = $requester = user_load($relationship->requester_id);
$relationship->requestee = $requestee = user_load($relationship->requestee_id);
$send_to_requestee = isset($requestee->data['user_relationship_mailer_send_mail']) ? $requestee->data['user_relationship_mailer_send_mail'] : TRUE;
$send_to_requester = isset($requester->data['user_relationship_mailer_send_mail']) ? $requester->data['user_relationship_mailer_send_mail'] : TRUE;
$send_to = array();
switch ($op) {
case 'request':
case 'pre_approved':
case 'cancel':
$send_email = $send_to_requestee;
$send_to[] = 'requestee';
break;
case 'approve':
case 'disapprove':
$send_email = $send_to_requester;
$send_to[] = 'requester';
break;
case 'remove':
$send_email = $send_to_requestee && $send_to_requester;
$send_to[] = 'requester';
if (!$relationship->is_oneway) {
$send_to[] = 'requestee';
}
break;
default:
return;
}
if (variable_get('user_relationship_mailer_send_mail', FALSE) ? $send_email : variable_get("user_relationship_mailer_send_{$op}", TRUE)) {
$replacements = user_relationship_mailer_replacements($relationship);
foreach ($send_to as $target) {
$target = ${$target};
//include recipient-specific data here, for example, remove email needs these
$replacements['@profile_uid'] = $target->uid;
$replacements['@target_name'] = $target->name;
drupal_mail('user_relationship_mailer', $op, $target->mail, user_preferred_language($target), $replacements, NULL, TRUE);
}
}
}