加载 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>
希望我的建议对你有用。
对于 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>
希望我的建议对你有用。