当我需要在位于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 { ..... }
答案 0 :(得分:17)
我目前没有设置企业开发环境,所以这是未经测试的,但它应该如所描述的那样工作。
如果您查看
中的礼品卡配置app/code/core/Enterprise/GiftCard/etc/config.xml
您可以查看并发现礼品卡观察员的类别名
<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
)的名称部分添加一个节点,指示要重写的组中的WHICH类
<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));