我做了一个简单的观察者,触发“catalog_block_product_list_collection”
<config>
<global>
<modules>
<Bz_Customfilter>
<version>0.1.0</version>
</Bz_Customfilter>
</modules>
<events>
<catalog_block_product_list_collection>
<observers>
<Bz_Customfilter_Model_Observer>
<type>singleton</type>
<class>Bz_Customfilter_Model_Observer</class>
<method>Customfiltermethod</method>
</Bz_Customfilter_Model_Observer>
</observers>
</catalog_block_product_list_collection>
</events>
</global>
我的愿望是,一旦用户点击类别,magento将加载所有产品(不仅仅是属于当前所选类别的产品)并按特定属性过滤它们。无论我如何尝试更改集合,我总是只获得所选类别的产品。任何人都可以帮我这个吗?
My Observer.php:
class Bz_Customfilter_Model_Observer
{
public function __construct()
{
}
public function Customfiltermethod($observer)
{
if(Mage::registry('current_category') &&(Mage::registry('current_category')->getId()=='103') ):
$collection=$observer->getEvent()->getCollection();
$collection->addAttributeToFilter('filter', '1');
endif;
return $this;
}
}
我已经尝试通过Mage::getModel('catalog/category')
加载产品并使用$observer->getEvent()->setCollection()
修改收藏但没有运气。收集始终限于选定的类别。