Обзоры Magento показывают суммарный рейтинг вместо рейтинга в php - PullRequest
2 голосов
/ 05 августа 2011

В моем магазине Magento клиенты рассматривают мои товары в 3 категориях (то есть цена).Но когда я печатаю эти рейтинги, вместо этих 3 категорий отображается только сводка (см. Код).

<?php
    //from http://www.exploremagento.com/magento/run-magento-code-outside-of-magento.php
    require_once '../app/Mage.php';
    umask(0);
    Mage::app('default'); 

    $review = Mage::getModel('review/review');
$collection = $review->getProductCollection();
$collection
        ->addAttributeToSelect('*')
        ->getSelect()
                ->limit(5)
                ->order('rand()');
$review->appendSummary($collection);

foreach($collection as $product) {
        //var_dump($product->debug());
}

/* To get (what I assume is) 'star' rating. */ 
$ratingSummary = $product->getRatingSummary();
$starRating = $ratingSummary['rating_summary']; 
echo $starRating . "<br/>"; 
?> 

Как получить все оценки вместо сводки?

1 Ответ

0 голосов
/ 20 марта 2012

Я создал эту функцию в вспомогательном объекте, просто для отображения простого HTML-кода для среднего рейтинга продукта (также 3 категории). Надеюсь, вы найдете это полезным.

public function getRatingHtml($product_id) {

        $store_id = Mage::app()->getStore()->getId();

        $query = "
        SELECT 
            ROUND(AVG(`percent_approved`)) as `rating`
        FROM 
            `rating_option_vote_aggregated` 
        WHERE 
            `entity_pk_value` = {$product_id}
            AND 
            `store_id` = {$store_id}";

        $read = Mage::getSingleton('core/resource')->getConnection('core_read');
        $rating = $read->query($query)->fetch();
        $html = "
        <a href=\"/review/product/list/id/{$product_id}/\" class=\"rating-box-link\">
        <span class=\"rating-box\">
        <span class=\"rating\" style=\"width: {$rating['rating']}%;\"></span>
        </span>
        </a>";
        return $html;
    }
...