From 6854cb3f4d8219cf1829e32122eb2502a916eae9 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 1 Feb 2020 09:05:48 +0100 Subject: initial checkin --- schedule.php | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 schedule.php (limited to 'schedule.php') diff --git a/schedule.php b/schedule.php new file mode 100644 index 0000000..14fba26 --- /dev/null +++ b/schedule.php @@ -0,0 +1,91 @@ +query("SELECT r.*, t.*, u.* + FROM {reminders} r + INNER JOIN {users} u ON u.user_id = r.to_user_id + INNER JOIN {tasks} t ON r.task_id = t.task_id + INNER JOIN {projects} p ON t.project_id = p.project_id + WHERE t.is_closed = '0' + AND r.start_time < ? + AND r.last_sent + r.how_often < ? + ORDER BY r.reminder_id", array($now, $now) + ); + + while ($row = $db->fetchRow($get_reminders)) { + // So that the sender in emails will is the right project, not 'Default project' + // and also to get the projects default language, if needed. + $proj = new Project($row['project_id']); + $jabber_users = array(); + $email_users = array(); + + if (( $fs->prefs['user_notify'] == 1 || $fs->prefs['user_notify'] == 2 ) && ($row['notify_type'] == 1 || $row['notify_type'] == 3 )) { + $email_users[] = $row['email_address']; + } + + if (( $fs->prefs['user_notify'] == 1 || $fs->prefs['user_notify'] == 3 ) && ($row['notify_type'] == 2 || $row['notify_type'] == 3 )) { + $jabber_users[] = $row['jabber_id']; + } + + if (!empty($row['lang_code'])) { + $lang = $row['lang_code']; + } else if (!empty($proj->prefs['lang_code'])) { + $lang = $proj->prefs['lang_code']; + } else { + $lang = $fs->prefs['lang_code']; + } + + $subject = tL('notifyfromfs', $lang); + $message = $row['reminder_message']; + + // Pass the recipients and message onto the notification function + $notify->sendEmail($email_users, $subject, $message); + $notify->storeJabber($jabber_users, $subject, $message); + + // Update the database with the time sent + $update_db = $db->query("UPDATE {reminders} + SET last_sent = ? + WHERE reminder_id = ?", array(time(), $row['reminder_id'])); + } + + // send those stored notifications + $notify->sendJabber(); + unset($notify, $user); +} + +if (isset($conf['general']['reminder_daemon']) && ($conf['general']['reminder_daemon'] == 1)) { + send_reminders(); +} else { + die("Scheduled Reminding is disabled."); +} +?> -- cgit v1.2.3-70-g09d2