Agora_Driver::_lastInForum PHP Method

_lastInForum() private method

Update lastMessage in a Forum
private _lastInForum ( integer $forum_id, integer $message_id, string $message_author = '', integer $message_timestamp )
$forum_id integer Forum to update
$message_id integer Last message id
$message_author string Last message author
$message_timestamp integer Last message timestamp
    private function _lastInForum($forum_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 forum_id = ' . (int) $forum_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->_forums_table . ' SET last_message_id = ?, last_message_author = ?, last_message_timestamp = ? WHERE forum_id = ?';
        $values = array($message_id, $message_author, $message_timestamp, $forum_id);
        try {
            $this->_db->execute($sql, $values);
        } catch (Horde_Db_Execution $e) {
            throw new Agora_Exception($e->getMessage());
        }
        $this->_cache->expire('agora_forum_' . $forum_id, $GLOBALS['conf']['cache']['default_lifetime']);
    }