我正在尝试重命名出现在我的 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>
在 <Mage_Payment>
下.我在本地文件夹下所做的更改将生效。
这是正确的做法吗?将更改 codePool
一个核心模块有什么影响?是否有其他方法可以“覆盖”核心模块的 config.xml
?
最佳答案
您必须在本地创建一个新模块: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>
depends 节点很重要,因为它会告诉 magento 在 magento 的 XML 之后加载您的 XML,以便您的重写工作
关于php - Magento:通过本地副本获取 "overriding"核心 config.xml 文件?这个对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13250135/