Magento是建立在完全模块化的模式基础上的,这为你的网店带来无限的可扩展性和灵活性。这章我们介绍如何开发magento主题。
在Magento之前你很可能已经使用过其他电子商务程序。因此在开始之前,我们希望你抛弃所有按以往经验得来的期待,这并不意味者你要学习一个全新的语言,也不意味着你要改变所有的工作流程,只是你要学习一些新的技巧来开发Magento的主题。掌握这些工具并且始终注意关注他们,你会喜欢上这种结构的。下面我们开始介绍:
为了使你更清楚的理解区块和布局的含义,这里提供一些心理导图工你参考:
然后想象四个。。。。。。
Diagram 1
然后我们来看一下Magento网店的首页缩略图:
Diagram 2
看看上面缩略图可以被分割成几部分,以两种方式分割。
Diagram 3
Diagram 4
你刚建立的思维导图给你在概念和真实区块之间一个平行的比较,我知道你也许完全糊涂了,让我来解释一下:
从概念角度看,图2中的框架是结构区块。他们是内容区块的父区块,他们帮助去定内容区块在一个网店页面中显示的区域位置(如在图3中 ) 。这些结构块的存在形式为页眉区,左栏地区,右栏...等等有助于创建网店的视觉结构。;l
另一方面,内容区块概念上就是装点结构区块的独立颜色的区块。在一个网店内容里,他们才是真正的内容。内容区块代表着页面内的每一个功能特性(比如分类列表,标注和产品标签等等),并且使用模板文件生成(x)HTML插入到父结构区块里。
布局Layout
布局就是用来分配内容区块到结构区块的工具。布局以XML 文本文件的形式存在,通过修改布局,你可以移动区块和分配模板到内容区块来产生结构区块的标签。事实上,通过一些布局文件的帮助,你可以修改网店每页的可视布局。更多关于布局的信息可以参考下面这个连接
介绍布局 Layouts
在magento里你不再需要left_column.ext这个模板文件, 取而代之的是通过管理每个功能性基础元素来管理模板。你可以通过一些布局命令载入或者卸载功能元素来控制网店页面。
下面是Magento建立主题的全部工具:
要建立一套网店的模板,你需要按照一下这些步骤完成:
到管理界面Administration Panel (http://yourhost.com/admin) 然后 System -> Cache Management. 在'All Cache' 选择 'Disable' 然后保存。这样会忠实的展现你对页面的修改。
你可以做一个如下的列表:
做完了上面的列表,你就可以为每个结构类型创建一个(X)HTML 标记并保存为骨架模板Skeleton template,将它保存在 app/design/frontend/your_interface/your_theme/template/page/
.
skeleton template例子:
Upon scanning through the sample skeleton template above, you will notice a PHP method called =$this->getChildHtml()?>
inside each presentational markup. This is the way Magento loads structural blocks into skeleton templates and hence is able to position all the contents of the structural blocks within a store page.
Each getChildHtml calls on a name as in
, and these names are ways by which each structural blocks are identified in the layout. Skeleton templates are assigned to the store through the layout.
建立好骨架模板之后 skeleton templates, 你需要为每个内容木块创建模板
那么模板保存到那里呢?
Diagram 5
1. 到管理页面 admin 然后 System -> Configuration
2. 选择你的网店 (通过 website/store selector)
3. 页面刷新后,选 'Developer' tab ,然后在Template Path Hints 选'Yes'.
做完之后回到前台,刷新页面之后你就可以看到所有模板列表的路径了。只要通过路径修改相关的模板就可以了。
那么布局文件在哪?
在这里 app/design/frontend/your_interface/your_theme/layout/
. 和模板文件一样, 布局文件也是按照基于每个模块的方式存储的,这样你就可以方便的按模板提示修改。首先,激活模板提示,刷新要修改的页面,找寻模板提示的模板路径。比如你想移动mini cart,参考模板路径(ex:app/design/frontend/default/default/checkout/cart/sidebar.phtml) ,用主题文件夹里第一个文件夹名(字体加重的那个)来寻找相关布局文件。所以在这个例子里,我们要寻找'checkout.xml'来修改mini cart的位置。
一共有两种布局--默认(default)和更新(updates)。 默认布局 default layout (page.xml
) 是默认应用到自身或者几乎每个页面的布局。所有其他的布局文件都是更新布局Layout Updates,也就是基于每个默认布局基础上的布局。
让我们举例说明一下骨架模板(skeleton template):
在默认布局里,你已经设置为三栏结构,就是说,默认几乎所有的页面都是三栏结构。但是在产品页面并不需要三栏,对产品页面来说,你需要一个包括右边栏的两栏的结构。为了实现这一点,你要不管默认布局,打开catalog.xml文件,在其中修改布局命令。这就是所谓升级一个布局(updating a layout).
Example way of assigning skeleton template
page/2columns-right.phtml