public function get($feedId = null) { if (!$feedId) { $feedId = $this->request->get('feed_id'); $object = []; list($total, $comments) = \Comment_Service_Comment::instance()->get('cmt.*', ['cmt.type_id = \'app\' AND cmt.item_id = \'' . (int) $feedId . '\'']); foreach ($comments as $comment) { $object[] = new Comment\Object($comment); } } else { $comment = \Comment_Service_Comment::instance()->getComment($feedId); $object = new Comment\Object($comment); } return $object; }
/** * Controller */ public function process() { $aFeed = $this->getParam('aFeed'); $aFeed['feed_id'] = $aFeed['item_id']; $aFeed['is_view_item'] = true; $sFeedType = isset($aFeed['feed_display']) ? $aFeed['feed_display'] : null; $bForceLoad = false; if (PHPFOX_IS_AJAX && Phpfox_Module::instance()->getFullControllerName() == 'photo.view') { // $bForceLoad = true; } if ((!PHPFOX_IS_AJAX || $bForceLoad) && $sFeedType == 'view' && Phpfox::isModule('comment') && Phpfox::getParam('comment.load_delayed_comments_items')) { // Prepare the param $sDelayedParam = urlencode(json_encode(array('item_id' => $aFeed['item_id'], 'total_like' => $aFeed['total_like'], 'like_type_id' => $aFeed['like_type_id'], 'total_comment' => $aFeed['total_comment'], 'comment_type_id' => $aFeed['comment_type_id'], 'privacy' => $aFeed['privacy'], 'feed_link' => $aFeed['feed_link'], 'feed_title' => $aFeed['feed_title'], 'feed_display' => $aFeed['feed_display']))); $this->template()->assign(array('sDelayedParam' => $sDelayedParam, 'sDelayedParamId' => rand(100, 999))); return 'block'; } else { if (defined('PHPFOX_IS_AJAX') && PHPFOX_IS_AJAX && Phpfox_Ajax::instance()->get('delayedParam') != null) { $aFeed = json_decode(urldecode(Phpfox_Ajax::instance()->get('delayedParam'))); } } if (Phpfox::isModule('comment') && Phpfox::getUserParam('comment.can_delete_comment_on_own_item') && ($iOwnerDeleteCmt = $this->request()->getInt('ownerdeletecmt')) && isset($aFeed['user_id']) && $aFeed['user_id'] == Phpfox::getUserId()) { if (Phpfox::getService('comment.process')->deleteInline($iOwnerDeleteCmt, $aFeed['comment_type_id'], true)) { $this->url()->forward($aFeed['feed_link'], Phpfox::getPhrase('comment.comment_successfully_deleted')); } } $bCanPostComment = true; if (isset($aFeed['comment_privacy']) && $aFeed['user_id'] != Phpfox::getUserId() && (Phpfox::isModule('privacy') && !Phpfox::getUserParam('privacy.can_comment_on_all_items'))) { switch ($aFeed['comment_privacy']) { case 1: if ((int) $aFeed['feed_is_friend'] <= 0) { $bCanPostComment = false; } break; case 2: if ((int) $aFeed['feed_is_friend'] > 0) { $bCanPostComment = true; } else { if (!Friend_Service_Friend::instance()->isFriendOfFriend($aFeed['user_id'])) { $bCanPostComment = false; } } break; case 3: $bCanPostComment = false; break; } } $aFeed['can_post_comment'] = $bCanPostComment; if (isset($aFeed['total_like']) && (int) $aFeed['total_like'] > 0 && Phpfox::isModule('like')) { $aFeed['likes'] = Phpfox::getService('like')->getLikesForFeed($aFeed['like_type_id'], $aFeed['item_id'], (int) $aFeed['feed_is_liked'] > 0 ? true : false, Phpfox::getParam('feed.total_likes_to_display')); } $bHasBeenMarked = Phpfox::isModule('like') ? Phpfox::getService('like')->hasBeenMarked(2, isset($aFeed['type_id']) ? $aFeed['type_id'] : $aFeed['like_type_id'], $aFeed['item_id']) : false; /* Quick check without the actions*/ $aFeed['bShowEnterCommentBlock'] = false; if (Phpfox::isModule('like') && (isset($aFeed['total_like']) && $aFeed['total_like'] > 0 && Phpfox::getParam('like.show_user_photos') == false || isset($aFeed['total_comment']) && $aFeed['total_comment'] > 0 || Phpfox::getParam('like.allow_dislike') && Phpfox::isModule('like') && $bHasBeenMarked)) { $aFeed['bShowEnterCommentBlock'] = true; } $iPageLimit = 2; $mPager = null; $iCommentId = null; $bIsViewingComments = false; if (Phpfox::isModule('comment') && $sFeedType != 'mini') { if ((int) $aFeed['total_comment'] > 0) { if ($sFeedType == 'view') { $iPageLimit = Phpfox::getParam('comment.comment_page_limit'); if ($this->request()->get('stream-mode')) { $iPageLimit = $iPageLimit + 1; if (!defined('PHPFOX_FEED_STREAM_MODE')) { define('PHPFOX_FEED_STREAM_MODE', true); } } $mPager = $aFeed['total_comment']; } if ($this->request()->getInt('comment')) { $iCommentId = $this->request()->getInt('comment'); $bIsViewingComments = true; } $aFeed['comments'] = Comment_Service_Comment::instance()->getCommentsForFeed($aFeed['comment_type_id'], $aFeed['item_id'], $iPageLimit, $mPager, $iCommentId); } } if ($sFeedType == 'view') { Phpfox_Pager::instance()->set(array('ajax' => 'comment.viewMoreFeed', 'page' => Phpfox_Request::instance()->getInt('page'), 'size' => $iPageLimit, 'count' => $mPager, 'phrase' => Phpfox::isModule('comment') ? Phpfox::getPhrase('comment.view_previous_comments') : '', 'icon' => 'misc/comment.png', 'aParams' => array('comment_type_id' => $aFeed['comment_type_id'], 'item_id' => $aFeed['item_id'], 'append' => true, 'pagelimit' => $iPageLimit, 'total' => $mPager))); } $aFeed['type_id'] = !empty($aFeed['type_id']) ? $aFeed['type_id'] : (isset($aFeed['report_module']) ? $aFeed['report_module'] : ''); if ($aFeed['type_id'] == 'forum_reply') { $aFeed['type_id'] = 'forum_post'; } if (!isset($aFeed['feed_like_phrase']) && Phpfox::isModule('like')) { Feed_Service_Feed::instance()->getPhraseForLikes($aFeed); } $this->template()->assign(array('aFeed' => $aFeed, 'sFeedType' => $sFeedType, 'bIsViewingComments' => $bIsViewingComments, 'feedJson' => json_encode($aFeed))); }