`

Magento官方设计手册

阅读更多

布局是如何工作的(How Layout Works)

<!-- start node.tpl.php -->

布局(Layout)是Magento应用中的一个虚拟组件。通过修改了部分的布局,您可以为店铺页面建立升级兼容的页面修改。

布局是由默认布局和更新布局组成,它们都是一些易于学习XML标记。通过这些布局的命令,您可以修改/指定的内容区块和结构区块的关系,并控制前台店铺的功能,例如可以在具体的页面中加载和不加载的具体Javascripts文件。

布局文件是根据模块分开的,每一个模块带来了自己的布局文件(例如' catalog.xml '是一个分类模块的布局文件, 'customer.xml'是客户模块的布局文件...等)。这些布局文件位于app/design/frontend/your_interface/your_theme/layout/ 中和每个文件是进一步分开处理(见图1),每个处理(除了<default>)指定其在店铺特定页面的嵌套更新。

一些布局文件中可能包含了<default>处理。在解析布局文件时, Magent首先寻找分配到<default>的更新布局处理几乎所有的布局文件,读取他们的命令,在app/etc/modules/Mage_All.xml中指定。然后解析特定页面布局更新,最后建立一个商店的页面。

Magento系统使用这种方式,以便无缝添加和删除模块而不影响其它模块的系统。

 

 

布局原理解析(Anatomy of Layout)

<!-- start node.tpl.php -->
<!-- google_ad_section_start -->

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”>)


<reference>

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

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

图3:

分享到:
评论

相关推荐

    Magento设计师手册(官方)中文翻译版

    Magento设计师手册是针对那些想要深入理解和定制Magento电商平台的专业人士的一份宝贵资源。手册旨在帮助设计师扩展他们的Magento知识体系,理解其工作原理,并掌握设计方法。Magento是一个强大的开源电子商务平台,...

    magento用户使用手册

    - **下载源码:** 从官方网站下载最新版本的Magento源码包。 - **配置环境:** 根据系统需求进行服务器环境的配置。 - **安装过程:** 通过Web安装向导完成安装步骤。 - **配置调整:** 设置数据库连接信息、商店...

    Magento设计师手册(官方)中文翻译版(1)参照.pdf

    Magento设计师手册是针对那些想要创建独特Magento网店设计的专业人员的一份宝贵资源。手册详细介绍了Magento的设计概念、工作原理和设计方法,旨在帮助读者理解和构建自定义主题。在开始之前,了解Magento的一些基本...

    Magento插件开发手册 Magento Extension Developers Guide

    《Magento插件开发手册》是一份详尽的指南,旨在帮助开发者理解Magento的核心架构、编码标准以及如何创建和部署自定义插件。 ### Magento核心架构与代码组织 Magento的核心应用结构基于模块化设计,允许开发者通过...

    magento 中文开发手册

    Magento 的模块化设计使其能够轻松扩展,就像 Eclipse 的插件体系一样。 创建模块时,遵循的标准目录结构是: 1. 核心模块位于 `app/code/core/Mage` 目录下,包含了 Magento 提供的基本功能。 2. 自定义模块则放置...

    magento中文手册

    Magento是一款强大的开源电子商务平台,专为在线商家设计,提供了丰富的功能和高度的灵活性。它的特点包括模块化的架构,使得扩展和定制变得简单,能够轻松与各种第三方应用集成,如支付网关、物流服务等。 在网站...

    magento中文手册.pdf

    学习Magento除了阅读官方文档和本中文手册外,还可以参与Magento社区,如Magento StackExchange、Magento论坛等,获取最新的技术资讯、交流经验、寻求帮助。同时,许多开发者也会在GitHub上分享他们的Magento扩展和...

    magento中文用户手册

    Magento中文用户手册深入解析 **一、Magento简介** Magento是一款高度灵活且功能强大的开源电子商务平台,自2008年获得SourceForge最佳新项目奖以来,迅速成为全球电商领域的明星产品。Magento的设计核心在于其...

    Magento中文用户手册

    Magento是一款强大的开源电子商务平台,专为在线商家设计,提供高度可定制性和丰富的功能。这款用户手册是针对中文用户的,旨在帮助他们更好地理解和操作Magento系统,从而有效地管理自己的外贸网站。 一、Magento...

    magento用户使用手册.pdf

    ### Magento用户使用手册知识点概述 #### 第一章 Magento 销售 **1.1 订单管理** - **Magento-2.1订单管理**: Magento 2.1版本中的订单管理功能,包括订单的状态变更、注释添加等操作。 - **关键知识点**: 如何处理...

    magento英文用户手册

    ### Magento 英文用户手册知识点概述 #### 一、重要通知与法律声明 根据所提供的部分内容来看,本章节主要强调了 Varien(Magento 的早期开发者)关于其产品和服务的重要通知及法律声明。这部分内容对于理解 ...

    Magento用户手册

    Magento是一款强大的开源电子商务平台,专为在线商家设计,提供丰富的功能和高度的可定制性。以下将详细解析Magento用户手册中的关键知识点。 1. **Magento介绍** - Magento是一个基于PHP开发的电子商务解决方案,...

    magento用户教程手册下载.doc

    Magento 是一款强大的开源电子商务平台,以其模块化架构和丰富的功能而闻名。该平台的设计灵活性...无论是新手还是经验丰富的开发者,都能从详尽的用户教程手册中学习到如何有效地使用 Magento 构建和管理网上商店。

    Magento中文操作手册.docx

    ### Magento中文操作手册知识点概述 #### 一、Magento系统简介 - **Magento**是一款专业的开源电子商务平台,以其高度灵活性和丰富的功能而闻名。 - **模块化架构**:系统设计允许开发者轻松扩展和定制功能。 - **...

    Magento 1.3: PHP Developer's Guide ([Packt]出品 Magento 1.3开发手册)

    《Magento 1.3: PHP Developer's Guide》是一本非常适合希望深入了解Magento 1.3版本的开发者阅读的手册。无论是对于初学者还是有经验的开发者来说,这本书都能提供宝贵的指导和实用的技术建议。通过学习本书中的...

Global site tag (gtag.js) - Google Analytics