function datereminder_token_values in Date Reminder 6
Same name and namespace in other branches
- 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;
}