2015-05-29 4 views
2

Я использую 5 возможных вариантов для обзора продукта.
Он отображается ниже.Magento Оценка продукта общий вес обзора

enter image description here

Но я также хочу показать общий счет этого обзора.
Оценка, на которой отображен средний балл в сумме 5 баллов.

(я не хочу, чтобы отобразить среднее значение всех обзоров, только средний каждого отдельного рассмотрения)

Новый код с краткого обзора кода:

<?php $reviews = Mage::getModel('review/review') ->getResourceCollection() ->addStoreFilter(Mage::app()->getStore()->getId()) ->addStatusFilter(Mage_Review_Model_Review::STATUS_APPROVED) ->setDateOrder() ->addRateVotes(); 
$avg = 0; $totalrv = 0; $totalrvper =0; $ratings = array(); 
if (count($reviews) > 0) { foreach ($reviews->getItems() as $review) { foreach($review->getRatingVotes() as $vote) { $totalrv = $totalrv +$vote->getValue(); $totalrvper = $totalrvper + $vote->getPercent(); } 
} $totalrv= ($totalrv/3)/4; $totalrvper = ($totalrvper/3)/4; $avgrate = round($totalrv, 1); } ?> 

     <div class="summaryrating"> 
      <div class="categoryratings-header" style="display: none;"> 
       <?php echo $this->getReviewsSummaryHtml($_product, false, true)?> 
      </div> 
      <span class="reviewratingstars">    
       <div class="rating-box" style="padding-bottom: 34px;"> 
        <div style="width:<?php echo $totalrvper; ?>%;" class="rating"></div> 
       </div> 
      </span> 
      <span class="showcategoryratings" id="showcategoryratings-header"> 
       <span class="showcategoryratings-text" title="Bekijk de beoordelingen per categorie">Per categorie</span> 
      </span> 
     </div> 

Это мой детализированы. phtml

<?php $_votes = $this->getRatingVotes($_review->getId());?> 
    <?php if (count($_votes)): ?> 
    <table class="ratings-table"> 
     <col width="1" /> 
     <col /> 
     <tbody> 
      <?php foreach ($_votes as $_vote): ?> 
      <tr> 
       <th><?php echo $_vote->getRatingCode() ?></th> 
       <td> 
        <div class="rating-box"> 
         <div class="rating" style="width:<?php echo $_vote->getPercent() ?>%;"></div> 
        </div> 
       </td> 
      </tr> 
      <?php endforeach; ?> 
     </tbody> 
    </table> 
    <?php endif; ?> 

Как это можно показать?

EDIT ПРОЯВИТЬ ОДНОГО ОБЗОР РЕЗЮМЕ:

<div class="ratingstars"> 
      <h4 class="title-beoordeling">Beoordeling</h4> 
      <ul class="ratingbox"> 
      <?php foreach ($this->getRating() as $_rating): ?> 
       <?php if($_rating->getPercent()): ?> 
        <li> 
         <span class="ratingcategoryname"><?php echo $this->__($_rating->getRatingCode()) ?></span> 
         <span class="reviewratingstars"> 
          <div class="rating-score sum"> 
           <div class="score-rating" style="width:<?php echo ceil($_rating->getPercent()) ?>%;"></div> 
          </div> 
         </span> 
        </li> 
       <?php endif; ?> 
      <?php endforeach; ?> 

      <?php foreach ($_votes as $_vote): ?> 
     <?php $summary += $_vote->getPercent(); ?> 
     <?php $total++ ?> 
      <?php endforeach; ?> 
        <li class="averagerating"> 
         <span class="ratingcategoryname">Gemiddelde beoordeling</span> 
         <span class="reviewratingstars"> 
          <div class="rating-score sum"> 
           <div class="score-rating" style="width:<?php echo $summary/$total ?>%;"></div> 
          </div> 
         </span> 
        </li> 
      </ul> 
    </div> 

ответ

1
<?php $reviews = Mage::getModel('review/review') ->getResourceCollection() ->addStoreFilter(Mage::app()->getStore()->getId()) ->addEntityFilter('product', Mage::registry('current_product')->getId()) ->addStatusFilter(Mage_Review_Model_Review::STATUS_APPROVED) ->setDateOrder() ->addRateVotes(); 
$avg = 0; $avgper = 0; $totalrv = 0; $totalrvper =0; $ratings = array(); $count = 0; 
if (count($reviews) > 0) { foreach ($reviews->getItems() as $review) { foreach($review->getRatingVotes() as $vote) { $totalrv = $totalrv +$vote->getValue(); $count++; $totalrvper = $totalrvper + $vote->getPercent(); } 
} $avg= $totalrv/count($reviews); $avgper = round($totalrvper/$count ,1);} ?> 
     <div class="summaryrating"> 
      <div class="categoryratings-header" style="display: none;"> 
       <?php echo $this->getReviewsSummaryHtml($_product, false, true)?> 
      </div> 
      <span class="reviewratingstars"> 

       <div class="rating-box" style="padding-bottom: 34px;"> 
        <div style="width:<?php echo $avgper; ?>%;" class="rating"></div> 
       </div> 
      </span> 
      <span class="showcategoryratings" id="showcategoryratings-header"> 
       <span class="showcategoryratings-text" title="Bekijk de beoordelingen per categorie">Per categorie</span> 
      </span> 
     </div> 
+0

Это не показывает краткий обзор. Это отображает общий обзор со всеми рейтинговыми звездами. Я хочу получить резюме этого обзора. –

+0

Вы хотите, чтобы средний дизайн + snelheid + ...? – Kaes

+0

Да, я хочу, чтобы среднее значение всех пяти значений. Таким образом, общий обзор. Точно так же, как «Обзоры-летние», в которых отображается среднее значение всех отзывов. Но в этом случае я хочу получить среднее значение для каждого отдельного обзора. –

0
<?php 
$reviews = Mage::getModel('review/review')->getResourceCollection()->addStoreFilter(Mage::app()->getStore()->getId())->addEntityFilter('product', Mage::registry('current_product')->getId())->addStatusFilter(Mage_Review_Model_Review::STATUS_APPROVED)->setDateOrder()->addRateVotes(); 
$avgper = 0; 
$totalrvper = 0; 
$ratings = array(); 
$count = 0; 
$totalcount = 0; 
if (count($reviews) > 0) { 
foreach ($reviews->getItems() as $review) { 
    foreach ($review->getRatingVotes() as $vote) { 
     $totalcount++; 
     $totalrvper = $totalrvper + $vote->getPercent(); 
     $ratings[$vote->getCode()]["count"] = $ratings[$vote->getCode()]["count"] + 1; 
     $ratings[$vote->getCode()]["avg"] = $ratings[$vote->getCode()]["avg"] + $vote->getPercent(); 
    } 
} 
$avgper = round($totalrvper/$totalcount, 1);}?> 
<div class="summaryrating"> 
<div class="categoryratings-header" style="display: none;"> 
<?php echo $this->getReviewsSummaryHtml($_product, false, true) ?> 
</div> 
<span class="reviewratingstars"> 

    <div class="rating-box" style="padding-bottom: 34px;"> 
     <div style="width:<?php echo $avgper; ?>%;" class="rating"></div> 
    </div> 
</span> 
<span class="showcategoryratings" id="showcategoryratings-header"> 
    <span class="showcategoryratings-text" title="Bekijk de beoordelingen per categorie">Per categorie</span> 
</span> 
<span class="reviewperratingstars"> 
<?php foreach($ratings as $code => $rating) : ?> 
    <div class="rating-box" style="padding-bottom: 34px;"> 
     <span class="label"><?php echo $code ?></span> 
     <span style="width:<?php echo round($rating["avg"]/$rating["count"],1); ?>%;" class="rating"></span> 
    </div> 
<?php endforeach; ?> 
</span> 

`

+0

спасибо. Пробовал ваш код, но это не сработало. Посмотрите мой текущий код в моем вопросе. –

Смежные вопросы