2012-02-16 75 views
0

我使用隨機代碼在我們的magento動力商店的主頁上顯示不同類別的產品。這工作完美。現在我想排除所有隻有佔位符圖像的產品纔會顯示在主頁上。我用下面的代碼試了一下:在magento主頁上使用佔位符圖像禁用產品

class Mage_Catalog_Block_Product_List_Random extends Mage_Catalog_Block_Product_List 
{ 
    protected function _getProductCollection() 
    { 
     if (is_null($this->_productCollection)) { 
      $categoryID = $this->getCategoryId(); 
      if($categoryID) 
      { 
       $category = new Mage_Catalog_Model_Category(); 
       $category->load($categoryID); // this is category id 
       $collection = $category->getProductCollection(); 
      } else 
      { 
       $collection = Mage::getResourceModel('catalog/product_collection'); 
      } 
      Mage::getModel('catalog/layer')->prepareProductCollection($collection); 
      $collection->getSelect()->order('rand()'); 
      $collection->addStoreFilter(); 
      $numProducts = $this->getNumProducts() ? $this->getNumProducts() : 3; 
      $collection->setPage(1, $numProducts)->load(); 

      $collection->addAttributeToFilter(
       array('attribute' => 'small_image', 'eq' => ''), 
       array('attribute' => 'small_image', 'eq' => 'no_selection') 
      ); 

      $this->_productCollection = $collection; 
     } 
     return $this->_productCollection; 
    } 
} 

但是,這並不工作,只用佔位符圖像產品仍舊出現。

任何幫助將不勝感激。

感謝, 丹尼爾

回答

3

你已經被加載的收集後加入「small_image」過濾器,讓您的過濾器將不會了影響除塵。

除此之外,你的OR過濾器看起來很奇怪。假設'no_selection'是一些佔位符圖片太,那麼你的過濾器確實接受佔位符圖像,我認爲你想要下降他們。

嘗試使用,而是過濾:

$collection->addAttributeToFilter(
    array('attribute' => 'small_image', 'neq' => '') 
); 
$collection->addAttributeToFilter(
    array('attribute' => 'small_image', 'neq' => 'no_selection') 
); 
+0

喜爾根,非常感謝你的幫助。現在正在工作。 – 2012-02-16 15:22:01