ZEN CART 目录结构介绍![]() 下面给出ZC开发目录作为入门教程。 ZENCART开发主要是根据文件夹覆盖的方式来重写功能的。所以如果需要增加自己的模版,在很多时候只需要在对应的目录下面建立自己的模版目录名称,并且添加对应的文件即可。 \includes\auto_loaders 自动加载头部 \includes\classes 类文件 文件调用中需要包含 ------------ 重要 \includes\extra_configures 附加配置文件 自动加载 \includes\extra_datafiles 附加数据文件 \includes\functions 函数文件 ------------ 重要 \includes\index_filters \includes\init_includes 初始化包含 \includes\languages 语言包 ------------ 重要 \includes\modules 模块文件 ------------ 重要 \includes\templates 模版文件 ------------ 重要 首先ZC的入口文件是index.php 从这个文件我们可以看到首先是加载 require('includes/application_top.php'); 这里会处理一些配置文件和函数,头文件等。 查看此文件(application_top.php) if (file_exists('includes/configure.php')) { /** * load the main configure file. */ include('includes/configure.php'); } else { require('includes/templates/template_default/templates/tpl_zc_install_suggested_default.php'); exit; } 可以首先是看到处理配置文件 if ($za_dir = @dir(DIR_WS_INCLUDES . 'extra_configures')) { while ($zv_file = $za_dir->read()) { if (preg_match('/\.php$/', $zv_file) > 0) { /** * load any user/contribution specific configuration files. */ include(DIR_WS_INCLUDES . 'extra_configures/' . $zv_file); } } $za_dir->close(); } 然后是附加配置文件 require('includes/autoload_func.php'); 接着是函数库的部分 这些是主要部分,需要跟踪的请自行查看 结束这个文件(application_top.php) 然后是index.php文件里面的 $language_page_directory = DIR_WS_LANGUAGES . $_SESSION['language'] . '/'; $directory_array = $template->get_template_part($code_page_directory, '/^header_php/'); foreach ($directory_array as $value) { /** * We now load header code for a given page. * Page code is stored in includes/modules/pages/PAGE_NAME/directory * 'header_php.php' files in that directory are loaded now. */ require($code_page_directory . '/' . $value); } 部分表明的是接下来加载语言包文件 require($template->get_template_dir('html_header.php',DIR_WS_TEMPLATE, $current_page_base,'common'). '/html_header.php'); 再然后就是处理模版部分的HTML头文件了 require($template->get_template_dir('main_template_vars.php',DIR_WS_TEMPLATE, $current_page_base,'common'). '/main_template_vars.php'); 接着是也就是模块目录下面的PAGE文件夹,里面的主要模版预处理部分代码。 $directory_array = $template->get_template_part(DIR_WS_MODULES . 'pages/' . $current_page_base, '/^on_load_/', '.js'); foreach ($directory_array as $value) { $onload_file = DIR_WS_MODULES . 'pages/' . $current_page_base . '/' . $value; $read_contents=''; $lines = @file($onload_file); foreach($lines as $line) { $read_contents .= $line; } $za_onload_array[] = $read_contents; } 模块目录下面的PAGE文件夹 JS文件部分 require($template->get_template_dir('tpl_main_page.php',DIR_WS_TEMPLATE, $current_page_base,'common'). '/tpl_main_page.php'); 加载模版主结构体部分 有了这些应该对ZC的2次开发会有个基础的了解。 ![]() ![]()
2013年 12月 28日 |
|||
Copyright © 2012-2013 迪赛普科技 版权所有
合作邮箱:admin@desipo.com 合作QQ:76052083 |
接着是也就是模块目录下面的PAGE文件夹,里面的主要模版预处理部分代码。
这块好像写错了,追中后,有个详细的模块部分判断,才是加载PAGES部分的。
if (file_exists(DIR_WS_MODULES . \\\'pages/\\\' . $current_page_base . \\\'/main_template_vars.php\\\')) {
$body_code = DIR_WS_MODULES . \\\'pages/\\\' . $current_page_base . \\\'/main_template_vars.php\\\';
} else {
$body_code = $templ