2013-12-14 73 views
1

我正在嘗試在Magento前端上過濾沒有圖像的產品,但一半成功。在Magento前端上過濾沒有圖像的產品

添加以下代碼:

//$_productCollection=$this->getLoadedProductCollection(); 
$_productCollection = clone $this->getLoadedProductCollection(); 
$_productCollection->clear() 
    ->addAttributeToFilter('image', array('neq' => 'no_selection')) 
    ->load(); 

到:

應用程序/設計/前端/默認/ [my_theme] /template/catalog/product/list.phtml

產品很好地過濾,但頁碼和項目數不會更新。

我跟着這個鏈接:

Magento - list.phtml filtering product collection not giving correct pagination

這似乎是有道理的,產品是沒有得到過濾,在全球範圍,因此網站的某些部分無法正常更新。

我不知道如何實現他的解決方案,因爲我是Magento的新手,看起來像是爲人工作,但也許我的情況是不同的。

請幫忙。

回答

1

自己弄明白了!希望有人可以從中受益!

覆蓋_beforeToHtml()應用程序/代碼/核心/法師/目錄/砌塊/產品/ list.php的 [備份文件]

protected function _beforeToHtml() 
{ 
    $toolbar = $this->getToolbarBlock(); 

    // called prepare sortable parameters 
    $collection = $this->_getProductCollection(); 

    // use sortable parameters 
    if ($orders = $this->getAvailableOrders()) { 
     $toolbar->setAvailableOrders($orders); 
    } 
    if ($sort = $this->getSortBy()) { 
     $toolbar->setDefaultOrder($sort); 
    } 
    if ($dir = $this->getDefaultDirection()) { 
     $toolbar->setDefaultDirection($dir); 
    } 
    if ($modes = $this->getModes()) { 
     $toolbar->setModes($modes); 
    } 

    // insert start  
    $collection->addAttributeToFilter('image', array('neq' => 'no_selection')); 
    // insert end 

    // set collection to toolbar and apply sort 
    $toolbar->setCollection($collection); 

    $this->setChild('toolbar', $toolbar); 
    Mage::dispatchEvent('catalog_block_product_list_collection', array(
     'collection' => $this->_getProductCollection() 
    )); 

    $this->_getProductCollection()->load(); 

    return parent::_beforeToHtml(); 
} 

來源:http://www.magentocommerce.com/boards/viewthread/73507/

相關問題