加载 Magento 模块模板

Load Magento module template

对于 Magento 模块,我需要加载模板文件并让它替换整个页面。它是一个 XML 文件(但也可以是任何内容)。 一般来说

MYNS_MYMODULE_controllernameController 被触发并调用 fooAction() 我需要能够使用我的模板文件中的内容显示一个干净的站点。

请告诉我将模板文件放在哪里以及如何告诉 Magento 将此文件作为根模板加载而不带任何其他内容。

编辑,进一步澄清:

对于http://domain.tld/模块名称/控制器/动作/

我必须在哪里放置模板文件以及我应该如何引用它们?

你可以这样做

  $this->loadLayout()->getLayout()->getBlock('root')->setTemplate('page/1column.phtml');
  $this->renderLayout();

或设置自定义回复

 //$file = myfile or html

 $this->getResponse()->setBody($file);
 $this->renderLayout();

理想情况下,您的模板应位于 /app/design/frontend/mypackage/mytheme/template/mytemplate.phtml

你应该阅读 Magento doc and Alan Storm Blog。 Alan 还写了一本关于 Magento 布局的书:No Frills Magento Layout.

你的url:http://domain.tld/modulename/controller/action/

modulename_controller_action句柄是通过组合路由名称modulename)、动作控制器名称创建的(controller) 和 Action Controller Action Method (action) 合并为一个字符串。这意味着 Action Controller 上的每个可能的方法都有一个与之关联的句柄。 在您的布局中 xml 处理此请求:

<modulename_controller_action>
     ......
</modulename_controller_action>

希望我的建议对你有用。