当我需要在位于 Enterprise 部分的观察者中重写一个函数时,该重写位在 config.xml 上的外观如何。
是这样的吗?
<global>
<models>
<enterprise>
<rewrite>
<giftcard>Custom_GiftCard_Model_Observer</giftcard>
</rewrite>
</enterprise>
</models>
</global>
我的类(class)声明如下:
类 Custom_GiftCard_Model_Observer 扩展 Enterprise_GiftCard_Model_Observer {
......
}
最佳答案
我目前没有企业开发环境设置,所以这是未经测试的,但它应该像描述的那样工作。
如果您查看礼品卡配置
app/code/core/Enterprise/GiftCard/etc/config.xml
您可以 grep 并发现礼品卡观察者的类别名
<class>enterprise_giftcard/observer</class>
因此,类别名为
enterprise_giftcard/observer
您的模型组名称为 enterprise_giftcard
,模型类名 observer
.在模块的配置文件中,首先您将创建一个模型配置区域
<global>
<models>
</models>
</global>
然后,您将添加要重写的类的组名
enterprise_giftcard
<global>
<models>
<enterprise_giftcard>
</enterprise_giftcard>
</models>
</global>
然后,您将添加一个节点,表示您要重写该组中的单个类
<global>
<models>
<enterprise_giftcard>
<rewrite>
</rewrite>
</enterprise_giftcard>
</models>
</global>
然后,您将使用类别名的名称部分 (
observer
) 添加一个节点,指示您希望重写的组中的哪个类<global>
<models>
<enterprise_giftcard>
<rewrite>
<observer></observer>
</rewrite>
</enterprise_giftcard>
</models>
</global>
最后,在这个节点中,您将添加一个文本节点,它是您的新类的名称。
<global>
<models>
<enterprise_giftcard>
<rewrite>
<observer>Custom_GiftCard_Model_Observer</observer>
</rewrite>
</enterprise_giftcard>
</models>
</global>
您可以通过直接实例化观察者并检查其类名来测试您的重写
$model = Mage::getModel('enterprise_giftcard/observer');
var_dump(get_class($model));
关于magento - 重写 Magento 礼品卡观察者函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8920859/