您的位置:首页 > 其它

Magento 布局(XML)原理解析

2010-09-18 14:56 218 查看
<block>

Magento
通过 <block>
标记决定页面中的每个区块的行为和视觉表现。在 Magento
中我们已经提到了两种类型的区块 – 结构区块(structural blocks)和内容区块(content
blocks)。区分这两种区块最好的方式是通过分配给它的标记属性来区分。结构区块通常包含属性 ‘as’ ,通过这个属性值程序可以与指定的区域(由
getChildHtml
方法指定)中的模板联系。你会发现在默认布局许多地方出现这个 ‘as’
属性,因为默认布局的一个性质就是建立一个实际的布局,在各个不同的页面中的具体布局上就可以开始增加。例如,在默认布局中,有像 ‘left’ 、
‘right’ 、 ‘content’ 和 ‘footer’
这些结构区块。并不是说这些区块不能存在于正常的布局更新中,但我们为什么不首先在默认布局中建立这些结构区块,然后在后面每个具体的页面基础上添加内容
呢?让我们进一步挖掘 <block>
的现有属性。

type
– 这是模块类的标识符,它定义了区块的功能。此属性不应该被修改。

name
– 这是名称,其他的区块可以通过此名称引用此区块(看图1)。

before
(and) after
– 这两种方法决定内容区块在结构区块中的位置。 before=”-”
after=”-”
这样的命令标志此区块的位置是一个结构区块的最上方或最下方。

template
– 这个属性指定的值决定了此区块的功能是使用哪个模板。例如,如果这个属性值指定了 ‘catalog/category/view.phtml’
,程序就会载入 ‘app/design/frontend/template/catalog/category/view.phtml’
模板文件。

action
<action>
是用来控制前台的功能的,如加载或不加载一个 JavaScript
。一套完整的 action
方式将很快推出,但此时的最佳的学习途径是了解现有的布局更新上面的不同 action
方法。

as
– 此属性指定模板文件中会调用那个区块。 当您在模板中看到 getChildHtml(‘ block_name ‘)
的 PHP 方法,可以肯定它指的是引用属性 ‘as’
的值为 ‘block_name’
的区块。 (例如:在骨架模板中的方法 <?=$this->getChildHtml(‘header’)?>
是调用 <block as="header">
)

<reference>

<reference>
是用来引用另一个区块。要引用灵位一个区块,在内部的更新将应用于与其关联的 <block>
(见图1)。

要使用引用,可以通过区块中的 ‘name’
属性值引用。此属性的指向标签中 ‘name’
属性。所以,如果你使用 <reference name="right">
,响应的区块名称将是 <block name="right">


图1:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: