3) { error("schedule.php is already running. Exiting ($PCount)\n", $NoHTML = true); } $AS = check_perms('admin_schedule'); function run_all_in($Dir) { $Tasks = array_diff(scandir(SERVER_ROOT.'/sections/schedule/'.$Dir, 1), ['.', '..']); extract($GLOBALS); foreach ($Tasks as $Task) { $TimeStart = microtime(true); include($Dir.'/'.$Task); if ($ScheduleDebug) { echo $Dir.'/'.$Task.': '.number_format(microtime(true)-$TimeStart, 3).($AS?"
":"\n"); } } } if ((!isset($_REQUEST['key']) || $_REQUEST['key'] !== SCHEDULE_KEY) #&& (!isset($argv[1]) || $argv[1] !== SCHEDULE_KEY) && !$AS) { error(403); } if ($AS) { authorize(); View::show_header(); echo '
'; } $ASBreak = $AS ? '
' : "\n"; $DB->query(" SELECT `NextHour`, `NextDay`, `NextBiWeekly` FROM `schedule` "); list($Hour, $Day, $BiWeek) = $DB->next_record(); $NextHour = date('H'); $NextDay = date('d'); $NextBiWeek = (date('d') < 22 && date('d') >= 8) ? 22 : 8; $DB->query(" UPDATE `schedule` SET `NextHour` = $NextHour, `NextDay` = $NextDay, `NextBiWeekly` = $NextBiWeek "); $sqltime = sqltime(); echo "$sqltime $ASBreak"; // Run every time if (!(isset($_GET['notevery']) && $_GET['notevery'])) { run_all_in('every'); echo "Ran every-time functions $ASBreak"; } // Run every hour if ($Hour !== $NextHour || (isset($_GET['runhour']) && $_GET['runhour'])) { run_all_in('hourly'); echo "Ran hourly functions $ASBreak"; } // Run every day if ($Day !== $NextDay || (isset($_GET['runday']) && $_GET['runday'])) { run_all_in('daily'); echo "Ran daily functions $ASBreak"; } // Run every week if (($Day !== $NextDay && date('w') === 0) || (isset($_GET['runweek']) && $_GET['runweek'])) { run_all_in('weekly'); echo "Ran weekly functions $ASBreak"; } // Run twice per month if ($BiWeek !== $NextBiWeek || (isset($_GET['runbiweek']) && $_GET['runbiweek'])) { run_all_in('biweekly'); echo "Ran bi-weekly functions $ASBreak"; } // Run every month if (($BiWeek !== $NextBiWeek && $BiWeek === 8) || (isset($_GET['runmonth']) && $_GET['runmonth'])) { run_all_in('monthly'); echo "Ran monthly functions $ASBreak"; } // Run on request if (isset($_GET['runmanual']) && $_GET['runmanual']) { run_all_in('manually'); echo "Ran manual functions $ASBreak"; } if ($AS) { echo '
'; View::show_footer(); } else { echo "-------------------------\n\n"; }