Magento产品评级计算性能

时间:2017-12-05 02:34:14

标签: magento

如果我的网页显示许多产品(包括标题和评级),那么网页需要按照以下代码计算每个产品的评分百分比。 我相信这种计算会减慢我的网页速度。 这是我可以选择的唯一选择,还是有更好的性能代码我可以使用?

            if (count($reviews) > 0) 
            {
                foreach ($reviews->getItems() as $review) 
                {
                    foreach( $review->getRatingVotes() as $vote ) 
                    {
                        $ratings[] = $vote->getPercent();
                    }
                }
                $avg = array_sum($ratings)/count($ratings);
            }

3 个答案:

答案 0 :(得分:1)

您可以使用Magento核心的评论模型

<?php
$store_id = Mage::app()->getStore()->getId(); //get store id

//in your product loop 

$review_summary = Mage::getModel('review/review_summary')->setStoreId($store_id)->load($_product->getId()); //pass product's id to review model
echo $review_summary['rating_summary']; //get rating summary

?>

答案 1 :(得分:0)

您可以使用此代码,magento在类别列表页面上使用相同的代码。

<a href="/Home" class="{{route.current.variable}}">

您需要在此代码中传递<?php if($_product->getRatingSummary()): ?> <?php echo $this->getReviewsSummaryHtml($_product) ?> <?php endif; ?> 对象。

答案 2 :(得分:0)

您可以使用以下代码在任何页面上获得评分:

<?php
    $storeId = Mage::app()->getStore()->getId();
    $summaryData = Mage::getModel('review/review_summary')->setStoreId($storeId)  ->load($_product->getId());
    ?>
<?php if($_product->getRatingSummary()): ?> 
<?php if($summaryData['rating_summary']){ ?><div class="rating-box"><div class="rating" style="width:<?php echo $summaryData['rating_summary']; ?>%"></div></div>(<?php echo $_product->getRatingSummary()->getReviewsCount(); ?>)<?php } ?>
<?php endif; ?>