예제 #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
$query = prepare("SELECT *\n                    FROM reminder\n                   WHERE reminderActive = 1\n                     AND reminderAdvNoticeSent = 0\n                     AND NOW() > \n                         CASE\n                           WHEN reminderAdvNoticeInterval = 'Minute' THEN DATE_SUB(reminderTime, INTERVAL reminderAdvNoticeValue MINUTE)\n                           WHEN reminderAdvNoticeInterval = 'Hour'   THEN DATE_SUB(reminderTime, INTERVAL reminderAdvNoticeValue HOUR)\n                           WHEN reminderAdvNoticeInterval = 'Day'    THEN DATE_SUB(reminderTime, INTERVAL reminderAdvNoticeValue DAY)\n                           WHEN reminderAdvNoticeInterval = 'Week'   THEN DATE_SUB(reminderTime, INTERVAL reminderAdvNoticeValue WEEK)\n                           WHEN reminderAdvNoticeInterval = 'No'     THEN NULL\n                         END\n                 ");
$db->query($query);
while ($db->next_record()) {
    $reminder = new reminder();
    $reminder->read_db_record($db);
    //echo "<br>Adv: ".$reminder->get_id();
    $current_user = new person();
    $current_user->load_current_user($db->f('reminderCreatedUser'));
    singleton("current_user", $current_user);
    if (!$reminder->is_alive()) {
        $reminder->deactivate();
    } else {
        $reminder->mail_advnotice();
    }
}
// do reminders
$query = prepare("SELECT *\n                    FROM reminder\n                   WHERE reminderActive = 1\n                     AND (reminderTime IS NULL OR NOW() > reminderTime)\n                 ");
$db->query($query);
while ($db->next_record()) {
    $reminder = new reminder();
    $reminder->read_db_record($db);
    //echo "<br>Rem: ".$reminder->get_id();
    $current_user = new person();
    $current_user->load_current_user($db->f('reminderCreatedUser'));
    singleton("current_user", $current_user);
    if (!$reminder->is_alive()) {
        $reminder->deactivate();
    } else {
        $reminder->mail_reminder();
    }
}
예제 #3
0
 public static function get_list($_FORM)
 {
     $filter = reminder::get_list_filter($_FORM);
     if (is_array($filter) && count($filter)) {
         $f = " WHERE " . implode(" AND ", $filter);
     }
     $db = new db_alloc();
     $q = "SELECT reminder.*,reminderRecipient.*,token.*,tokenAction.*, reminder.reminderID as rID\n            FROM reminder\n       LEFT JOIN reminderRecipient ON reminder.reminderID = reminderRecipient.reminderID\n       LEFT JOIN token ON reminder.reminderHash = token.tokenHash\n       LEFT JOIN tokenAction ON token.tokenActionID = tokenAction.tokenActionID\n           " . $f . "\n        GROUP BY reminder.reminderID\n        ORDER BY reminderTime,reminderType";
     $db->query($q);
     while ($row = $db->row()) {
         $reminder = new reminder();
         $reminder->read_db_record($db);
         $rows[$row['reminderID']] = $row;
     }
     return $rows;
 }