2013-05-10 136 views
7

我在展示相關產品內容產品視圖頁面中的佈局塊。我在的catalog.xml代碼:如何在產品查看頁面上顯示3種相關產品,Magento?

<reference name="content"> 
    <block type="catalog/product_list_related" name="catalog.product.related" after="-" template="catalog/product/list/related.phtml"/> 
</reference> 

現在,所有的相關產品將顯示在我的產品視圖頁面,但我想只顯示3個產品,我該怎麼辦?請,任何人都可以幫忙?

回答

9

您需要編輯模板文件catalog/product/list/related.phtml並將循環限制爲僅遍歷3個產品。

例如:

... 
    <?php $i = 0; ?> 
    <?php foreach($this->getItems() as $_item): ?> 
     <?php if($i++ == 3) break; ?> 
     ... 
+0

thnx @zitix,它爲我工作。雖然它的靜態,但現在工作。 :) – madzacky 2013-05-10 13:18:24

+3

在這裏你會得到更大的收藏,而你只需要三個。所以這將是更多的資源密集型。在您的收藏代碼中添加此限制3. – oscprofessionals 2013-05-10 19:14:50

1

,您已經對Mage_Catalog_Block_Product_List_Related準備產品的集合,它是在模板文件catalog/product/list/related.phtml迭代。 如果您有任何應添加的規則來限制您的集合,則可以覆蓋_prepareData()方法並修改集合。 如果不是,最簡單的解決方案是在三次迭代後從phtml中的循環中退出。

4

這對我有效。 您必須限制查詢,並且可能在加載集合之前對其進行洗牌。打開文件\程序\代碼\核心\法師\目錄\塊\產品\目錄\ Related.php並尋找方法:

Mage_Catalog_Block_Product_List_Related - > _ prepareData()

添加此行在load()調用之前。

$this->_itemCollection->getSelect()->limit(3)->order(new Zend_Db_Expr('RAND()')); 

它仍然是不漂亮,!!你不應該在覈心代碼寫!,但這是一個很好的開始。

+0

這是最完美的答案。只需添加一個,應該重寫類 – 2014-12-09 09:04:59

+0

這是錯誤的方法,因爲您覆蓋了核心文件。如果需要更改代碼邏輯,則必須編寫模型來擴展此類。 – Nerjuz 2015-02-18 14:39:21

+0

@Nerjuz翻譯:「這是錯誤的方法,因爲它不是我想要的」。走開! – Deji 2015-10-08 14:39:48

相關問題