public function schedule() { foreach (API::getInstance()->getReports() as $report) { if (!$report['deleted'] && $report['period'] != ScheduledTime::PERIOD_NEVER) { $timezone = Site::getTimezoneFor($report['idsite']); $schedule = ScheduledTime::getScheduledTimeForPeriod($report['period']); $schedule->setHour($report['hour']); $schedule->setTimezone($timezone); $this->custom(API::getInstance(), 'sendReport', $report['idreport'], $schedule); } } }
public function getScheduledTasks(&$tasks) { $arbitraryDateInUTC = Date::factory('2011-01-01'); foreach (API::getInstance()->getReports() as $report) { if (!$report['deleted'] && $report['period'] != ScheduledTime::PERIOD_NEVER) { $midnightInSiteTimezone = date('H', Date::factory($arbitraryDateInUTC, Site::getTimezoneFor($report['idsite']))->getTimestamp()); $hourInUTC = (24 - $midnightInSiteTimezone + $report['hour']) % 24; $schedule = ScheduledTime::getScheduledTimeForPeriod($report['period']); $schedule->setHour($hourInUTC); $tasks[] = new ScheduledTask(API::getInstance(), 'sendReport', $report['idreport'], $schedule); } } }