Magento,版本CE 1.4.2,1.5.0.1,1.5.1.0
我必须根据所有食谱config.xml
,system.xml
,etc/module/Mycompany_Mypaymentmodule.xml
调整Magento的付款模块,这些模式都可以正常使用。
但是最近,我进行了双重检查,发现了一个错误:
在我的config.xml
中,我放了:
<config>
<modules>
<Mage_Mycompany>
<version>0.1.0</version>
</Mage_Mycompany>
</modules>
...
那是因为最初,模块应该放在社区文件夹中 遵循这些准则,我重写了类,xml等等以反映本地代码池。这也很顺利(除了我调试过的错误)。
但是,在config.xml
内,我已重命名modules-tag,如下所示:
<config>
<modules>
<Mycompany_Mypaymentmodule>
<version>0.1.0</version>
</Mycompany_Mypaymentmodule>
</modules>
奇怪的是,当我转到后端的付款方式时,Magento现在一直在问我旧的Helper类文件,导致:
致命错误:在第520行的路径\到\ app \ Mage.php中找不到“Mage_Mycompany_Helper_Data”类
换句话说,Magento一直要求我的旧的,预先重命名的模块的帮助类,当然无处可寻。
我在所有文件中进行了大量搜索,但找不到字符串Mage_Mycompany
,所以我的猜测是Magento试图从数据库表中加载这个帮助程序类。当然,我已经清除缓存并多次重建所有索引,并删除了所有缓存文件。我几乎检查了所有数据库表,但无济于事。
其次,当我在app/code/community/Mage/Mycompany/Helper/Data.php
中手动创建帮助器类时,一切顺利,对我来说这听起来很奇怪,因为类本身不应该被调用(因为它从未在任何config.xml中提及)
我必须遗漏一些东西,也许类名是动态生成的,但我真的不知道如何避免它或修复它...所以任何帮助都表示赞赏!
答案 0 :(得分:2)
第一步当然是清除你的缓存。
如果清除缓存不起作用。
步骤2:数据助手类用于翻译模块的字符串。也就是说,每个数据助手都有一个方法
$helper->__('Translate this symbol');
将根据该模块的帮助文件翻译一个字符串。
在整个系统中,有几个XML文件可能需要翻译某些节点。语法看起来像这样。
<dhl translate="label" module="usa">
<label>The Label</label>
</dhl>
在这里,您要告诉magento翻译dhl中包含的“label”节点,并使用usa模块执行此操作。也就是说,使用实例化的帮助程序,如
$Mage::getModel('usa/data');
//same thing as above, helpers default to data
Mage::getModel('usa');
翻译标签
$helper->__('The Label');
我的猜测是你的旧文件之一还有你的旧模块配置用于翻译
<sometag module="mycompany" translate="someothertag" />
让magento找到一个不再存在的助手,并且繁荣,这是你的错误。
答案 1 :(得分:0)
当您调用翻译帮助程序时,会加载Tha数据帮助程序,即:Mage::helper('modulename')->__("some string to translate")
在您的配置.xml中,您是否已声明模块的帮助程序类?:
<config>
...
<global>
...
<helpers>
<yourmodule>
<class>Yourcompanyname_Yourmodule_Helper</class>
</yourmodule>
</helpers>
...
</global>
...
</config>