Overide Magento Enterprise Core Observer Method


Overide Magento Enterprise Core Observer Method

Im 尝试覆盖位于Enterprise_Catalog_Model_Observer类中的几个方法。在核心配置中,此观察器定义为

        <catalog_product_save_after>
            <observers>
                <catalog_product_save_custom_redirect>
                    <class>enterprise_catalog/observer</class>
                    <method>saveProductCustomRedirect</method>
                </catalog_product_save_custom_redirect>
            </observers>
        </catalog_product_save_after>

在我的enxtension应用程序/代码/本地/扩展/重定向/etc/config中.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Extensioname_Redirects>
            <version>0.1.0</version>
        </Extensioname_Redirects>
    </modules>
    <global>
        <models>
            <Extensioname_Redirects>
                <class>Extensioname_Redirects_Model_Observer</class>
            </Extensioname_Redirects>
        </models>
    </global>
    <frontend>
        <events>
            <catalog_product_save_after>
                <observers>
                    <extensioname_redirects>
                        <class>Extensioname_Redirects_Model_Observer</class>
                        <method>saveProductCustomRedirect</method>
                    </extensioname_redirects>
                 </observers>
            </catalog_product_save_after>
        </events>
    </frontend>
</config>

in app/code/local/Extensioname/Redirects/Model/Observer.php

class Extensioname_Redirects_Model_Observer extends Enterprise_Catalog_Model_Observer
{
    public function saveProductCustomRedirect(Varien_Event_Observer $observer)
    {
    ...
    }
}

但是核心观察者仍在触发 saveProductCustomRedirects,而我的扩展什么也没做。请帮忙

值得一提的是:如果有人对此有问题,我的问题归结为没有重写扩展配置中的核心观察器。单词大小写也遇到了一个问题,因为一旦我的所有 xml 标签在模型节点中更改为小写,扩展就开始工作。我更新的扩展配置如下。

<?xml version="1.0"?>
<config>
    <modules>
        <My_Extension>
            <version>0.1.0</version>
        </My_Extension>
    </modules>
    <global>
        <models>
            <my_extension>
                <class>My_Extension_Model_Observer</class>
            </my_extension>
            <!-- Updated here to rewrite core observer
                 Enterprise_Catalog_Model_Observer -->
            <enterprise_catalog>
                <rewrite>
                    <observer>My_Extension_Model_Observer</observer>
                </rewrite>
            </enterprise_catalog>
        </models>
    </global>
    <frontend>
        <events>
            <catalog_product_save_after>
                <observers>
                    <my_extension>
                        <class>My_Extension_Model_Observer</class>
                        <method>saveProductCustomRedirect</method>
                    </my_extension>
                </observers>
            </catalog_product_save_after>
        </events>
    </frontend>
</config>