public function commentsAction()
 {
     $request = $this->getRequest();
     $pin_id = $request->getRequest('filter_id');
     $pin_info = Model_Pins::getPin($pin_id);
     if (!$pin_info) {
         $this->redirect($this->getRequest()->getBaseUrl() . $this->getRequest()->getModule() . '/pins/');
     }
     $this->view->comments = Model_Comments::getComments(array('filter_pin_id' => $pin_id, 'sort' => 'ASC', 'order' => 'pins_comments.comment_id'));
 }
Exemple #2
0
 public static function delete($pin_id)
 {
     $db = JO_Db::getDefaultAdapter();
     $pin_info = self::getPin($pin_id);
     if (!$pin_info) {
         return false;
     }
     if ($pin_info['store'] == 's3') {
         self::deleteImagesAmazon($pin_info['image']);
     } else {
         $model_image = new Helper_Images();
         $model_image->deleteImages($pin_info['image']);
     }
     $comments = Model_Comments::getComments(array('filter_pin_id' => $pin_id));
     if ($comments) {
         foreach ($comments as $comment) {
             $db->delete('pins_comments', array('comment_id = ?' => $comment['comment_id']));
             $db->delete('pins_reports_comments', array('comment_id = ?' => $comment['comment_id']));
         }
     }
     $del = $db->delete('pins', array('pin_id = ?' => $pin_id));
     if (!$del) {
         return false;
     } else {
         $latest_pins = array();
         $pins_query = $db->select()->from('pins', array('pin_id', 'pin_id'))->where('user_id = ?', $pin_info['user_id'])->order('pin_id DESC')->limit(15);
         $latest = $db->fetchPairs($pins_query);
         if ($latest) {
             $latest_pins = $latest;
         }
         $update = array('pins' => new JO_Db_Expr('pins-1'), 'latest_pins' => implode(',', $latest_pins));
         $update['likes'] = new JO_Db_Expr('likes-' . (int) $db->fetchOne($db->select()->from('pins_likes', 'COUNT(like_id)')->where('pin_id = ?', $pin_id)));
         $db->update('users', $update, array('user_id=?' => $pin_info['user_id']));
         $latest_pins = array();
         $pins_query = $db->select()->from('pins', array('pin_id', 'pin_id'))->where('board_id = ?', $pin_info['board_id'])->order('pin_id DESC')->limit(15);
         $latest = $db->fetchPairs($pins_query);
         if ($latest) {
             $latest_pins = $latest;
         }
         $update = array('pins' => new JO_Db_Expr('pins-1'), 'latest_pins' => implode(',', $latest_pins));
         $update['latest_pins'] = implode(',', $latest_pins);
         $db->update('boards', $update, array('board_id=?' => $pin_info['board_id']));
         $db->delete('pins_invert', array('pin_id = ?' => $pin_id));
         $db->delete('pins_likes', array('pin_id = ?' => $pin_id));
         $db->delete('pins_reports', array('pin_id = ?' => $pin_id));
         $db->delete('pins_views', array('pin_id = ?' => $pin_id));
         $db->delete('users_history', array('pin_id = ?' => $pin_id));
         self::deleteCache($pin_info);
         return true;
     }
 }
Exemple #3
0
 public function commentsAction()
 {
     if ($this->session->get('successfu_edite')) {
         $this->view->successfu_edite = true;
         $this->session->clear('successfu_edite');
     }
     $request = $this->getRequest();
     $url = '';
     if ($request->getQuery('filter_id')) {
         $url .= '&filter_id=' . $request->getQuery('filter_id');
     }
     if ($request->getQuery('filter_name')) {
         $url .= '&filter_name=' . $request->getQuery('filter_name');
     }
     if ($request->getQuery('filter_username')) {
         $url .= '&filter_username='******'filter_username');
     }
     if ($request->getQuery('filter_user_id')) {
         $url .= '&filter_user_id=' . $request->getQuery('filter_user_id');
     }
     if ($request->getQuery('filter_price')) {
         $url .= '&filter_price=' . $request->getQuery('filter_price');
     }
     if ($request->getQuery('filter_sales')) {
         $url .= '&filter_sales=' . $request->getQuery('filter_sales');
     }
     if ($request->getQuery('filter_profit')) {
         $url .= '&filter_profit=' . $request->getQuery('filter_profit');
     }
     if ($request->getQuery('filter_free_request')) {
         $url .= '&filter_free_request=' . $request->getQuery('filter_free_request');
     }
     if ($request->getQuery('filter_free_file')) {
         $url .= '&filter_free_file=' . $request->getQuery('filter_free_file');
     }
     if ($request->getQuery('filter_weekly')) {
         $url .= '&filter_weekly=' . $request->getQuery('filter_weekly');
     }
     if ($request->getQuery('sort')) {
         $url .= '&sort=' . $request->getQuery('sort');
     }
     if ($request->getQuery('order')) {
         $url .= '&order=' . $request->getQuery('order');
     }
     if ($request->getQuery('page')) {
         $url .= '&page=' . $request->getQuery('page');
     }
     $this->view->page_num = $page = $this->getRequest()->getRequest('p', 1);
     $data = array('start' => $page * JO_Registry::get('admin_limit') - JO_Registry::get('admin_limit'), 'limit' => JO_Registry::get('admin_limit'), 'filter_item_id' => $request->getQuery('id'));
     $this->view->comments = array();
     $comments = Model_Comments::getComments($data);
     if ($comments) {
         foreach ($comments as $comment) {
             $comment['datetime'] = JO_Date::getInstance($comment['datetime'], 'dd MM yy H:i:s', true)->toString();
             $comment['href'] = WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=items&action=comments&item_id=' . $comment['item_id'] . '&filter=' . ($comment['reply_to'] ? $comment['reply_to'] : $comment['id']));
             $this->view->comments[] = $comment;
         }
     }
     $total_records = Model_Comments::getTotalComments($data);
     $this->view->total_pages = ceil($total_records / JO_Registry::get('admin_limit'));
     $this->view->total_rows = $total_records;
     $pagination = new Model_Pagination();
     $pagination->setLimit(JO_Registry::get('admin_limit'));
     $pagination->setPage($page);
     $pagination->setTotal($total_records);
     $pagination->setUrl($this->getRequest()->getModule() . '/items/comments/?p={page}&id=' . $request->getQuery('id') . $url);
     $this->view->pagination = $pagination->render();
 }
Exemple #4
0
 public static function getPin($pin_id, $fields = array('*'))
 {
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from('pins', array('pins.*', 'gift' => new JO_Db_Expr('pins.price > 0.0000')))->where('pins.pin_id = ?', (string) $pin_id)->limit(1);
     $query->where('pins.store != ""');
     $result = $db->fetchRow($query);
     if (!$result) {
         return false;
     }
     $userinfo = Model_Users::getUser($result['user_id'], false, $fields);
     if (!$userinfo) {
         return false;
     }
     $result['user_via'] = Model_Users::getUser($result['via'], false, $fields);
     $result['source'] = Model_Source::getSource($result['source_id']);
     $result['user'] = $userinfo;
     $result['board'] = Model_Boards::getBoardTitle($result['board_id']);
     $result['board_data'] = Model_Boards::getBoard($result['board_id']);
     $result['latest_comments'] = $result['comments'] ? Model_Comments::getComments(array('filter_pin_id' => $pin_id)) : 0;
     $result['liked'] = $result['likes'] ? self::pinIsLiked($result['pin_id']) : 0;
     return $result;
 }
Exemple #5
0
 public static function delete($pin_id)
 {
     $db = JO_Db::getDefaultAdapter();
     $pin_info = self::getPin($pin_id);
     if (!$pin_info) {
         return false;
     }
     if ($pin_info['image']) {
         $res = Helper_Db::create('pins_images_for_delete', array('pin_id' => $pin_info['pin_id'], 'date_added' => $pin_info['date_added'], 'image' => $pin_info['image'], 'store' => $pin_info['store']));
     }
     $comments = Model_Comments::getComments(array('filter_pin_id' => $pin_id));
     if ($comments) {
         foreach ($comments as $comment) {
             $db->delete('pins_comments', array('comment_id = ?' => $comment['comment_id']));
             $db->delete('pins_reports_comments', array('comment_id = ?' => $comment['comment_id']));
         }
     }
     $del = $db->delete('pins', array('pin_id = ?' => $pin_id));
     if (!$del) {
         return false;
     } else {
         $db->query("INSERT INTO `pins_images_for_delete`(`pin_id`, `gallery_id`, `date_added`, `image`, `store`) SELECT `pin_id`, `gallery_id`, '" . $pin_info['date_added'] . "', `image`, `store` FROM `pins_gallery` WHERE `pin_id` = '" . $pin_id . "'");
         $db->delete('pins_invert', array('pin_id = ?' => $pin_id));
         $db->delete('pins_likes', array('pin_id = ?' => $pin_id));
         $db->delete('pins_reports', array('pin_id = ?' => $pin_id));
         $db->delete('pins_views', array('pin_id = ?' => $pin_id));
         $db->delete('users_history', array('pin_id = ?' => $pin_id));
         $db->delete('pins_gallery', array('pin_id = ?' => $pin_id));
         $db->delete('pins_images', array('pin_id = ?' => $pin_id));
         $config_private_boards = Helper_Config::get('config_private_boards');
         Helper_Db::update('users', array('pins' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND public = 1' : '') . ')'), 'boards' => new JO_Db_Expr('(SELECT COUNT(DISTINCT board_id) FROM boards WHERE user_id = users.user_id ' . ($config_private_boards ? ' AND public = 1' : '') . ')'), 'likes' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins_likes WHERE user_id = users.user_id)'), 'following' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT following_id) FROM users_following_user WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT following_id) FROM users_following WHERE user_id = users.user_id AND following_id != users.user_id LIMIT 1) )'), 'followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = users.user_id AND user_id != users.user_id LIMIT 1) )'), 'latest_pins' => new JO_Db_Expr('( SUBSTRING_INDEX( (SELECT GROUP_CONCAT(pin_id ORDER BY `pin_id` DESC) FROM `pins` WHERE user_id = users.user_id), \',\', 15 ) )')), array('user_id=?' => $pin_info['user_id']));
         Helper_Db::update('boards', array('pins' => new JO_Db_Expr('(SELECT COUNT(DISTINCT pin_id) FROM pins WHERE board_id = boards.board_id ' . ($config_private_boards ? ' AND public = 1' : '') . ')'), 'followers' => new JO_Db_Expr('( (SELECT COUNT(DISTINCT user_id) FROM users_following_user WHERE following_id = boards.user_id AND user_id != boards.user_id LIMIT 1) + (SELECT COUNT(DISTINCT user_id) FROM users_following WHERE following_id = boards.user_id AND user_id != boards.user_id LIMIT 1) - (SELECT COUNT(DISTINCT user_id) FROM users_following_ignore WHERE following_id = boards.user_id AND board_id = boards.board_id AND user_id != boards.user_id LIMIT 1) )'), 'latest_pins' => new JO_Db_Expr('( SUBSTRING_INDEX( (SELECT GROUP_CONCAT(pin_id ORDER BY `pin_id` DESC) FROM `pins` WHERE board_id = boards.board_id), \',\', 15 ) )')), array('board_id=?' => $pin_info['board_id']));
         self::deleteCache($pin_info);
         return true;
     }
 }
Exemple #6
0
 public function commentsAction()
 {
     $this->noViewRenderer(true);
     $request = $this->getRequest();
     $response = $this->getResponse();
     $page = (int) $request->getRequest('page');
     if ($page < 1) {
         $page = 1;
     }
     $callback = $request->getRequest('callback');
     if (!preg_match('/^([a-z0-9_.]{1,})$/', $callback)) {
         $callback = false;
     }
     $return = array();
     $pin_id = (int) $request->getRequest('pinId');
     $pin_info = Model_Pins::getPin($pin_id);
     if (!$pin_info) {
         $return = array('error' => $this->translate('There was a problem with the record. Please try again!'));
     } else {
         if ($request->getParam('comments') == 'post') {
             if ($this->isLoged()) {
                 ///add comment
             } else {
                 $return = array('error' => $this->error);
             }
         } else {
             $data = array('filter_pin_id' => $pin_id);
             $return = array('data' => array());
             $comments = Model_Comments::getComments($data);
             if ($comments) {
                 foreach ($comments as $comment) {
                     $return['data'][] = array('userId' => $comment['user']['user_id'], 'userName' => $comment['user']['username'], 'avatar' => $comment['user']['avatar'], 'comment' => $comment['comment']);
                 }
             }
         }
     }
     if ($callback) {
         $return = $callback . '(' . JO_Json::encode($return) . ')';
     } else {
         $response->addHeader('Cache-Control: no-cache, must-revalidate');
         $response->addHeader('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
         $response->addHeader('Content-type: application/json');
         $return = JO_Json::encode($return);
     }
     $response->appendBody($return);
 }