getConnection(); $sql = "SELECT note_id, note_text, note_timestamp FROM notes WHERE user_id = :user_id ORDER BY note_timestamp DESC"; $query = $database->prepare($sql); $query->execute(array(':user_id' => Session::get('user_id'))); // fetchAll() is the PDO method that gets all result rows $notes = $query->fetchAll(); // Add markdown HTML to each note require_once __DIR__ . '/../libs/SimpleMarkdown.php'; foreach ($notes as &$note) { $note->note_html = SimpleMarkdown::parse($note->note_text); } return $notes; } /** * Get a single note * @param int $note_id id of the specific note * @return object a single object (the result) */ public static function getNote($note_id) { $database = DatabaseFactory::getFactory()->getConnection(); $sql = "SELECT note_id, note_text, note_timestamp FROM notes WHERE user_id = :user_id AND note_id = :note_id LIMIT 1"; $query = $database->prepare($sql); $query->execute(array(':user_id' => Session::get('user_id'), ':note_id' => $note_id)); $result = $query->fetch(); // Add markdown HTML if ($result) { require_once __DIR__ . '/../libs/SimpleMarkdown.php'; $result->note_html = SimpleMarkdown::parse($result->note_text); } return $result ? $result : null; } /** * Set a note (create a new one) * @param string $note_text note text that will be created * @return bool feedback (was the note created properly ?) */ public static function createNote($note_text) { if (!$note_text || strlen($note_text) == 0) { Session::add('feedback_negative', Text::get('FEEDBACK_NOTE_CREATION_FAILED')); return false; } $database = DatabaseFactory::getFactory()->getConnection(); $sql = "INSERT INTO notes (note_text, user_id) VALUES (:note_text, :user_id)"; $query = $database->prepare($sql); $query->execute(array(':note_text' => $note_text, ':user_id' => Session::get('user_id'))); if ($query->rowCount() == 1) { return true; } // default return Session::add('feedback_negative', Text::get('FEEDBACK_NOTE_CREATION_FAILED')); return false; } /** * Update an existing note * @param int $note_id id of the specific note * @param string $note_text new text of the specific note * @return bool feedback (was the update successful ?) */ public static function updateNote($note_id, $note_text) { if (!$note_id || !$note_text) { return false; } $database = DatabaseFactory::getFactory()->getConnection(); $sql = "UPDATE notes SET note_text = :note_text WHERE note_id = :note_id AND user_id = :user_id LIMIT 1"; $query = $database->prepare($sql); $query->execute(array(':note_id' => $note_id, ':note_text' => $note_text, ':user_id' => Session::get('user_id'))); if ($query->rowCount() == 1) { return true; } Session::add('feedback_negative', Text::get('FEEDBACK_NOTE_EDITING_FAILED')); return false; } /** * Delete a specific note * @param int $note_id id of the note * @return bool feedback (was the note deleted properly ?) */ public static function deleteNote($note_id) { if (!$note_id) { return false; } $database = DatabaseFactory::getFactory()->getConnection(); $sql = "DELETE FROM notes WHERE note_id = :note_id AND user_id = :user_id LIMIT 1"; $query = $database->prepare($sql); $query->execute(array(':note_id' => $note_id, ':user_id' => Session::get('user_id'))); if ($query->rowCount() == 1) { return true; } // default return Session::add('feedback_negative', Text::get('FEEDBACK_NOTE_DELETION_FAILED')); return false; } }