重写Magento礼品卡观察员功能

时间:2012-01-19 04:01:26

标签: magento

当我需要在位于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 {     ..... }

1 个答案:

答案 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));