public static function formatReplies($result, $category = null) { $config = DiscussHelper::getConfig(); if (!$result) { return $result; } $my = JFactory::getUser(); $replies = array(); for ($i = 0; $i < count($result); $i++) { $row =& $result[$i]; $reply = DiscussHelper::getTable('Post'); $reply->bind($row); $response = new stdClass(); if ($row->user_id == 0 || $row->user_type == DISCUSS_POSTER_GUEST) { $response->id = '0'; $response->name = 'Guest'; // TODO: user the poster_name } else { $replier = JFactory::getUser($row->user_id); $response->id = $replier->id; $response->name = $replier->name; } //load porfile info and auto save into table if user is not already exist in discuss's user table. $creator = DiscussHelper::getTable('Profile'); $creator->load($response->id); $reply->user = $creator; $reply->content_raw = $row->content; $reply->isVoted = $row->isVoted; $reply->total_vote_cnt = $row->total_vote_cnt; $reply->title = DiscussHelper::wordFilter($reply->title); $reply->content = DiscussHelper::wordFilter($reply->content); // Legacy fix when switching from WYSIWYG editor to bbcode. $reply->content = EasyDiscussParser::html2bbcode($reply->content); // Parse bbcodes. $reply->content = self::parseContent($reply->content, true); // Parse @username links. $reply->content = DiscussHelper::getHelper('String')->nameToLink($reply->content); // set for vote status $reply->voted = $reply->hasVoted(); // get total vote for this reply $reply->totalVote = $reply->sum_totalvote; // get the 5 latest voters $voters = DiscussHelper::getVoters($row->id); $reply->voters = $voters->voters; $reply->shownVoterCount = $voters->shownVoterCount; $reply->minimize = DiscussHelper::getHelper('Post')->toMinimizePost($row->sum_totalvote); $reply->likesAuthor = DiscussHelper::getHelper('Likes')->getLikesHTML($row->id, null, null, $reply->getLikeAuthorsObject($row->id)); $reply->isLike = DiscussHelper::getHelper('Post')->isLiked($row->id); // get reply comments $commentLimit = $config->get('main_comment_pagination') ? $config->get('main_comment_pagination_count') : null; $comments = $reply->getComments($commentLimit); $reply->comments = false; if ($config->get('main_comment')) { $reply->comments = DiscussHelper::formatComments($comments); } // get reply comments count $reply->commentsCount = $reply->getTotalComments(); // @rule: Check for url references $reply->references = $reply->getReferences(); $reply->content = DiscussHelper::formatContent($reply); if ($config->get('main_content_trigger_replies')) { // Move aside the original content_raw $content_raw_temp = $reply->content_raw; // Add the br tags in the content, we do it here so that the content triggers's javascript will not get added with br tags // $reply->content_raw = DiscussHelper::bbcodeHtmlSwitcher( $reply, 'reply', false ); // process content plugins DiscussEventsHelper::importPlugin('content'); DiscussEventsHelper::onContentPrepare('reply', $reply); $reply->event = new stdClass(); $results = DiscussEventsHelper::onContentBeforeDisplay('reply', $reply); $reply->event->beforeDisplayContent = trim(implode("\n", $results)); $results = DiscussEventsHelper::onContentAfterDisplay('reply', $reply); $reply->event->afterDisplayContent = trim(implode("\n", $results)); // Assign the processed content back // $reply->content = $reply->content_raw; // Move back the original content_raw $reply->content_raw = $content_raw_temp; } $reply->access = $reply->getAccess($category); $replies[] = $reply; } return $replies; }
public function getMoreVoters($postid = null, $limit = null) { $disjax = new disjax(); $voteModel = $this->getModel('votes'); $total = $voteModel->getTotalVotes($postid); if (!empty($total)) { $voters = DiscussHelper::getVoters($postid, $limit); $msg = JText::sprintf('COM_EASYDISCUSS_VOTES_BY', $voters->voters); if ($voters->shownVoterCount < $total) { $limit += '5'; $msg .= '[<a href="javascript:void(0);" onclick="disjax.load(\'post\', \'getMoreVoters\', \'' . $postid . '\', \'' . $limit . '\');">' . JText::_('COM_EASYDISCUSS_MORE') . '</a>]'; } $disjax->assign('dc_reply_voters_' . $postid, $msg); } $disjax->send(); return; }