你现在的位置:首页 > PHP网站建设知识库 > ZenCart > 正文

如何设置zencart模板覆盖

下面总结了关于如何正确使用zencart覆盖系统的步骤——不要修改你的核心文件!
我下面所举的例子都是假定
*假设你的默认语言设置为英语。
*假设模板名称是/CUSTOM
在/includes/languages/english.php文件里修改默认的语言文件
例如:你需要修改标题,所以它会读取你的商店的名称而不是Zen Cart的。
在 /includes/languages中,设置一个与模板名称相同的目录名称,现在你有/includes/languages/custom文件。
复制english.php 到该目录
接下来,可以在新文件/includes/languages/custom/english.php里做任意的修改。
在/includes/languages/english/*.php 文件里修改语言文件。(该目录的所有文件)
例如:你需要在account.php 文件里修改一些文本。比方说,你想要修改'Account'为'Profile'。
设置一个与模板名称相同的目录名称。假设模板名称是custom.。这个目录的路径将是:
/includes/languages/english/custom
复制原始文件/includes/languages/english/account.php 到新的文件夹/includes/languages/english/CUSTOM
然后,修改自定义文件夹中的文件。这将“覆盖”/includes/languages/english现有的文件,从而使核心文件完整且独立。
另一个例子:/includes/languages/english/CUSTOM/meta_tags.php (/includes/languages/english/meta_tags.php的副本):
代码:
define('TITLE', 'Zen Cart!');
变成代码:
define('TITLE', 'Your Store Name');
修改模板文件
/includes/templates/template_default/templates/tpl_*_default.php
例如,你需要修改tpl_account_default.php文件中的一些HTML语言。
在模板目录( /includes/templates/CUSTOM ) ,你应该已经有一个文件夹模板了( /includes/templates/CUSTOM/templates )。
复制 tpl_account_default.php到此目录。然后你可以做一些修改,它会再次覆盖/includes/templates/template_default/templates directory.的基础文件。
你只能复制文件到你修改过的/CUSTOM template directory ,如果不作修改,则默认情况下,商店会从默认模板目录里call默认文件。
修改Sidebox模板
这些遵循定期模板(见上文)相同的格式,只有sidebox路径例外:/includes/templates/CUSTOM/sideboxes
修改Sideboxe模块 -/includes/modules/sideboxes/*.php
例如:修改sidebox information.php文件去包含另一个链接。
在你的sidebox目录(/includes/modules/sideboxes),创建另一个子目录,跟模板/CUSTOM同名,这样,你就有/includes/modules/sideboxes/custom文件了。
复制/includes/modules/sideboxes/information.php 到这个新文件夹。
稍后可以修改副本以满足需求,并且自定义版本将覆盖 /includes/modules/sideboxes的default information.php文件。
通过登录到Admin->Tools->Layout Boxes Controller,你可以验证这个sidebox是否被覆盖。在'Box File Name'列里,如果文字显示为红色,就表明被覆盖了。
在/includes/filenames.php文件中调用自定义文件名
例如:你可以创建一个“关于我们”的自定义页面,并需要call文件名。
与其放一个新定义在/includes/filenames.php文件中,不如从现有extra_datafiles目录调用文件名:
/includes/extra_datafiles.
创建一个新的文件名,about_us_filenames.php,然后放在/includes/extra_datafiles文件中。
在这个文件中,你将有代码:
<?php
// About Us Filename Define
 *define('FILENAME_ABOUT_US', 'about_us');
?>
该文件将被自动调用,就像 此目录中的任何其他文件,从而区别你的自定义文件名是什么系统。
尽量保持其他新文件格式一致。例如,调用命名文件或者有关文件等等。blah_filenames.php
在/includes/database_tables.php文件中调用自定义数据库表
例如:为你的UPS跟踪系统创建一个新的数据库,ups_track,需要为代码定义表名。
与其放一个新定义在/includes/database_tables.php文件中,不如从extra_datafiles directory调用表名。
/includes/extra_datafiles.
创建一个新的文件名,ups_track_database_tables.php ,然后把它放在 /includes/extra_datafiles.文件里。
在这个文件里,你会获得一些代码:
<?php
// UPS Tracking Table
define('TABLE_UPS_TRACK', 'ups_track');
?>
 
该文件将被自动调用,就像 此目录中的任何其他文件,从而告区别你的自定义文件名是什么系统。
附加语言文件
你需要一个叫做extra language definitions附加文件为你在资源中心创建的新框。
在/includes/languages/english/extra_definitions文件中,创建一个名为resource_center_box_defines.php的文件。把 language definitions放到你新的自定义sidebox里。
这个目录会自动加载,确保自定义框或页面被称为language definitions。
添加额外的JavaScript到一个特定的页面
例如:为你的Bizrate帐号加载一些JavaScript,使它能够在订单完成之后,从现有页面的checkout_success.php文件中加载。
在/includes/modules/pages/checkout_success目录中, 创建一个新的文件,命名为 jscript_bizrate.js
在这个文件中,你应该把 bizrate给你的代码放在你自定义的javascript 中,像这样:
<script language="javascript" type="text/javascript"><!—
whatever the heck bizrate gave you
//--></script>
同样的,如果你使用Google的转换跟踪。在所需的文件夹中创建另一个文件(即:checkout_success如果只在该网页上处理),也许命名为jscript_google.php
CSS文件添加与修改
例如:你已经创建了一个新的对于你的网站来说是唯一的CSS类。
与其添加这个到你现有的CSS文件在/includes/templates/custom/css/stylesheet.css里,不如创建一个同样目录名为styleSOMETHINGHERE.css的新文件,并在那里添加CSS数据。
Zen Cart将从该文件夹中自动加载所有的"style*.css" 文件,按字母顺序排列,when drawing your store's pages with that template.
升级
最后,我们需要谈谈升级的问题!
所以,你现在正常使用Zen Cart的覆盖系统!恭喜你,给自己一个掌声。现在,升级 - 你不必担心过度书写自定义文件,因为你所有的文件都在自定义目录里!
所以,做好升级。比如添加新的代码到核心文件,现在,你可以把你的自定义目录,比较新的核心文件的代码。
比如,自定义到/includes/languages/custom/english.php 文件中,然后升级,有一些新的定义在 /includes/languages/english.php ,你需要把这些定义放到你的 english.php文件中。
最简单的方法就是使用文件比较utilty!
强烈建议使用 Beyond Compare - 是的,它的成本只是30美元,但它的价值远不止于此!
好吧,如果你想要更便宜的,可以随时去WinMerge,打开资源并免费索取。
一旦得到了比较utilty文件,你可以比较你的/includes/languages/custom/english.php到新的核心文件, /includes/languages/english.php,并覆盖新变化到你的文件。在所有的覆盖文件中复制所

有的自定义文件。然后上传这些修改到你的网站,随着新版本的其他更新。有关升级的其他问题,还有更多细节,但这是整体的概念。