如何为控制器功能提供自己的模板?

时间:2012-07-05 14:22:20

标签: magento

我已经构建了一个具有此基本控制器的小部件模块:

class MyModule_OrderForm_HandlersController extends Mage_Core_Controller_Front_Action{
  public function handleroneAction(){
    // do some stuff
  }
}

所以这给了我一个mydomain.com/orderform/handlers/handlerone页面,这很棒,但是如何为该功能提供自己的模板文件。

我在谷歌搜索了几个小时而没有找到直接的答案,我希望有人可以帮助我。

感谢。

1 个答案:

答案 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')的第二个参数可以是任意名称。第三个参数是给予块的属性数组。在此示例中,我们分配的唯一属性是“模板”。这就是我们如何告诉块使用哪个模板。