如何覆盖Magento Core模块?

Rud*_*lah 2 overriding module interface admin magento

我想修改管理界面中的Order/Sales表的代码和PDF生成代码,而无需更改目录中的core文件.我该怎么做呢?我明白,我要创建一个使用我想覆盖文件相同的路径一个新的模块,但我不知道还有什么我必须做的......有没有一些特殊的措施,经过对config.xml的模块?

mcm*_*mil 6

如果你想这样做在一个单独的模块,你应该把你的新模式(块,辅助性或者任何你需要重写 - 我将要使用的模型为例,其同为别人 - 只有控制器有很大的不同)在'Model'目录中(例如:code/local/MyNamespace/MyModule/Model/Sales/Order.php).在您的模块config.xml中,您应该添加:

<global>
(...)
  <models>
    (...)
    <sales>
      <rewrite>
        <order>MyNamespace_MyModule_Model_Sales_Order</order>
      </rewrite>
    </sales>
  </models>
(...)
</global>
Run Code Online (Sandbox Code Playgroud)

当然,您自己的Sales_Order模型应该从核心模型继承.这是覆盖Magento核心功能的最干净的方法(可能除了事件,但他们不能做所有事情).