5

我正在尝试重命名出现在我的 Magento 结帐中的一些信用卡(例如,“Visa”变成“Visa Debit/Credit”)。

为此,我发现您必须编辑/app/code/core/Mage/Payment/etc/config.xml.

不想覆盖核心文件,我尝试将此文件复制到/app/code/local/Mage/Payment/etc/config.xml并在那里进行更改,但它不起作用。根据研究,我收集到 Magento 不会先从本地文件夹自动加载配置文件?

然后我发现您可以更改app/etc/modules/Mage_All.xml并指定<codePool>local</codePool>而不是<codePool>core</codePool>under <Mage_Payment>。然后我在本地文件夹下所做的更改将起作用。

这是正确的方法吗?更改codePool核心模块会产生任何影响吗?还有其他方法可以“覆盖”核心模块config.xml吗?

4

1 回答 1

10

您必须在 local 下创建一个新模块:Yourcompany_Payment

在此模块中,使用您需要的 XML 重写定义一个极简的 etc/config.xml:

<config>
    <modules>
        <Yourcompany_Payment>
            <version>0.1.0.0</version>
        </Yourcompany_Payment>
    </modules>
    <global>
        <payment>
            <cc>
                <types>
                    <AE>
                        <code>AE</code>
                        <name>American Express</name>
                        <order>0</order>
                    </AE> [...]

然后在app/etc/modules文件夹中,添加一个新的Yourcompany_Payment.xml(或 Yourcompany_All.xml):

<config>
    <modules>
        <Yourcompany_Payment>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Payment/>
            </depends>
        </Yourcompany_Payment>
    </modules>
</config>

依赖节点至关重要,因为它会告诉 magento 在 magento 之后加载您的 XML,以便您的重写工作

于 2012-11-06T12:04:40.407 回答