2011-06-06 130 views
2

我使用的是Magento 1.5,並試圖在我的側邊欄中包含一個小框,用於顯示產品圖像,產品名稱,星級評估和評論部分的隨機產品。Magento - 在評論模塊之外顯示隨機評論

我已經設法讓Magento在邊欄中顯示一個隨機產品,不幸的是,我似乎無法找到一種方法來選擇隨機產品,如果它有一個審查或沒有,我也無法找到一種方法來加載我正在使用的側邊欄模板的評論摘要。

我發現了以下一段代碼示例,但它只是拋出良好的舊調用非對象錯誤。

<?php 

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

$summaryData = Mage::getModel(‘review/review_summary’) 
->setStoreId($storeId) 
->load($_product->getId()); 

/* @var $summaryData Mage_Review_Model_Review_Summary */ 

/* 

array(
['primary_id'] => 147 
['entity_pk_value'] => 166 
['entity_type'] => 1 
['reviews_count'] => 1 
['rating_summary'] => 80 
['store_id'] => 1 
) 
*/ 

?> 

如果任何人有任何想法如何得到這個工作,它將不勝感激。

在此先感謝!

回答

10

您得到該錯誤的原因是因爲您正在使用的引號。使用'代替。

在回答您的編輯,這是你將如何繼續前進,負載5個隨機的產品,有一個回顧:

$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()); 
} 

顯然,現在你可以這樣做:

$product->getRatingSummary() 

到提取評級數據等。

當然,您可以創建一個塊來放置它(或以糟糕的方式 - >將它放在某個模板中)。

玩得開心;)

響應你的問題第三次編輯:

/* Getting summary title/body. */ 
$title = $product->getTitle(); 
$body = $product->getDetail(); 

/* To get (what I assume is) 'star' rating. */ 
$ratingSummary = $product->getRatingSummary(); 
$starRating = $ratingSummary['rating_summary']; 
+0

好吧,這確實刪除了非對象問題,但沒有太多運氣顯示任何信息。 – Xand94 2011-06-06 10:02:55

+0

@ Xand94:請參閱我的編輯。 – 2011-06-06 10:26:11

+0

哇,沒想到能夠做到這一點,更不用說在這麼簡單的代碼中!非常感謝!最後一個小問題,這些屬性似乎不包括審查細節,如何將審查機構和星級評級拉出來? – Xand94 2011-06-06 10:43:32

2

,而不是通過隨機選擇了一款產品,並顯示一個檢討,我寧願選擇一個審查,並加載它的相關產品。 這有2個效果: 1.您自動擁有一個有評論的產品。 2.有更多評論的產品顯示的可能性增加。

但是那只是我^^

+0

我很想這樣做,不幸的是,我甚至沒有發現沒有使用產品ID選擇評論的傳言。 – Xand94 2011-06-06 09:40:29

+0

Mage :: getModel('review/review') - > getCollection(); – 2014-05-19 07:21:42

1

您可能正在尋找Mage_Review_Model_Review::getEntitySummary()

爲了簡單的Magento已經提供附有評論中引用的產品集合交叉。

$products = Mage::getResourceModel('review/review_product_collection'); 
$products->getSelect()->order(new Zend_Db_Expr('RAND()')); 
$products->setPageSize(3); 
foreach ($products as $product) { 
    // Picks 3 random products with reviews. 
    Mage::getSingleton('review/review')->getEntitySummary($product, $storeId); 
    $summary = $product->getRatingSummary(); 
    // $summary->getRatingSummary() = percentage of average rating values 
} 
+0

更好地使用appendSummary($ collection)而不是getEntitySummary來避免爲集合中的每個產品實例化review/review_summary模型。 – 2011-06-06 10:48:54