예제 #1
0
 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;
 }
예제 #2
0
 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"]) {
예제 #3
0
 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);
 }