主题的层次(Hierarchy of Themes)

当您在Magento中为店铺指定多个主题时, 实际上你已经用到了这个层次(Hierarchy)的好处。创建主题是为了生成令人喜爱的图形界面,那么Magento的目标就是确保应用能够定位和正确无误地装载要求的主题,保证应用程序运行不出现错误。

例如,如果您的分类列表页面调用‘view.phtml’(在这种情况下,此模板成为一个必需的文件),但是程序在高层次的主题中无法找到该文件(注:在撰写本手册时,最高层次主题是你在后台指定的,最低层次的主题是Magento自动加载的‘default’主题。在讲来发布的版本中,Magent将为您提供能够完全控制您的主题层次的功能),它会在下一层次的主题中寻找该文件。如果这种失败,它将继续努力降低主题的层次寻找,直至它能够找到‘view.phtml’文件时,该就停止搜索并加载。这种方法的建筑设计被称为fallbacks ,因为应用程序‘fall back’下一个所需文件的可能来源,以便检索和加载它。

假如你为店铺指定了三个主题,每个主题包含的文件如下:

表格 1

default my_theme_1 my_theme_2
All required files templates/3-col-layout.phtml templates/3-col-ayout.phtml
  templates/header.phtml css/base.css
  images/logo.gif  
  css/base.css  
  css/boxes.css  

 

这三个主题的层次如下:

表格 2

HIGHEST my_theme_2
  my_theme_1
LOWEST default

 

仔细观察,在表1有几个冗余的文件如templates/3-col-layout.phtmlcss/base.css。现在让我们重新排表格让这些冗余文件在主题之间平信排列。

表格 3

default my_theme_1 my_theme_2
All required files    
  templates/3-col-layout.phtml templates/3-col-layout.phtml
  templates/header.phtml  
  images/logo.gif  
  css/base.css css/base.css
  css/boxes.css  

 

你可能会问:“Ok, 太好了.但是这意味着什么?”
好, 让我提醒你,表3中的那些文件是你看这些文件的方式,而不是Magento看这些文件的方式。

表4告诉你Magento 怎样看待这些文件的装载:

表格 4

default my_theme_1 my_theme_2
All required files    
    templates/3-col-layout.phtml
  templates/header.phtml  
  images/logo.gif  
    css/base.css
  css/boxes.css  

 

看到了吗?Magento是怎样忽略层次里那些冗余文件和仅仅识别层次里更高的主题的文件的。这是因为当它发现要求的文件就中止查找层次低的主题中的该文件而继续查找还没有发现的文件。

 


:: 在这章,你学到了怎么创建和管理主题。下一章,我们将要一步一步学习怎样创建一个主题。你也将学习导布局(layouts),模板(templates)和皮肤(skins) - 在进入下一章之前确保你已经熟知了那些术语-Magento设计术语章节