Magento重写Mage_Core_Model_Email类

时间:2012-02-01 18:08:03

标签: php magento model content-management-system override

我正在尝试扩展Mage_Core_Model_Email类中的功能。 我想覆盖模型,以便修改zend_mail调用以通过电子邮件发送附件。

我已经在使用外包线验证码扩展,为我的所有表单添加安全文本,这是扩展联系人索引控制器。 (说,以防这可能会干扰我的代码......虽然我不这么认为)。

我已经定义了一个新模块'My'并打包'core':

  • 我在app / etc ....中创建了模块xml并启用了模块,我测试了模块是否被识别并处于活动状态,并且它是。
  • 创建了本地模块repo .... / local / My / Core包含2个文件夹... Model等等。
  • 创建了我的config.xml以覆盖电子邮件类
  • 创建了我的新课程......扩展旧的电子邮件模型类。

config.xml代码......

<?xml version="1.0"?>
<config>
<modules>
    <My_Core>
        <version>0.1.0</version>  
    </My_Core>
</modules>
<global>
        <models>
        <core>
            <rewrite>
                <email>
                    My_Core_Model_Emailwattachments
                </email>
            </rewrite>
        </core>
        </models>
    </global>
</config>

我的班级宣言......

class My_Core_Model_Emailwattachments extends Mage_Core_Model_Email
{

我在构造函数中添加了一个var_dump。

运行我的联系人表单并发送电子邮件时......此课程无法运行。 我已经测试了我试图在原始类IS中覆盖的函数运行....但是不能让它接受我的类作为替代。

在config.xml中尝试了许多标签组合,基于在线示例....但它不起作用。

有没有人看到或知道我可能缺少什么?我还能做更多的测试,看看为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

我认为您只需要告诉Magento您的模块包含模型......

<models>
    <core>
        <rewrite>
            <email>
                My_Core_Model_Emailwattachments
            </email>
        </rewrite>
    </core>
    <mycore>
        <class>My_Core_Model</class>
    </mycore>
</models>