/** * Display comments in a discussion since a particular CommentID. * * @since 2.0.0 * @access public * * @param int $DiscussionID Unique discussion ID * @param int $LastCommentID Only shows comments posted after this one */ public function getNew($DiscussionID, $LastCommentID = 0) { $this->setData('Discussion', $this->DiscussionModel->getID($DiscussionID), true); // Check permissions. $this->permission('Vanilla.Discussions.View', true, 'Category', $this->Discussion->PermissionCategoryID); $this->setData('CategoryID', $this->CategoryID = $this->Discussion->CategoryID, true); // Get the comments. $Comments = $this->CommentModel->getNew($DiscussionID, $LastCommentID)->result(); $this->setData('Comments', $Comments, true); // Set the data. if (count($Comments) > 0) { $LastComment = $Comments[count($Comments) - 1]; // Mark the comment read. $this->setData('Offset', $this->Discussion->CountComments, true); $this->CommentModel->setWatch($this->Discussion, $this->Discussion->CountComments, $this->Discussion->CountComments, $this->Discussion->CountComments); $LastCommentID = $this->json('LastCommentID'); if (is_null($LastCommentID) || $LastComment->CommentID > $LastCommentID) { $this->json('LastCommentID', $LastComment->CommentID); } } else { $this->setData('Offset', $this->CommentModel->getOffset($LastCommentID), true); } $this->View = 'comments'; $this->render(); }