| @@ -49,8 +49,39 @@ | ||
| 49 | 49 | return $this; |
| 50 | 50 | } |
| 51 | 51 | |
| 52 | 52 | /** |
| 53 | + * Checks whether some reminder object properties should be adjusted | |
| 54 | + * in case of an important reminder not yet displayed, but expired. | |
| 55 | + * This is helpful in order to allow the dispatching of the notification. | |
| 56 | + * | |
| 57 | + * @param object $reminder the reminder object to parse. | |
| 58 | + * | |
| 59 | + * @return void | |
| 60 | + * | |
| 61 | + * @since 1.16.5 (J) - 1.6.5 (WP) | |
| 62 | + */ | |
| 63 | + public function parseReminderImportance($reminder) | |
| 64 | + { | |
| 65 | + if (!is_object($reminder) || empty($reminder->important) || $reminder->displayed) { | |
| 66 | + return; | |
| 67 | + } | |
| 68 | + | |
| 69 | + if (is_string($reminder->duedate) && strcasecmp($reminder->duedate, 'now')) { | |
| 70 | + // must be a date string | |
| 71 | + if (strtotime($reminder->duedate) < time()) { | |
| 72 | + // let the reminder be dispatched immediately | |
| 73 | + $reminder->duedate = 'now'; | |
| 74 | + return; | |
| 75 | + } | |
| 76 | + } elseif (($reminder->duedate instanceof DateTime) && $dtime->getTimestamp() < time()) { | |
| 77 | + // let the reminder be dispatched immediately | |
| 78 | + $reminder->duedate = 'now'; | |
| 79 | + return; | |
| 80 | + } | |
| 81 | + } | |
| 82 | + | |
| 83 | + /** | |
| 53 | 84 | * Returns the URL to build the notification display data. |
| 54 | 85 | * Method is declared as protected. |
| 55 | 86 | * Checks if the reminder exists and returns the default build URL. |
| 56 | 87 | * |