private function _lastInThread($thread_id, $message_id = 0, $message_author = '', $message_timestamp = 0)
{
/* Get the last message in form or thread - when managing threads */
if ($message_id == 0) {
$sql = $this->_db->addLimitOffset('SELECT message_id, message_author, message_timestamp FROM ' . $this->_threads_table . ' WHERE message_thread = ' . (int) $thread_id . ' ORDER BY message_id DESC', array('limit' => 1));
try {
$last = $this->_db->selectOne($sql);
} catch (Horde_Db_Execution $e) {
throw new Agora_Exception($e->getMessage());
}
if (!empty($last)) {
extract($last);
}
}
$sql = 'UPDATE ' . $this->_threads_table . ' SET last_message_id = ?, last_message_author = ?, message_modifystamp = ? WHERE message_id = ?';
$values = array($message_id, $message_author, $message_timestamp, $thread_id);
try {
$this->_db->execute($sql, $values);
} catch (Horde_Db_Execution $e) {
throw new Agora_Exception($e->getMessage());
}
}