上海市zencart出口外贸服饰商城系统

2021-04-06 11:07 jianzhan
zencart关键文档表明

 创作者: zen cart  |  2013-12-10 阅读文章频次:483  重要字:上海市zencart出口外贸服饰商城系统


在zencart系统软件中application_top.php承担的是原始化工厂作,例如载入配备文档include(’’);,假如系统软件没检验到该文档的存有则会试着启用安裝文档。
随后它会全自动解析xmlinclude/extra_configures下的配备文档并包括进去。

merce觉得上非常大不一样的缘故,最先启用一个文档require(’’);
initsystem.php中最开始载入include/auto_loaders /config.core.php,config.core.php是一个二围数字能量数组$autoLoadConfig,既以数字能量数组的方式储存文档的信息内容供后边 文档启用,随后系统软件会然后载入完include/auto_loaders文件目录下全部文档名配对$loaderPrefix(默认设置为config)的文 件。

上边程序运行完之后便是载入全自动实行程序了require(’’);在这里里它会解析xml$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是如何依据摸版把內容显示信息出去的。
在index.php的第二9行有句

$directory_array = $template- get_template_part($code_page_directory, ‘/^header_php/’);

因为全部原始化工厂作早已进行,因此大家便可以在上边的文档寻找她们的界定,如
$autoLoadConfig[100][] = array(’autoType’= ’classInstantiate’,'className’= ’template_func’,'objectName’= ’template’);

在这里里就界定了$template = new template_func(); ,随后$文档中界定在这里里务必要 中界定的template_func对比较了解,在该类中关键界定了2个方式 get_template_dir()和get_template_part();
这2个方式在ZenCart的模版应用中具有了决策性的功效。

get_template_dir方式function get_template_dir($template_code, $current_template, $current_page, $template_dir, $debug=false),它界定了五个主要参数,第一个主要参数通常为个文档名,它是用于分辨后2个主要参数构成的文件目录中有木有配对$template_code 的这一文档,该类复写了默认设置的系统软件涵数file_exists因此许多新手将会会较为蒙蔽

function get_template_dir($template_code, $current_template, $current_page, $template_dir, $debug=false) {
//echo ‘template_default/’ . $template_dir . ‘=’ . $template_code;

if($this- file_exists($current_template . $current_page, $template_code)){
return $current_template . $current_page . ‘/’;
}elseif ($this- file_exists(DIR_WS_TEMPLATES . ‘template_default/’ . $current_page, ereg_replace(’/', ”, $template_code), $debug)){
return DIR_WS_TEMPLATES . ‘template_default/’ . $current_page;
} elseif ($this- file_exists($current_template . $template_dir, ereg_replace(’/', ”, $template_code), $debug)){
return $current_template . $template_dir;
} else {
return DIR_WS_TEMPLATES . ‘template_default/’ . $template_dir;
//return $current_template . $template_dir;
}
}

/*

includes/templates//index

includes/templates/template_default/index

includes/templates//common

includes/mon

*/

get_template_part()方式有2个涵数,第一个主要参数是文档文件目录,第二个主要参数是配对的标准,实行的結果是包括该文件目录下全部文档名配对这一标准的文档

例如$directory_array = $template- get_template_part($code_page_directory, ‘/^header_php/’);

这句话话实行的結果便是回到文件目录下$code_page_directory全部文档名以header_php开始的文档

这般时的url(? cPath=49_27 products_id=83)

你如今应当查询init_sanitize.php中$code_page_directory的界定这时的$code_page_directory的值应当是includes//

因此它就应当包括该文件目录下全部以header_php开始的文档,在这里里好像就仅有一个header_php.php

$directory_array = $template- get_template_part($code_page_directory, ‘/^header_php/’);这一包括文档实际上是原始化前台接待不一样网页页面显示信息需要要采用的自变量涵数,关键是原始化数据信息库的物品,由于每一个网页页面必须的数据信息 材料都是有将会不一样,因此index.php?main_page=index 当main_page的值不一样是在includes/modules/文件目录下都是有一个相匹配的文件目录,这儿是index文件目录

要是了解了这2个方式的使用方法,你也就会了解模版文档全是如何显示信息出去的了

再说表述一 require($template- get_template_dir(’html_header.php’,DIR_WS_TEMPLATE, $current_page_base,’common’). ‘/html_header.php’);

假定当今url:?main_page=index cPath=48

DIR_WS_TEMPLATE 中界定define(’DIR_WS_TEMPLATE’, DIR_WS_TEMPLATES . $template_dir . ‘/’);,模版

因此如今的DIR_WS_TEMPLATE=includes/templates//

$current_page_base在这里里早已便是index

上边早已表述了$template- get_template_dir()的方式了

程序会先后在
includes/templates//index
includes/templates/template_default/index
includes/templates//common
includes/mon

这四个文件目录下找html_header.php,mon文件目录下寻找html_header.php

到这儿便可以自身写摸板文档了,由于$template- get_template_dir()是按序找的,因此你要是在你的模版文档中存有该文档就可以