You are here

function datereminder_token_values in Date Reminder 6.2

Same name and namespace in other branches
  1. 6 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 586
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_due = $r->next_due;

      // 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_due)) {
        $next_due = _datereminder_internal_date_to_datetime($next_due);
      }
      else {
        $next_due = _datereminder_now();
      }
      $dobj = _datereminder_get_occurance_after_date($datefield, $next_due);
      if (isset($dobj)) {
        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;
}