我有一个定制模块,一切都很好。我正在向模块中添加和管理面板部分,并希望有一个单独的管理助手。我知道我可以像这样创建并调用我的管理员助手:
app/code/local/namespace/module/helper/Admin.php
class Namespace_Module_Helper_Admin extends Mage_Core_Helper_Abstract....
$helper = Mage::helper('namespace_module/admin'); 一切都很好。
我真的希望我的管理助手的结构是这样的:
app/code/local/namespace/module/helper/admin/Data.php但是无法知道如何在config.xml中设置它,然后调用助手。
我最初的想法是像这样设置配置:
...
<helper>
<namespace_module>
<class>Namespace_Module_Helper</class>
</namespace_module>
<namespace_module_admin>
<class>Namespace_Module_Admin_Helper</class>
</namespace_module_admin>
</helper>
...然后这样打电话给帮手:
$helper = Mage::helper('namespace_module_admin');但这不管用。
是否可以在助手目录子目录中为我的模块提供第二个助手?如果是这样的话,有人能为我指明正确的方向吗?
谢谢你的帮助!
发布于 2015-02-10 00:40:13
是的,这是可能的,但我认为你有一些排字。我能够使用这样的设置使用您的方法注册一个新的助手:
<helpers>
<namespace_module>
<class>Namespace_Module_Helper</class>
</namespace_module>
<namespace_module_admin>
<class>Namespace_Module_Helper_Admin</class>
</namespace_module_admin>
</helpers>助手文件本身位于路径上:app/code/local/Namespace/Module/Helper/Admin/Data.php
helper类如下所示:
class Namespace_Module_Helper_Admin_Data extends Mage_Core_Helper_Abstract
{
public function test()
{
return 'test';
}
}我能够用语法调用它:
Mage::helper('namespace_module_admin')->test();因此,您的问题可能是由于您的文件/类名与Magento的自动加载程序所期望的位置不匹配。例如,您的<class>Namespace_Module_Admin_Helper</class>应该映射到(不正确的)目录app/code/local/Namespace/Module/Admin/Helper,而不是预期的app/code/local/Namespace/Module/Helper/Admin。
发布于 2015-02-07 14:42:52
你的方法看起来很好而且绝对正确。在config.xml中只有一个错误。您应该将节点命名为<helpers>而不是<helper>。
https://stackoverflow.com/questions/28368723
复制相似问题