<div class="left-column"> <div id="reminders"> <?php if ($queryResult !== NULL) { echo '<div id="reminder-web-result">'; echo $queryResult; echo '</div>'; } echo 'Your timezone is currently set to GMT<b>' . substr($session->userDetails['user_timezone'], 0, stripos($session->userDetails['user_timezone'], ":")) . '</b> (' . date('jS M \\a\\t g:iA', strtotime($curTime)) . ')<br />'; if (isset($existingReminders) && $existingReminders->numRows() > 0) { echo '<ul>'; while ($reminder = $existingReminders->getResultsArray()) { echo '<li class="clearfix" id="reminder-' . $reminder['reminder_id'] . '">' . '<a href="ajax.php?a=remove&id=' . $reminder['reminder_id'] . '" onclick="return removeReminder(\'' . $reminder['reminder_id'] . '\')" class="remove"></a>' . '<span class="reminder-data">' . $reminder['reminder_text'] . '</span>' . '<span class="reminder-meta">'; $timestamp = convertDefaultTime($session->userId, strtotime($reminder['reminder_timestamp'])); if ($timestamp !== false) { echo date('jS M \\a\\t g:iA', $timestamp); } else { echo date('jS M \\a\\t g:iA', strtotime($reminder['reminder_timestamp'])); } echo '</span></li>'; } echo '</ul>'; } else { echo '<div id="no-reminders">You currently have no reminders set!</div>'; } ?> </div>
function parseReminder($type, $command, $userId, $twitterId) { global $db; $reminderData = $this->reminder->parse($command); if (is_array($reminderData)) { $result = $db->query("SELECT IFNULL(user_timezone, '+00:00') AS timezone FROM " . DB_TBL_USERS . " WHERE user_id='" . $db->sanitize($userId) . "' LIMIT 1"); $results = $result->getRow(); // For relative times, we add the timezone to the timestamp if (trim($reminderData['flag']) === "in") { $reminderData['epoch'] = strtotime(substr($results['timezone'], 0, stripos($results['timezone'], ":")) . " hour", $reminderData['epoch']); } // Make sure the user isn't setting a reminder in the past $reminderSetInFuture = $reminderData['epoch'] > strtotime(substr($results['timezone'], 0, stripos($results['timezone'], ":")) . " hour 5 minutes", time()) ? true : false; $public = $type == "replies" ? 1 : 0; if ($reminderSetInFuture && $this->reminder->add($userId, $twitterId, $reminderData['reminder'], $command, $reminderData['flag'], $reminderData['epoch'], $public)) { // Send a successful DM! $reminderId = $db->fetchLastInsertId(); $convertedTimestamp = convertDefaultTime($userId, $reminderData['epoch']); $reminderData['epoch'] = $convertedTimestamp !== false ? $convertedTimestamp : $reminderData['epoch']; if ($type == "web") { return "Done! Your reminder (ID #{$reminderId}) has been set for " . date('l jS \\of F Y h:i:s A', $reminderData['epoch']); } else { return "Done! Your reminder (ID #{$reminderId}) has been set for " . date('l jS \\of F Y h:i:s A', $reminderData['epoch']) . " | See other reminders at http://mindmeto.com/list/"; } } else { if (!$reminderSetInFuture) { return "Sorry, you can't set a reminder for the past (or less than five minutes into the future). It'd create a time paradox!"; } else { return "Whoops! There was a problem setting your reminder. If this problem persists, please get in touch!"; } } // Now we delete the DM to save on space if (TWITTER_DELETE_DMS && $twitterId > -1) { $this->deleteDM(trim($twitterId)); } } else { // The reminder was not recognized. Send the user a regretful DM return "Whoops! I do not understand the command/reminder you just sent: " . $command; } return false; }