function get_cal_reminders() { // Get persons reminders $query = prepare("SELECT * \n FROM reminder\n JOIN reminderRecipient ON reminderRecipient.reminderID = reminder.reminderID\n WHERE personID = %d\n AND (reminderRecuringInterval = 'No' OR (reminderRecuringInterval != 'No' AND reminderActive))\n GROUP BY reminder.reminderID", $this->person->get_id()); $this->db->query($query); $reminders = array(); while ($row = $this->db->row()) { $reminder = new reminder(); $reminder->read_db_record($this->db); if ($reminder->is_alive()) { $reminderTime = format_date("U", $reminder->get_value("reminderTime")); // If repeating reminder if ($reminder->get_value('reminderRecuringInterval') != "No" && $reminder->get_value('reminderRecuringValue') != 0) { $interval = $reminder->get_value('reminderRecuringValue'); $intervalUnit = $reminder->get_value('reminderRecuringInterval'); while ($reminderTime < format_date("U", $this->last_date) + 86400) { $row["reminderTime"] = $reminderTime; $reminders[date("Y-m-d", $reminderTime)][] = $row; $reminderTime = $reminder->get_next_reminder_time($reminderTime, $interval, $intervalUnit); } // Else if once off reminder } else { $row["reminderTime"] = $reminderTime; $reminders[date("Y-m-d", $reminderTime)][] = $row; } } } return $reminders; }
case 4: // save and return to list if ($_POST["reminder_save"] || $_POST["reminder_update"]) { $recipient_keys = $_POST["reminder_recipient"]; // make 24 hour with 12am = 0 -> 11am = 11 -> 12pm = 12 -> 11pm = 23 if ($_POST["reminder_hour"] == 12) { $_POST["reminder_hour"] = 0; } if ($_POST["reminder_meridian"] == "pm") { $_POST["reminder_hour"] += 12; } $reminder = new reminder(); if (isset($_POST["reminder_update"])) { $reminder->set_id($_POST["reminder_id"]); $reminder->select(); if ($reminder->get_value("reminderHash")) { $token = new token(); $token->set_hash($reminder->get_value("reminderHash"), false); if ($token->get_value("tokenActionID") == 3) { $reminder->set_value("reminderTime", ""); $no = true; } } } $reminder->set_value('reminderType', $parentType); $reminder->set_value('reminderLinkID', $parentID); $reminder->set_value('reminderModifiedUser', $current_user->get_id()); $reminder->set_modified_time(); $no or $reminder->set_value('reminderTime', $_POST["reminder_date"] . " " . $_POST["reminder_hour"] . ":" . $_POST["reminder_minute"] . ":00"); $reminder->set_value('reminderHash', $_POST["reminderHash"]); if (!$_POST["reminder_recuring_value"]) {
function edit_reminder($commands) { $id = $commands["reminder"]; $options = $commands; $reminder = new reminder(); if ($id and $id != "new") { $reminder->set_id($id); $reminder->select(); } else { if ($id == "new") { // extra sanity checks, partially filled in reminder isn't much good if (!$options['date'] || !$options['subject'] || !$options['recipients']) { $status[] = "err"; $message[] = "Missing one of date, subject or recipients."; return array($status, $message); } if ($options['task']) { $reminder->set_value('reminderType', 'task'); $reminder->set_value('reminderLinkID', $options['task']); } else { if ($options['project']) { $reminder->set_value('reminderType', 'project'); $reminder->set_value('reminderLinkID', $options['project']); } else { if ($options['client']) { $reminder->set_value('reminderLinkID', $options['client']); $reminder->set_value('reminderType', 'client'); } } } } } // Tear apart the frequency bits if ($options['frequency']) { list($freq, $units) = sscanf($options['frequency'], "%d%c"); $freq_units = array('h' => 'Hour', 'd' => 'Day', 'w' => 'Week', 'm' => 'Month', 'y' => 'Year'); $options['frequency'] = $freq; $options['frequency_units'] = $freq_units[strtolower($units)]; } if ($options['notice']) { list($freq, $units) = sscanf($options['notice'], "%d%c"); $freq_units = array('h' => 'Hour', 'd' => 'Day', 'w' => 'Week', 'm' => 'Month', 'y' => 'Year'); $options['notice'] = $freq; $options['notice_units'] = $freq_units[strtolower($units)]; } $fields = $this->get_fields("reminder"); foreach ($fields as $s => $d) { if ($options[$s]) { $reminder->set_value($d[0], $options[$s]); } } if (!$reminder->get_value("reminderRecuringInterval")) { $reminder->set_value("reminderRecuringInterval", "No"); } if (!$reminder->get_value("reminderAdvNoticeInterval")) { $reminder->set_value("reminderAdvNoticeInterval", "No"); } $reminder->save(); // Deal with recipients if ($options['recipients']) { list($_x, $recipients) = $reminder->get_recipient_options(); if ($options['recipients']) { $recipients = array_unique(array_merge($recipients, $options['recipients'])); } if ($options['recipients_remove']) { $recipients = array_diff($recipients, $options['recipients_remove']); } $reminder->update_recipients($recipients); } if (is_object($reminder) && $reminder->get_id()) { $status[] = "yay"; $message[] = "Reminder " . $reminder->get_id() . " saved."; } else { $status[] = "err"; $message[] = "Reminder not saved."; } return array($status, $message); }