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>