You are here

OaEmail.class.php in Open Atrium Core 7.2

Provides a message notifier that extends the default's email capabilities with some Open Atrium specific additions.

File

modules/oa_messages/plugins/message_notify/notifier/oa_email/OaEmail.class.php
View source
<?php

/**
 * @file
 * Provides a message notifier that extends the default's email capabilities
 * with some Open Atrium specific additions.
 */

// make sure message_notify parent class is included to avoid drush errors
include_once drupal_get_path('module', 'message_notify') . '/plugins/notifier/email/MessageNotifierEmail.class.php';

/**
 * Email notifier.
 */
class OaEmail extends MessageNotifierEmail {

  /**
   * Override parent deliver() function.
   */
  public function deliver(array $output = array()) {
    $plugin = $this->plugin;
    $message = $this->message;
    $options = $plugin['options'];
    $account = user_load($message->uid);
    $mail = !empty($options['mail']) ? $options['mail'] : $account->mail;
    $languages = language_list();
    if (!$options['language override']) {
      $lang = !empty($account->language) && $account->language != LANGUAGE_NONE ? $languages[$account->language] : language_default();
    }
    else {
      $lang = $languages[$message->language];
    }

    // The subject in an email can't be with HTML, so strip it.
    $output['message_notify_email_subject'] = strip_tags($output['message_notify_email_subject']);

    // Allow for overriding the 'from' of the message.
    $from = isset($options['from']) ? $options['from'] : NULL;
    $from_account = !empty($message->user->uid) ? user_load($message->user->uid) : $account;
    $mimemail_name = variable_get('mimemail_name', t('Atrium'));
    $from = array(
      'name' => oa_core_realname($from_account) . ' (' . $mimemail_name . ')',
      'mail' => is_array($from) ? $from['mail'] : $from,
    );

    // Pass the message entity along to hook_drupal_mail().
    $output['message_entity'] = $message;
    if (!empty($message->email_attachments)) {
      $output['attachments'] = isset($output['attachments']) ? $output['attachments'] : array();
      $output['attachments'] = array_merge($message->email_attachments, $output['attachments']);
    }
    return drupal_mail('message_notify', $message->type, $mail, $lang, $output, $from);
  }

}

Classes

Namesort descending Description
OaEmail Email notifier.