예제 #1
0
 public function execute()
 {
     $offset = waRequest::get('offset', 0, waRequest::TYPE_INT);
     $total_count = waRequest::get('total_count', null, waRequest::TYPE_INT);
     $lazy = waRequest::get('lazy', false, waRequest::TYPE_INT);
     $product_reivews_model = new shopProductReviewsModel();
     $reviews_per_page = $this->getConfig()->getOption('reviews_per_page_total');
     /*
     $reviews = $product_reivews_model->getList(
         $offset,
         $reviews_per_page,
         array('is_new' => true)
     );
     */
     $reviews = $product_reivews_model->getList('*,is_new,contact,product', array('offset' => $offset, 'limit' => $reviews_per_page));
     // TODO: move to model
     $product_ids = array();
     foreach ($reviews as $review) {
         $product_ids[] = $review['product_id'];
     }
     $product_ids = array_unique($product_ids);
     $product_model = new shopProductModel();
     $products = $product_model->getByField('id', $product_ids, 'id');
     $image_size = wa()->getConfig()->getImageSize('crop_small');
     foreach ($reviews as &$review) {
         if (isset($products[$review['product_id']])) {
             $product = $products[$review['product_id']];
             $review['product_name'] = $product['name'];
             if ($product['image_id']) {
                 $review['product_url_crop_small'] = shopImage::getUrl(array('id' => $product['image_id'], 'product_id' => $product['id'], 'ext' => $product['ext']), $image_size);
             } else {
                 $review['product_url_crop_small'] = null;
             }
         }
     }
     $this->view->assign(array('total_count' => $total_count ? $total_count : $product_reivews_model->countAll(), 'count' => count($reviews), 'offset' => $offset, 'reviews' => $reviews, 'current_author' => shopProductReviewsModel::getAuthorInfo(wa()->getUser()->getId()), 'reply_allowed' => true, 'lazy' => $lazy, 'sidebar_counters' => array('new' => $product_reivews_model->countNew(!$offset))));
 }