Zen Cart 覆盖系统

在文中,模板系统可能有时被称为’覆盖系统’. 查看重写系统的开发者章节[url]http://www.zen-cart.com/wiki/index.php/Developers_API_Overrides[/url]

重写系统

当Zen Cart™准备去读取一个模板文件时,它会首先检查是否存在那个文件的一个重写,如果没有,它将会加载默认/核心文件。

当你准备去改变一个文件时,首先查看其能否被重写。

下列情况文件允许重写:

  1. 模板文件存在的目录,包含一个名为"Classic"的子目录.
  2. 当前路径包含template_default目录或者一个模板目录,比如"Clssic". 例如,/includes/templates/template_default/common/

很不幸,当前并非所有的文件都支持重写覆盖。Admin目录下没有任何文件允许重写覆盖。

如果你准备编辑的文件允许覆盖重写,执行以下步骤:

  1. 创建一个新目录,除了包含你的模板外,它应该与旧目录相似,并且当前位置不包含其他模板目录。

下面是一个重写的演示实例。其他的重写可以参照这个示例。

文件所处的目录应该包含一个名为"Classic"的子目录。

 默认路径: includes/languages/

 重写路径: includes/languages/<your template dir>/ 

 默认路径: includes/languages/english/ 重写路径: includes/languages/english/<your template dir>

 当前路径包含template_default目录或者一个模板目录,比如 "Classic" 或者 "Blue strip".

 默认路径: includes/templates/template_default/common/
 重写路径: includes/templates/<your template dir>/common/

 默认路径: includes/templates/template_default/templates/
 重写路径: includes/templates/<your template dir>/templates/

 默认路径: includes/templates/template_default/buttons/english/
 重写路径: includes/templates/<your template dir>/buttons/english/
  1. 拷贝你打算编辑的文件到新目录(只需要拷贝准备编辑的文件)。

  2. 编辑拷贝的这个文件。

记住,核心的文件要被所有的文件使用,所以不允许重写。所以呢无需重写那些你没有改动的文件。

编辑文件的时候,如果你能记得使用重写系统,那么将不会有什么大问题。否则,你所有的文件都将被重写。

一些你需要知道的事情:

1. includes/templates/template_default 这个目录包含了很多默认的核心模板文件,但是template_default 不是一个常规目录——它仅仅是这些默认模板文件的位置而已。

2. 记得当你升级新版本的时候Classic模板将被重写。换言之,不要使用Classic模板。你应该创建自己的模板,以避免出现这个问题。

3. Classic模板是默认模板,但是他仅仅是一个为了你定制模板使用的例子。

4. 文本位于语言文件中,在includes/languages目录下。