zencart完整的API开发参考手册(8)

2019-01-19 14:01

图 5. 加载main_template_vars.php文件

main_template_vars.php文件根据$_GET[\的值实现了页面的跳转逻辑. 该文件的加载过程和html_header.php文件的加载过程异曲同工, html_header.php加载的是网页头部中的内容, 而文件main_template_vars.php却决定了要加载的网页的主体内容.

通过观察template_default中common下面的main_template_vars.php中的代码, 可以知道, 若在存储页面文件的”includes/modules/pages/$_GET[\加一个名为main_template_vars.php的文件, 则将直接加载这个文件. 否则, 将加载当前模板中的”tpl_$_GET[\. (注意, 这里实际上没有真正加载文件, 而只是将要加载的文件的路径$body_code进行设置) 如果您对这两个文件的加载过程还不胜了解, 那么请试着做下面的实验.

在地址栏中访问”http://127.0.0.1/zencart/index.php?main_page=news_list”, 将会出现网页未找到的提示信息. 这是可以理解的, 因为news_list是我自己想象的, zen-cart没有提供这个页面, 我自己也没有安装类似的插件.

然后在目录”/includes/modules/pages”中新建一个文件夹, 命名为news_list, 再访问该链接, 就不会提示找不到链接了, 至此一个新的页面就建好了, 接下来的工作就是要丰富该页面的内容了. 这将在后面的章节中予以描述. 6. 加载on_load脚本

on_load_*.js文件中包含了要在标记的onload属性中出现的内容, 即在页面加载完成后要执行的脚本. 可以在同一个页面中定义多个on_load_*.js文件, 这些内容将会同时被执行.

on_load_*.js文件可能是页面级和站点级的. 页面级的on_load_*.js文件只在当前页面中有效, 而站点级on_load_*.js文件将对站点中的每个页面有效. 有关如何定义页面级和站点级的onload事件, 将在后面的章节予以描述.

在这里, 页面级和站点级的on_load_*.js文件内容都将读入$za_onload_array[]数组中, 然后组合到变量$zv_onload中, 为后面做好准备. $zv_onload最终将作为到的onload属性值. 7. 加载tpl_main_page.php文件

这里定义将选择影响页面布局的模板, 可以在具体的页面中选择, 或者使用zen-cart默认的模板(一个标准的三列板式), 模板中会对main_template_vars.php中定义的变量$body_code所指文件予以加载. 8. 加载application_bottom.php文件

application_bottom.php文件中将进行一些清理操作.

正确地定制您的网站 - 文件替代机制

很多用户对zen cart做了自己的修改,非常好!但同时,一些用户修改了很多重要的文件,例如:

/includes/filenames.php

/includes/languages/schinese.php /includes/languages/schinese/*.php 等等...

友情提示:如果你希望以后的升级更容易,不要修改这些文件!

Zen Cart的文件替代机制的功能非常强,你不需要修改上面的这些文件。

如果你修改了这些文件,下次升级的时候,Zen Cart会覆盖这些文件,你做的修改会丢失。

好了,如何避免这种情况呢?如何使用文件替代机制?

下面,我一步步说明如何使用文件替代机制,而不是去修改Zen Cart的核心文件!

下面的所有例子,都假设你:

1. 使用简体中文。其它语言相应修改就好。 2. 例子使用的模板名字是custom

\目录名可以是任何名字.... 只是在所有地方都要一致,这样文件替代机制才能正常工作。

你可以命名为: - mytemplate - custom - billg - helluvacart - zenrocks

- thisseemstoolongatemplatename - supercalifragilisticexpialidocious

- tpl

-- 注,请先阅读-如何添加/建立新的模板?

================================

修改缺省语言文件 - /includes/languages/schinese.php

例子: 你想修改标题,将“Zen Cart!”, 改为“我的商店名称!”

在目录/includes/languages下,建立一个与你的模板同名的目录,例如/includes/languages/custom.

将schinese.php文件复制到该目录。

接着,你就可以修改文件/includes/languages/custom/schinese.php: define('TITLE', 'Zen Cart!'); 改为:

define('TITLE', '我的商店名称!');

================================

修改语言文件 - /includes/languages/schinese/*.php (所有该目录下的文件)

例子: 你想修改account.php中的文字 - 比如你要将 '帐号' 改为 '档案'

建立一个与你的模板同名的目录。假设模板名是custom。那么目录就是:

/includes/languages/schinese/custom

将原来的文件/includes/languages/schinese/account.php复制到新目录:

/includes/languages/schinese/custom

接着, 修改该新的custom目录下的文件。这样,该修改会 '替代' 原来/includes/languages/schinese目录中的相应文件, 从而不会影响和修改核心文件。

================================

修改模板文件 - /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目录中的相应文件。

你只要复制需要修改的文件到自己的模板目录,如果你未做修改,那么缺省情况下,商店会从template_default目录调用缺省文件。

================================

修改边框模板

这和修改通用模板是一样的(见上), 除了边框的路径是:

/includes/templates/custom/sideboxes

================================

修改边框 - /includes/modules/sideboxes/*.php

例子: 你想修改边框information.php文件,加上另外一个链接。

在边框文件的目录中(/includes/modules/sideboxes),建立另一个和模板custom同名的子目录,就是/includes/modules/sideboxes/custom

将文件information.php复制到该新目录中

接着你就可以修改新的information.php,它会替代/includes/modules/sideboxes目录中的缺省information.php文件

你可以核对该边框是否被替代,登录管理页面 -> 工具 -> 外观控制。在栏目 '方框文件名' 下, 如果文件名显示为红色, 就说明它被替代了。

================================

调用自定义文件名 - /includes/filenames.php

例子: 你新建了一个页面about_us,需要调用该文件名。

不要在/includes/filenames.php文件中添加一个新的定义,你应该在已有的目录/includes/extra_datafiles中定义该文件名。

建立新文件about_us_filenames.php,然后放在目录/includes/extra_datafiles中。

在该文件中,要有以下代码: 代码: 全选

// About Us Filename Define

##define('FILENAME_ABOUT_US', 'about_us'); ?>

该文件将自动被调用, 就象该目录中的其它文件一样, 因此系统知道你的定制文件。

尽量用同样的办法新建文件...例如, 调用文件blah,将它命名为blah_filenames.php

================================

调用自定义数据库表 - /includes/database_tables.php

例子: 你为自己的UPS跟踪系统建了个数据库ups_track,需要为代码定义数据表名。

不要在文件/includes/database_tables.php中定义, 你要在已有的目录/includes/extra_datafiles中定义数据表。

建立新文件ups_track_database_tables.php,置于目录/includes/extra_datafiles中。

在该文件中,要有以下代码: 代码: 全选

// UPS Tracking Table

##define('TABLE_UPS_TRACK', 'ups_track'); ?>

该文件将自动被调用,就象该目录中的其它文件一样, 因此系统知道你的定制数据库。

================================

额外语言文件

例如: 你新建了一个Resource Center方框,需要一个额外文件来调用额外语言定义。

在目录/includes/languages/schinese/extra_definitions中, 你可以建立一个文件resource_center_box_defines.php。在该文件中,你可以放置新的方框的所有语言定义。

该文件将自动被调用, 保证你的自定义方框或页面的语言定义被调用。

================================

给已有文件增加额外Javascript

例子: 你想为你的Bizrate帐号调用一些javascript,这样,订单完成后,就会从已有页面调用


zencart完整的API开发参考手册(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:深基坑边坡坍塌事故应急演练方案6.28

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: