public function getMessage($message_id)
{
$message = $this->_cache->get('agora_msg' . $message_id, $GLOBALS['conf']['cache']['default_lifetime']);
if ($message) {
return unserialize($message);
}
$sql = 'SELECT message_id, forum_id, message_thread, parents, ' . 'message_author, message_subject, body, message_seq, ' . 'message_timestamp, view_count, locked, attachments FROM ' . $this->_threads_table . ' WHERE message_id = ?';
try {
$message = $this->_db->selectOne($sql, array($message_id));
} catch (Horde_Db_Exception $e) {
throw new Agora_Exception($e->getMessage());
}
if (empty($message)) {
throw new Horde_Exception_NotFound(sprintf(_("Message ID \"%d\" not found"), $message_id));
}
$message['message_subject'] = $this->convertFromDriver($message['message_subject']);
$message['body'] = $this->convertFromDriver($message['body']);
if ($message['message_thread'] == 0) {
$message['message_thread'] = $message_id;
}
/* Is author a moderator? */
if (isset($this->_forum['moderators']) && in_array($message['message_author'], $this->_forum['moderators'])) {
$message['message_author_moderator'] = 1;
}
$this->_cache->set('agora_msg' . $message_id, serialize($message));
return $message;
}