You are here

messaging.inc in Date Reminder 6.2

Same filename and directory in other branches
  1. 6 includes/messaging.inc

Support for configuring and sending messages.

File

includes/messaging.inc
View source
<?php

/**
 * @file
 * Support for configuring and sending messages.
 */

/**
 * Implements hook_messaging().
 *
 * @param string $op
 *   What kind of info is being requested?
 * @param string $type
 *   What kind of message is this about?
 * @param string $arg2
 *   Not used here.
 */
function _datereminder_messaging($op, $type = NULL, $arg2 = NULL) {
  switch ($op) {
    case 'message groups':

      // What kind of messages do we send?
      $help = t('This is the message sent to remind a user of an upcoming calendar event');
      $info = array();
      $info['datereminder-reminder'] = array(
        'module' => 'datereminder-reminder',
        'name' => t('Reminder message'),
        'description' => t('Send reminders for approaching events'),
        'help' => $help,
      );
      return $info;
    case 'message keys':

      // The parts of messages that site admin can customize.
      switch ($type) {
        case 'datereminder-reminder':
          return array(
            'subject' => t('Subject'),
            'body' => t('Content'),
          );
      }
      break;
    case 'messages':

      // Default email content.
      switch ($type) {
        case 'datereminder-reminder':
          return array(
            'subject' => 'REMINDER from [site-name]: [title] at [next-date-short]',
            'body' => "[title] is coming at [next-date-short]\n\n[node-teaser]\n\nRead more: [node-url]",
          );
      }
      break;
    case 'tokens':

      // Get the parts of the template name as explained in the
      // "messaging groups" case.
      $type = explode('-', $type);
      if ($type[0] == 'datereminder') {
        $tokens = array(
          'user',
          'node',
          'datereminder',
        );
        return $tokens;
      }
  }
}

/**
 * Send reminder for given node to given user request.
 */
function _datereminder_send_reminder($r) {
  _datereminder_complete_reminder($r);
  $node = $r->node;
  $user = $r->user;
  $sending_method = messaging_method_default($user);
  $message = array(
    'subject' => messaging_message_part('datereminder-reminder', 'subject', $sending_method),
    'body' => messaging_message_part('datereminder-reminder', 'body', $sending_method),
  );
  $objects = array(
    'node' => $node,
    'user' => $user,
    'datereminder' => $r,
    'global' => NULL,
  );
  foreach ($message as $p => $c) {
    $message[$p] = token_replace_multiple($c, $objects);
  }
  $m = $message['body'];
  if (empty($r->email)) {
    $u = $user->name;
    return messaging_message_send_user($user, $message);
  }
  else {
    return messaging_message_send(explode(',', $r->email), $message, $sending_method);
  }
}

Functions

Namesort descending Description
_datereminder_messaging Implements hook_messaging().
_datereminder_send_reminder Send reminder for given node to given user request.