You are here

function datereminder_token_values in Date Reminder 6

Same name and namespace in other branches
  1. 6.2 datereminder.module \datereminder_token_values()

Implements hook_token().

Parameters

string $type: Type of tokens being requested

string $object: Associated object

array $options: Not used here

File

./datereminder.module, line 835
Support for reminders for nodes with dates.

Code

function datereminder_token_values($type, $object = NULL, $options = array()) {
  $values = array();
  if ($type == 'datereminder') {
    $r = $object;
    if ($r) {
      module_load_include('inc', 'datereminder', 'includes/date');
      $datefield = _datereminder_get_datefield($r);
      $tz = $r->user->timezone_name;
      if (!isset($tz)) {
        $tz = date_default_timezone_name(FALSE);
      }
      $next = $r->next;

      // We want then next-date tokens to show next occurrance after
      // the time this reminder will be sent. But if the reminder isn't
      // currently scheduled, use 'now'.
      if (isset($next)) {
        $next = _datereminder_internal_date_to_datetime($next);
      }
      else {
        $next = _datereminder_now();
      }
      $nd = _datereminder_get_occurance_after_date($datefield, $next);
      if (isset($nd)) {
        $nextdate = _datereminder_date_format_internal($nd);
        $dobj = date_create($nextdate, timezone_open('UTC'));
        date_timezone_set($dobj, timezone_open($tz));
        $values['next-date-short'] = date_format_date($dobj, 'short');
        $values['next-date-medium'] = date_format_date($dobj, 'medium');
        $values['next-date-long'] = date_format_date($dobj, 'long');
      }
      else {
        $values['next-date-short'] = t('Past');
        $values['next-date-medium'] = t('Past');
        $values['next-date-long'] = t('Past');
      }
    }
  }
  return $values;
}