X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Freminder.inc.php;h=72b987d26bdc6f30320d303fc70655ca44b4bff1;hb=f0a52f1beb8dc550526ffaddd33144acccfff534;hp=346d97e1d2185e2051418a14123c3697c7156be3;hpb=9e1816c7666767755abbc24f6a0df290efff81b6;p=platal.git diff --git a/include/reminder.inc.php b/include/reminder.inc.php index 346d97e..72b987d 100644 --- a/include/reminder.inc.php +++ b/include/reminder.inc.php @@ -1,6 +1,6 @@ user = &$user; @@ -69,12 +69,12 @@ abstract class Reminder // Updates (or creates) the reminder line for the pair (|user|, |reminder_id|) // using the |status| as status, and the |next_ask| as the delay between now // and the next ask (if any). - private static function UpdateStatus($user_id, $type_id, $status, $next_ask) + private static function UpdateStatus($uid, $type_id, $status, $next_ask) { - XDB::execute('REPLACE INTO reminder - SET uid = {?}, type_id = {?}, status = {?}, - remind_last = NOW(), remind_next = FROM_UNIXTIME({?})', - $user_id, $type_id, $status, + XDB::execute('INSERT INTO reminder (uid, type_id, status, remind_last, remind_next) + VALUES ({?}, {?}, {?}, NOW(), {?}) + ON DUPLICATE KEY UPDATE status = VALUES(status), remind_last = VALUES(remind_last), remind_next = VALUES(remind_next)', + $uid, $type_id, $status, ($next_ask > 0 ? time() + $next_ask * 24 * 60 * 60 : null)); } @@ -103,7 +103,7 @@ abstract class Reminder // Displays a reduced version of the reminder and notifies that the action // has been taken into account. - public function NotifiesAction(&$page) + public function NotifiesAction($page) { pl_content_headers("text/html"); $page->changeTpl('reminder/notification.tpl', NO_SKIN); @@ -112,7 +112,7 @@ abstract class Reminder // Displays the reminder as a standalone html snippet. It should be used // when the reminder is the only output of a page. - public function DisplayStandalone(&$page, $previous_reminder = null) + public function DisplayStandalone($page, $previous_reminder = null) { pl_content_headers("text/html"); $page->changeTpl('reminder/base.tpl', NO_SKIN); @@ -123,7 +123,7 @@ abstract class Reminder } // Prepares the display by assigning template variables. - public function Prepare(&$page) + public function Prepare($page) { $page->assign_by_ref('reminder', $this); } @@ -153,19 +153,19 @@ abstract class Reminder // Static status update methods ------------------------------------------- - // Marks the candidate reminder as having been accepted for user |user_id|. + // Marks the candidate reminder as having been accepted for user |uid|. // It is intended to be used when a reminder box has been bypassed, and when // it should behave as if the user had clicked on 'yes'. - protected static function MarkCandidateAsAccepted($user_id, $candidate) + protected static function MarkCandidateAsAccepted($uid, $candidate) { - Reminder::UpdateStatus($user_id, $candidate['type_id'], + Reminder::UpdateStatus($uid, $candidate['type_id'], 'yes', $candidate['remind_delay_yes']); } // Static factories ------------------------------------------------------- // Returns a chosen class using the user data from |user|, and from the database. - public static function GetCandidateReminder(User &$user) + public static function GetCandidateReminder(User $user) { $res = XDB::query('SELECT rt.*, r.status, r.remind_last FROM reminder_type AS rt @@ -194,7 +194,7 @@ abstract class Reminder // Returns an instantiation of the reminder class which name is |name|, using // user data from |user|, and from the database. - public static function GetByName(User &$user, $name) + public static function GetByName(User $user, $name) { if (!($class = self::GetClassName($name))) { return null;