Получить рейтинги, связанные с продуктом
-
16-10-2019 - |
Вопрос
У меня есть настраиваемый продукт, из которого я пытаюсь получить отзывы
$ mythemename/catalog/product/view.phtml
/**
* Product view template
*
* @see Mage_Catalog_Block_Product_View
* @see Mage_Review_Block_Product_View
*/
$_product = $this->getProduct();
Мне нужны рейтинги в группе 5 звезд, 4 звезды, 3 звезды, 2 звезды и 1 звезды. как это
Я сделал следующее, пройдя через это ссылка на сайт (Проверьте пост @Sinclairfr's), что дает мне полный HTML рейтингов, связанных с продуктом.
<?php $zoo = new Mage_Rating_Block_Entity_Detailed(); ?>
<?php echo $zoo->toHtml(); ?>
а также это
$review = Mage::getModel('review/review');
$collection = $review->getProductCollection();
$collection
->addAttributeToSelect('*')
->getSelect()
->limit(5)
->addFieldToFilter('product_id', $_product->getId());
$review->appendSummary($collection);
zend_debug::dump($review);
Проходя через это ссылка на сайт
Все еще бесполезно
Решение
Вы можете получить все голоса, прикрепленные к продукту со следующим кодом. Обратите внимание, что SetentityPKfilter устанавливает идентификатор продукта.
$votesCollection = Mage::getModel('rating/rating_option_vote')
->getResourceCollection()
->setEntityPkFilter($productId)
->setStoreFilter(Mage::app()->getStore()->getId())
->load();
Это даст вам каждый тип голосов. Таким образом, в магазине по умолчанию вы получите три предмета в этой коллекции за обзор. Рейтинги выполняются по цене, качеству и стоимости.
Затем вы можете пройти через каждый из предметов в коллекции и добавить их в рейтинг Star. Образец данных элемента голосования:
array(10) {
["vote_id"]=>
string(3) "283"
["option_id"]=>
string(1) "9"
["remote_ip"]=>
string(9) "127.0.0.1"
["remote_ip_long"]=>
string(10) "2130706433"
["customer_id"]=>
NULL
["entity_pk_value"]=>
string(2) "27"
["rating_id"]=>
string(1) "2"
["review_id"]=>
string(2) "95"
["percent"]=>
string(2) "80"
["value"]=>
string(1) "4"
}