Exemple #1
0
 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;
 }
Exemple #2
0
 /**
  * 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)));
 }