我正在努力学习Magento。创建自定义HelloBlock模块我想掌握Magento的模板行为。以下是我放在
下的helloblock.xml
文件
app > design > frontend > default > default > layout directory
我不清楚在我的helloblock.xml文件中我没有要求Magento加载页眉,页脚和侧边栏。所以我的模块继承那些块。
非常感谢。
<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.1.0">
<helloblock_index_index>
<reference name="right">
<block type="core/template" name="helloblock" template="helloblock/view.phtml"></block>
</reference>
</helloblock_index_index>
<helloblock_index_mymethod>
<reference name="content">
<block type="core/template" name="helloblock" template="helloblock/view.phtml"></block>
</reference>
</helloblock_index_mymethod>
</layout>
答案 0 :(得分:1)
您已经定义了与新控制器操作(和相关页面)相对应的新句柄(helloblock_index_index,helloblock_index_mymethod)。
您需要知道每个控制器操作,对应一个句柄列表。您只需在任何模板文件中添加tha即可看到该句柄列表:
<?php var_dump($this->getLayout()->getUpdate()->getHandles());?>
这会告诉你例如:
array (size=7)
0 => string 'default' (length=7)
1 => string 'cms_page' (length=8)
2 => string 'STORE_default' (length=18)
3 => string 'THEME_frontend_default_default' (length=27)
4 => string 'cms_index_index' (length=15)
5 => string 'Homepage' (length=8)
6 => string 'customer_logged_in' (length=18)
您可以看到加载的第一个句柄是default
。
在文件app / design / frontend / base / default / layout / page.xml中,您将在xml节点中找到default handle
的定义。您可以在该定义中看到定义了头,头,内容等的块根和子块。将为您将创建的所有句柄继承此布局。您只需要定义要加载的子块以及您的位置。