网络营销电子商务研究中心  
How to buy the best prescription safety glasses in Canada? Let's study!
Go Back   网络营销电子商务研究中心 > 网站建设 > ZenCart
User Name
Password
 
FAQ Members List Calendar Cheap Glasses

Reply
 
Thread Tools Display Modes
  #1   IP: 153.99.36.123
Old 2016-05-14, 06:48 PM
Indian Springs Village Indian Springs Village is offline
初级会员
 
Join Date: 2009-06-14
Posts: 3
Indian Springs Village 现在声名狼藉
Default zencart v150 文件调用流程(index.php分析)

参见index.php说明文档,则应用程序主要调用文件流程为:
* Overview of flow
* <ul>
* <li>Load application_top.php - see {@tutorial initsystem}</li>
* <li>Set main language directory based on $_SESSION['language']</li>
* <li>Load all *header_php.php files from includes/modules/pages/PAGE_NAME/</li>
* <li>Load html_header.php (this is a common template file)</li>
* <li>Load main_template_vars.php (this is a common template file)</li>
* <li>Load on_load scripts (page based and site wide)</li>
* <li>Load tpl_main_page.php (this is a common template file)</li>
* <li>Load application_bottom.php</li>
* </ul>
1.系统配置及初始化
2.配置当前语言目录
3.加载模型文件header_php.php
4.加载头部模板html_header.php(<head>)
5.加载主要页面部分模型main_template_vars.php和模板tpl_[main_page]_defaule.php
6.加载onload脚本
7.加载通用模板tpl_main_page.php(<body>)
8.系统清理收尾工作


具体说明如下:
首先,调用application_top.php进行初始化工作,比如加载配置文件include(’includes/configure.php’);,如果系统没检测到该文件的存在则会尝试调用安装文件。然后它会自动遍历include/extra_configures下的配置文件并包含进来。

在加载了系统配置文件以后接下来是一个非常重要的文件,这也导致了zencart和oscommerce感觉上很大不同的原因,首先调用一个文件require(’includes/initsystem.php’); 在 initsystem.php中最先加载include/auto_loaders/config.core.php,config.core.php是一个二维数组$autoLoadConfig,即以数组的形式保存文件的信息供后面文件调用,然后系统会接着加载完 include/auto_loaders目录下所有文件名匹配$loaderPrefix(默认为config)的文件。

上面程序执行完以后就是加载自动执行程序了require(’includes/autoload_func.php’);在这里它会遍历$autoLoadConfig数组,它最终执行的效果会包含所有必须用到的函数或者类的定义,还有变量的初始化,config.core.php里面的注释比较清楚比如

$autoLoadConfig[0][] = array(’autoType’=>’class’,’loadFile’=>’class.base.php’);

在autoload_func.php里面执行完以后的效果就是require(DIR_WS_CLASSES . ‘class.base.php’),大部分的初始化化工作是通过包含init_includes目录下的文件来实现的,如:

$autoLoadConfig[110][] = array(’autoType’=>’init_script’,’loadFile’=> ‘init_templates.php’);

它在执行完autoload_func.php文件后就已经加载了init_includes目录下的init_templates.php文件。

接下来,介绍下zencart是怎么根据摸版把内容显示出来的。
(1) 包含includes/modules/pages/[main_page]/目录下,以header_php开头的所有php文件。(通常只有header_php.php文件)(可视为模型Module文件)
(2) 包含includes/templates/..目录下的html_header.php文件。(通常为includes/templates/template_default/common/html_header.php文件,详见 http://blog.csdn.net/phpxin123/article/details/7654730 中get_template_dir()的例子释义)
(3) 首先检查includes/templates/..目录下的main_template_vars.php文件。(通常默认情况为includes/templates/template_default/common/main_template_vars.php文件,可能的目录如同上2),默认情况下,将按序尝试调用includes/pages/[main_page]/main_template_vars.php', 若存在则包含该文件,若不存在将分级调用以下文件
(a)includes/templates/[main_page]/.. tpl_[main_page]_defaule.php
(b) includes/templates/template_default/[main_page]/.. tpl_[main_page]_defaule.php
(c) includes/templates/templates/.. tpl_[main_page]_defaule.php
(d) includes/templates/template_default/templates/.. tpl_[main_page]_defaule.php(默认)
(4) 加载js文件(实际上,这些js文件被保存到数组$zv_onload[ ]中),分两步进行:
(a) 包含includes/modules/pages/[main_page]/..目录下所有on_load_*.js形式的文件。(该js文件为<body onload="xxx.js">)
(b) 分级加载on_load_*.js, 依次为
includes/templates/[jscript/on_load]/.. on_load_*.js
includes/templates/template_default/[jscript/on_load]/.. on_load_*.js
includes/templates/ jscript/on_load_ /.. on_load_*.js
includes/templates/template_default/ jscript/on_load_ /.. on_load_*.js
(5) 包含includes/templates/..目录下的tpl_main_page.php文件(该文件为请求页面的主模版文件)。(通常为includes/templates/template_default/common/tpl_main_page.php文件,方法同2)
最后,调用application_bottom.php文件进行收尾清理工作。
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
zencart v150 主要函数解析整理 Ida ZenCart 0 2016-05-14 05:11 PM
ZenCart 1.5.x 后台管理密码过期修改办法 Ronin ZenCart 0 2016-04-09 11:12 AM
ZenCart v1.5.5. remove or change greeting “Welcome Guest! Would you like to log yours Richwoods ZenCart 0 2016-04-09 10:40 AM
ZenCart auto facebook插件 配置使用 topvip ZenCart 0 2012-12-21 07:24 PM
How to Install an Zen Cart Template topvip ZenCart 0 2009-08-23 05:35 PM

Prescription-glasses.com offers prescription glasses online at discount prices.
All times are GMT +8. The time now is 07:20 AM.


Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.