Magento - 将文件添加到Local / Mage没有任何效果

时间:2010-07-27 11:48:54

标签: magento

我想对一些Magento核心文件进行更改。为了确保更改是未来证明,我将文件从code / core / Mage复制到code / local / Mage。

我保持文件结构和文件名一致。问题是当我这样做时,更改没有效果(我已刷新缓存)

我出错的任何想法?如果我直接编辑核心文件,则会发生更改。

3 个答案:

答案 0 :(得分:3)

您应该创建一个新的本地模块并在config.xml文件中定义重写:

创建app/code/local/MyCompany/MyModule目录。添加子文件夹etcmodel

现在创建包含以下内容的etc/config.xml文件:

<?xml version="1.0" encoding="utf-8?>
<config>
    <modules>
        <MyCompany_MyModule>
            <version>0.1.0</version>
        </MyCompany_MyModule>
    </modules>

    <global>
         <models> <!-- type of class to rewrite -->
            <catalog> <!-- base module to rewrite -->
                <rewrite>
                    <product>MyCompany_MyModule_Model_Product</product>
                </rewrite>
            </catalog>
        </models>
    </global>
</config>

根据您的更改实施model/Product.php。最简单的方法是从基类继承并重写方法。

还记得在app / etc / modules中激活你的模块。

答案 1 :(得分:0)

上面的海报是正确的,编辑核心功能的首选方法是使用重写。但在某些情况下,这是不可能的,在这种情况下,您应该能够将核心文件放入/app/code/local/Mage目录以使其工作。块和模型文件应该以这种方式立即工作,如果我没记错的话,控制器也应如此。其他文件(例如配置文件)可能不是自动的。

您是否可以发布未按预期响应的特定文件的详细信息?调试细节比一般性更容易。此外,除了刷新普通缓存之外,还要确保已关闭服务器上安装的所有操作码缓存。

谢谢, 乔

答案 2 :(得分:0)

您可以使用local.xml轻松覆盖xml设置。因此,如果您要覆盖/添加到app/code/core/Mage/Customer/etc/config.xml,只需将其添加到app/etc/local.xml