Magento 布局(XML)原理解析

来源:互联网 发布:淘宝都是支付宝登录吗 编辑:程序博客网 时间:2024/05/22 01:55

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

  1. type – 这是模块类的标识符,它定义了区块的功能。此属性不应该被修改。
  2. name – 这是名称,其他的区块可以通过此名称引用此区块(看图1)。
  3. before (and) after – 这两种方法决定内容区块在结构区块中的位置。 before=”-”after=”-” 这样的命令标志此区块的位置是一个结构区块的最上方或最下方。
  4. template – 这个属性指定的值决定了此区块的功能是使用哪个模板。例如,如果这个属性值指定了 ‘catalog/category/view.phtml’ ,程序就会载入 ‘app/design/frontend/template/catalog/category/view.phtml’ 模板文件。
  5. action<action> 是用来控制前台的功能的,如加载或不加载一个 JavaScript 。一套完整的 action 方式将很快推出,但此时的最佳的学习途径是了解现有的布局更新上面的不同 action 方法。
  6. 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:

原创粉丝点击