我已经构建了一个具有此基本控制器的小部件模块:
class MyModule_OrderForm_HandlersController extends Mage_Core_Controller_Front_Action{
public function handleroneAction(){
// do some stuff
}
}
所以这给了我一个mydomain.com/orderform/handlers/handlerone页面,这很棒,但是如何为该功能提供自己的模板文件。
我在谷歌搜索了几个小时而没有找到直接的答案,我希望有人可以帮助我。
感谢。
答案 0 :(得分:0)
如果您正在寻找如何创建窗口小部件,请查看http://www.magentocommerce.com/knowledge-base/entry/tutorial-creating-a-magento-widget-part-1/。
但是为了给你的控制器操作一个模板,我会从inchoo查看这篇文章: http://inchoo.net/ecommerce/magento/programatically-create-magento-blocks-and-inject-them-into-layout/
正如文章所说,正确的“magento方式”是在模块中创建一个扩展Mage_Core_Block_template
的块文件,然后使用布局更新将该块及其模板文件插入到页面中。
inchoo文章中概述的方法允许您跳过创建自定义块和布局更新,并允许您将模板直接插入到该操作的内容区域。
当您致电$this->loadLayout()
时,您将网站的主题应用于该操作。您插入的模板将包含您要插入该页面主要内容区域的所有内容。
第一个参数是您要插入的块的类型。在此示例中,我们使用Mage_Core_Block_Template
,这是用于设置模板的基本块。 createBlock() function ('my_block_name_here')
的第二个参数可以是任意名称。第三个参数是给予块的属性数组。在此示例中,我们分配的唯一属性是“模板”。这就是我们如何告诉块使用哪个模板。