Magento layout 局原理解析

局原理解析

Magento中的布局(Layout)包含一小部分的标记集合,作为详细说明关于程序如何建立一个页面,如何建立它的行为和每个构建的区块。最佳 的布局途径是在每个角度正确的划分和使用。为了让您能够做到这一点,下面是一些行为特性的布局XML标记。


句柄(Handle)

Handle (图1)是一个标识符,决定应用程序要如何通过嵌套的更新处理它。

如果句柄的名称是<default>,然后应用程序知道在加载网店的几乎所有页面之前应该加载此特定页面布局的嵌套更新(我们说’几乎 所有的’,因为一些特殊的页面像产品图片弹出窗口就没有加载布局中的<default>句柄)。

如果Magento找到<default>以外的句柄,它将按照指定的句柄中的页面嵌套更新对页面进行处理。例 如,<catalog_product_view>包含Product View页面的布局更新,而<catalog_product_compare_index>包含Compare Product 页面的更新布局。句柄作为设计人员设置在网店中的标识符,他不需要广泛的理解 Magento编程,也不应该需要修改。


<block>

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

  • type – 这是模块类的标识符,它定义了区块的功能。此属性不应该被修改。
  • name – 这是名称,其他的区块可以通过此名称引用此区块(看图3)。
  • 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”>)
Advertisements

Laisser un commentaire

Entrer les renseignements ci-dessous ou cliquer sur une icône pour ouvrir une session :

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l’aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

w

Connexion à %s