1

我要疯了,想弄清楚这一点。模块本身是一个已经存在的工作模块,所以我知道它与 /app/etc/Modules/ configs 之类的东西没有任何关系。我知道重写不起作用,因为我在同一个函数的核心文件中放置了一个类似的日志语句,它是被命中的,而不是我重写的函数。

公司/模块/etc/config.xml

<global>
  <models>
    <core>
      <rewrite>
        <email_template_filter>Company_Module_Model_Email_Template_Filter</email_template_filter>
      </rewrite>
    </core>
  </models>
</global>

公司/模块/模型/电子邮件/模板/Filter.php:

class Company_Module_Model_Email_Template_Filter extends Mage_Core_Model_Email_Template_Filter
{

    public function skinDirective($construction)
    {
        echo "hello";
    }
}
4

1 回答 1

1

这不是用于过滤电子邮件模板的类。我假设您正在通过 cms 页面或 cms 块对其进行测试。
用于过滤此实体的类由配置路径global/cms/page/template_filterglobal/cms/block/template_filter.
该路径在以下config.xml文件中定义Mage_Cms

    <cms>
        <page>
            <tempate_filter>cms/template_filter</tempate_filter>
        </page>
        <block>
            <tempate_filter>cms/template_filter</tempate_filter>
        </block>
    </cms>

它被config.xmlfrom中的标记覆盖Mage_Widget

    <cms>
        <page>
            <tempate_filter>widget/template_filter</tempate_filter>
        </page>
        <block>
            <tempate_filter>widget/template_filter</tempate_filter>
        </block>
    </cms>

所以实际上对于过滤块,您可以尝试覆盖Mage_Widget_Model_Template_Filter

于 2013-10-08T15:31:49.647 回答