You are here

function _notify_next_notificaton in Notify 7

Same name and namespace in other branches
  1. 8 notify.module \_notify_next_notificaton()
  2. 2.0.x notify.module \_notify_next_notificaton()
  3. 1.0.x notify.module \_notify_next_notificaton()

Compute the next time a notification shall be sent by adding to $send_last if required. Update $cron_next if it is has been reset (= 0), otherwise leave it to caller.

Parameters

int $send_last: timestamp of last notification

Return value

int -1 never, 0 send instantly, else next time to notify.

2 calls to _notify_next_notificaton()
notify_admin_queue in ./notify.admin.inc
Menu callback, show admin list of queue status.
notify_cron in ./notify.module
Implements hook_cron().

File

./notify.module, line 342
Notify module sends e-mail digests of new content and comments.

Code

function _notify_next_notificaton($send_last) {
  $period = variable_get('notify_period', 86400);

  // Two special cases: Never and instantly.
  if ($period < 0) {
    return -1;
  }
  elseif (!$period) {
    return 0;
  }
  $next_time_to_send = $send_last + $period;
  if ($period < 86400) {
    if (REQUEST_TIME >= $next_time_to_send) {
      return 0;
    }
    else {
      return $next_time_to_send;
    }
  }

  // Interval >= 1 day.
  $cron_next = variable_get('notify_cron_next', 0);
  if (!$cron_next) {
    $cron_next = _notify_cron_next($next_time_to_send);
    variable_set('notify_cron_next', $cron_next);
  }
  return $cron_next;
}