Magento观察者修改当前加载的集合

时间:2015-09-28 13:45:27

标签: php magento

我做了一个简单的观察者,触发“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()修改收藏但没有运气。收集始终限于选定的类别。

0 个答案:

没有答案