Magento,版本CE 1.4.2,1.5.0.1,1.5.1.0
我必须根据所有配方,config.xml,system.xml等模块/模块/ 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类文件,导致:
Fatal error: Class ‘Mage_Mycompany_Helper_Data’ not found in path\to\app\Mage.php on line 520
换句话说,Magento不断要求我的旧的,预先重命名的模块的帮助类,当然无处可寻.
我已经在所有文件中进行了广泛的搜索,但是找不到字符串Mage_Mycompany,所以我的猜测是Magento试图从数据库表中加载这个帮助程序类.当然,我已经清除缓存并多次重建所有索引,并删除了所有缓存文件.我几乎检查了所有数据库表,但无济于事.
其次,当我在app / code / community / Mage / Mycompany / Helper / Data.php中手动创建辅助类时,一切顺利,这对我来说听起来很奇怪,因为类本身不应该被调用(因为它永远不会在任何config.xml中提到).
我必须遗漏一些东西,也许类名是动态生成的,但我真的不知道如何避免它或修复它…所以任何帮助都表示赞赏!
最佳答案 当然,第一步是清除缓存.
如果清除缓存不起作用.
第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');
我的猜测是你的一个XML文件仍旧你的旧模块配置用于翻译
<sometag module="mycompany" translate="someothertag" />
这使得magento寻找一个不再存在的助手,并且繁荣,这就是你的错误.