从默认块在我的本地模块中呈现的位置

时间:2014-12-09 15:49:14

标签: magento

我正在努力学习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>

1 个答案:

答案 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的定义。您可以在该定义中看到定义了头,头,内容等的块根和子块。将为您将创建的所有句柄继承此布局。您只需要定义要加载的子块以及您的位置。