如何根据特定的明星显示和过滤magento评论

时间:2017-01-03 09:02:31

标签: php magento

我在magento有一家商店。 我们在magento产品页面中应用了星级评论。在我们的产品页面中,我们只有一个质量值。每个客户在5星级内查看产品。我们希望以百分比显示每个星形值。

例如: - 如果我有3条评论,其中有3条评论,其中2条评论有1颗星,我们希望将1颗星显示为1星级 - 50%并且如果3条评论有2颗星则相同,那么我们将显示2颗星 - 30%喜欢这个。

我不知道如何在magento评论中实现这一目标。我得到rating_summary这很好。我怎样才能找到每颗星的评级值。

之后我想根据星级评论过滤它们,如果我点击1然后只会显示一个星评价,或者如果我点击2星,那么将显示2星评价。

1 个答案:

答案 0 :(得分:0)

重写块 success: function (data) { // Getting the owl carousel var carousel = $(".owl-carousel"); //creating an array var elementArray = []; // splitting the returned data in to an array //element array split elementArray = data.split('/>'); // Looping through each element and adding it to the carousel for (i = 0; i < elementArray.length; i++) { // Validating that the array element is not empty if (elementArray[i] != '' || elementArray[i] != ' />') { $('.owl-carousel').trigger('add.owl.carousel', [elementArray[i] + '/>']).trigger('refresh.owl.carousel'); } } } 并添加然后添加以下方法来计算平均值

Mage_Review_Block_Product_View_List

您可以通过从public function getAvgReviewRatings(){ return $this->calculateReviewRatings('avg'); } public function getStarReviewRatings(){ return $this->calculateReviewRatings('star'); } private function calculateReviewRatings($params){ $star = array('one'=>0,'two'=>0,'three'=>0,'four'=>0,'five'=>0); $avg = 0; $reviews = Mage::getModel('review/review') ->getResourceCollection() ->addStoreFilter(Mage::app()->getStore()->getId()) ->addEntityFilter('product', $this->getProductId()) ->addStatusFilter(Mage_Review_Model_Review::STATUS_APPROVED) ->addRateVotes() ->setDateOrder(); $ratings = array(); if (count($reviews) > 0) { foreach ($reviews->getItems() as $review) { foreach( $review->getRatingVotes() as $vote ) { switch($vote->getValue()){ case 1: $star['one']+=1; break; case 2: $star['two']+=1; break; case 3: $star['three']+=1; break; case 4: $star['four']+=1; break; case 5: $star['five']+=5; break; default: break; } $ratings[] = $vote->getPercent(); } } if($params == 'avg'){ return (array_sum($ratings)/count($ratings))/20; }else if($params == 'star'){ return $star; } } } 调用

这些方法来调用并获取所有星形值
review/product/view/list.phtml