Magento, получить рейтинг как число в php

Я пытаюсь изменить свой шаблон, чтобы он соответствовал html schema.org. Единственная проблема, с которой я столкнулся на данный момент, - это среднее число отзывов, которое должно быть числом от 0 до 5.

есть функция getratingssummary, но она используется внутри атрибута стиля div, я думаю, что она не возвращает число

пока у меня есть это

<?php if ($this->getReviewsCount()): ?>
    <div class="ratings">
        <?php if ($this->getRatingSummary()):?>
          <span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
            <div class="rating-box">
                <div class="rating" style="width:<?php echo $this->getRatingSummary() ?>%"><meta itemprop="ratingValue" content="5"/></div>
                <span itemprop="reviewCount"><?php echo $this->getReviewsCount() ?></span>
            </div>
          </span>
        <?php endif;?>
        <p class="rating-links">
            <a href="<?php echo $this->getReviewsUrl() ?>"><?php echo $this->__('%d Review(s)', $this->getReviewsCount()) ?></a>
            <!--<span class="separator">|</span>-->
            <!--<a href="<?php echo $this->getReviewsUrl() ?>#review-form"><?php echo $this->__('Add Your Review') ?></a>-->
        </p>
    </div>

3 ответа

Решение

Функция getRatingSummary возвращает числовое значение, это просто процент. Если вы посмотрите, как он вызывается в атрибуте style div рейтинга, вы увидите (если вы замените вызов функции на X)... это определенно возвращает процент.

<div class="rating" style="width:X%">

Я хотел бы повторить вызов функции $this->getRatingSummary() и посмотреть, что вы получаете обратно, а затем вы можете поработать над математическими вычислениями, чтобы превратить его в значение 0-5.

Чтобы получить числовой звездный рейтинг, а не процент, откройте желаемого помощника по проверке, который может быть либо;

app/design/frontend/default/YOURTHEME/template/review/helper/summary_short.phtml

или же

app/design/frontend/default/YOURTHEME/template/review/helper/summary.phtml


И используйте этот код, чтобы получить свой номер;

<?php
$ratingPercent = $this->getRatingSummary();
echo ($ratingPercent * 5)/100;
?>

Вы можете попробовать это, но вы должны заставить его работать, чтобы показать число вместо процента:

<?php
$storeId = Mage::app()->getStore()->getId();
$summaryData = Mage::getModel('review/review_summary')->setStoreId($storeId)  ->load($_product->getId());
?>                      

// Rating Percentage showing of a product
 <div class="rating"><?php echo $summaryData['rating_summary']; ?>%</div>  
Другие вопросы по тегам