我正在尝试在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的新手,看起来它对这个人起作用,但也许我的情况不同。
请帮忙。
答案 0 :(得分:1)
自己想出来!希望有人可以从中受益!
覆盖 app / code / core / Mage / Catalog / Block / Product / list.php [备份文件]
中的 _beforeToHtml()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/