You are here

public function UltimateCronCrontabScheduler::formatLabelVerbose in Ultimate Cron 7.2

Label for schedule.

Overrides UltimateCronPlugin::formatLabelVerbose

File

plugins/ultimate_cron/scheduler/crontab.class.php, line 32
Crontab cron job scheduler for Ultimate Cron.

Class

UltimateCronCrontabScheduler
Crontab scheduler.

Code

public function formatLabelVerbose($job) {
  $settings = $job
    ->getSettings($this->type);
  $job->log_entry = isset($job->log_entry) ? $job->log_entry : $job
    ->loadLatestLogEntry();
  $parsed = '';
  $next_schedule = NULL;
  $time = REQUEST_TIME;
  $skew = $this
    ->getSkew($job);
  foreach ($settings['rules'] as $rule) {
    $cron = CronRule::factory($rule, $time, $skew);
    $parsed .= $cron
      ->parseRule() . "\n";
    $result = $cron
      ->getNextSchedule();
    $next_schedule = is_null($next_schedule) || $next_schedule > $result ? $result : $next_schedule;
    $result = $cron
      ->getLastSchedule();

    // If job didn't run at its last schedule, check if the catch up time
    // will triger it, and adjust $next_schedule accordingly.
    if ($job->log_entry->start_time < $result && $time < $result + $settings['catch_up']) {
      $result = floor($time / 60) * 60 + 60;
      $next_schedule = $next_schedule > $result ? $result : $next_schedule;
    }
  }
  $parsed .= t('Next scheduled run at @datetime', array(
    '@datetime' => format_date($next_schedule, 'custom', 'Y-m-d H:i:s'),
  ));
  return $parsed;
}