2017-12-05 36 views
0

私のウェブページには多くの商品(タイトルと評価を含む)が表示されている場合、ウェブページは次のコードの商品ごとに評価の割合を計算する必要があります。 この種の計算で私のWebページが遅くなることは確かです。 これは私が選択できる唯一の選択ですか、それとも使用できるパフォーマンスコードがありますか?Magento商品の評価の計算

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

答えて

1

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

?> 
0

このコードを使用すると、magentoはカテゴリリストページで同じコードを使用します。

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

このコードでは、$productオブジェクトを渡すだけで済みます。

0

あなたはどのページにも格付けを取得するためのコードの下に使用することができますあなたは、Magentoののコアのレビュー・モデルを使用することができます。

<?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; ?> 
関連する問題