You are here

function user_relationship_mailer_send_email in User Relationships 5

Same name and namespace in other branches
  1. 5.2 plugins/user_relationship_mailer/user_relationship_mailer.module \user_relationship_mailer_send_email()
  2. 6 user_relationship_mailer/user_relationship_mailer.module \user_relationship_mailer_send_email()
  3. 7 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|cancel|approve|disapprove|remove]

$relationship: object of the relationship

1 call to user_relationship_mailer_send_email()
user_relationship_mailer_user_relationships in plugins/user_relationship_mailer/user_relationship_mailer.module
hook_user_relationships()

File

plugins/user_relationship_mailer/user_relationship_mailer.module, line 19

Code

function user_relationship_mailer_send_email($op, &$relationship) {
  $requester = $relationship->requester;
  $requestee = $relationship->requestee;
  $send_to_requestee = isset($requestee->user_relationship_mailer_send_mail) ? $requestee->user_relationship_mailer_send_mail : TRUE;
  $send_to_requester = isset($requester->user_relationship_mailer_send_mail) ? $requester->user_relationship_mailer_send_mail : TRUE;
  $send_to = array();
  switch ($op) {
    case 'request':
      if ($relationship->approved) {
        return;
      }
    case 'cancel':
      $send_email = $send_to_requestee;
      $send_to[]['address'] = $requestee->mail;
      break;
    case 'approve':
    case 'disapprove':
      $send_email = $send_to_requester;
      $send_to[]['address'] = $requester->mail;
      break;
    case 'remove':
      $send_email = $send_to_requestee && $send_to_requester;
      $send_to[] = array(
        'address' => $requester->mail,
        'uid' => $requester->uid,
      );
      if (!$relationship->type->is_oneway) {
        $send_to[] = array(
          'address' => $requestee->mail,
          'uid' => $requestee->uid,
        );
      }
      break;
    default:
      return;
  }
  $send_email = $send_email && variable_get('user_relationship_mailer_send_mail', FALSE) && variable_get("user_relationship_mailer_send_{$op}", TRUE);

  // sending email has been turned off
  if (!$send_email) {
    return;
  }
  foreach ($send_to as $target) {
    $replacements = user_relationship_mailer_replacements($relationship);
    if ($op == 'remove') {
      $replacements['@profile_uid'] = $target['uid'];
    }
    $message_function = "user_relationship_mailer_{$op}_default";
    $subject = t(variable_get("user_relationship_mailer_{$op}_subject", $message_function()), $replacements);
    $message = t(variable_get("user_relationship_mailer_{$op}_message", $message_function()), $replacements);
    $site_mail = variable_get('site_mail', '');
    if (!strlen($site_mail)) {
      if (user_access('administer nodes')) {
        drupal_set_message(t('You should create an administrator mail address for your site! <a href="%url">Do it here</a>.', array(
          '%url' => url('admin/settings/site-information'),
        )), 'error');
      }
      $site_mail = 'nobody@localhost';
    }
    $errors = array();
    $replacements = array(
      '%type' => $op,
      '%username' => $related->name,
    );
    if (drupal_mail("user_relationship_mailer_user_{$op}", $target['address'], $subject, $message, $site_mail)) {
      watchdog('userreltnships', t('%type message was sent to %username', $replacements));
    }
    else {
      watchdog('userreltnships', t('There was a problem sending the %type message to %username', $replacements), WATCHDOG_WARNING);
    }
  }
}