如果我的网页显示许多产品(包括标题和评级),那么网页需要按照以下代码计算每个产品的评分百分比。 我相信这种计算会减慢我的网页速度。 这是我可以选择的唯一选择,还是有更好的性能代码我可以使用?
if (count($reviews) > 0)
{
foreach ($reviews->getItems() as $review)
{
foreach( $review->getRatingVotes() as $vote )
{
$ratings[] = $vote->getPercent();
}
}
$avg = array_sum($ratings)/count($ratings);
}
答案 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; ?>