如果我在我的控制器中看到这个功能 - Magento如何知道加载/显示哪个布局(和模板)?
public function upsellAction()
{
$this->loadLayout();
$this->renderLayout();
}
查找模块的布局
在您的模块中,etc/config.xml
您可以找到以下内容:
<layout>
<updates>
<module module="Vendor_Module">
<file>path/to.xml</file>
</module>
</updates>
</layout>
如果此节点位于该<frontend>
节点下,您将在该文件下app/design/frontend/base/default/layout/path/to.xml
。如果此节点位于节点下,<adminhtml>
则它将位于节点下app/design/adminhtml/default/default/layout/path/to.xml
找到此操作方法的正确句柄
首先,您需要找出模块的路径名称。
它位于您的模块文件夹下 etc/config.xml
如果您正在处理前端控制器,它将位于<frontend>
节点下:
<routers>
<customfrontname>
<use>standard</use>
<args>
<module>Vendor_Module</module>
<frontName>customfrontname</frontName>
</args>
</customfrontname>
</routers>
在上面的示例中,您的前缀是customfrontname
。
如果是后端控制器,前端将始终是adminhtml
您的商店已修补。
现在,您需要找到您的控制器名称,这并不困难,它是您的控制器文件的开始。
例如,如果您的控制器被调用CustomController.php
它将是custom
。
最后,最后一部分是方法名称的开头。
在你的情况下,你的方法被调用upsellAction
它将是upsell
。
总而言之,在我的示例中,您的布局句柄将是<customfrontname_custom_upsell>
前端控制器和<adminhtml_custom_upsell>
后端控制器的情况。
现在,您只需打开第一部分中找到的布局文件,然后查看这些布局处理节点内的内容