我已定制客户模块以满足我的要求。我能够重写客户模块的块类。我正在尝试在此模块中添加一个自定义块类,这在现有客户模块中不存在,但我不知道如何实现此目的。
我的代码在config.xml中看起来像
<blocks>
<customer>
<rewrite>
<widget_name>Mynamespace_Customer_Block_Widget_Name</widget_name>
<form_register>Mynamespace_Customer_Block_Form_Register</form_register>
<form_edit>Mynamespace_Customer_Block_Form_Edit</form_edit>
</rewrite>
</customer>
</blocks>
我在客户模块的Form目录下创建了一个名为'Test.php'
的新块类客户布局文件看起来像
<reference name="my.account.wrapper">
<block type="customer/form_test" name="customer_test" template="customer/form/test.phtml"/>
</reference>
但它没有执行块类文件。 是否应该在此模块的config.xml文件中添加任何内容?
请帮助如何将此块与现有模块集成。
感谢。
答案 0 :(得分:4)
您不应该真正向客户模块添加块,您应该将它们添加到您自己的模块中。如果您想继续使用客户模块,请检查以确保您的块名为Mage_Customer_Block_Form_Test
并扩展Mage_Core_Block_Template
。否则,将类创建为Mynamespace_Customer_Block_Form_Test
并将其保存在模块目录中。然后,在config.xml
中为您的班级添加块定义:
<blocks>
<mynamespace_customer>
<class>Mynamespace_Customer_Block</class>
</mynamespace_customer>
</blocks>
然后您应该可以将块加载为mynamespace_customer/form_test
。
如果您使用客户以外的模块名称,则可能更容易调试问题。一般来说,这是一个坏主意,可能会导致系统中的错误。
希望有所帮助!
谢谢, 乔
答案 1 :(得分:2)
您可能已经意识到这一点,但请考虑检查LayoutViewer以查看布局认为它正在使用的内容。
虽然我确定您的示例config.xml只是一个示例,但请确保您已记住为form_test
创建重写并且您的模块有一个有效的块部分。
BTW,LayoutViewer可以真正为Magento Connect正确打包。链接文件缺少必要的配置来启用模块,如果可以从PEAR访问它将更有用。