Magento 产品评级计算性能

Magento Product rating calculation performance

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

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

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

<?php if($_product->getRatingSummary()): ?>
      <?php echo $this->getReviewsSummaryHtml($_product) ?>
<?php endif; ?>

您只需要在此代码中传递您的 $product 对象。

您可以使用 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

?>

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

<?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; ?>