ecshop 结构

一、 文件夹功能说明
1 、根目录:前台程序文件
2 、admin :后台程序文件夹
– 根目录:后台程序文件 *.php 文件
–help/zh_cn :各功能的帮助文件 *.xml 文件
–images :后台页面用图片
–includes :后台公用文件和函数
–js :后台用js 脚本
–styles :后台用样式表
–templates :后台页面模板 *.htm 文件
3 、api :调用API 的系统公用函数
4 、cert :存放证书的文件夹
5 、data :数据连接设置等,包括各种广告的上传图片等
–afficheimg :首页flash 广告图片
–brandlogo :品牌logo 
6 、images :上传商品图片文件夹,按日期分目录
–200902 :按月份划分商品图片
–upload :上传文件夹,包括file 、flash 、image 和media 

7 、includes :前台公用文件和函数
–codetable :语言对应的代码表
–fckeditor :开源html 文本编辑器
–modules/convert :shopex 转换文件
–modules/cron :如自动上下架、ip 删除等函数
–modules/integrates :整合各种插件和函数基础类
–modules/payment :各种支付接口插件
–modules/shipping :各种送货方式插件
8 、install :系统安装文件夹,用后请删除
9 、js :前台用js 脚本
–calendar :日历控件
10 、languages :语言文件
–zh_cn :简体中文语言文件,存储简体中文下使用的函数变量等
–zh_tw :繁体中文语言文件,存储繁体中文下使用的函数变量等
11 、temp :存放临时缓存等文件
12 、themes :模板文件夹,可以随意拷贝模板样式
13 、wap :手机浏览程序
–includes ;公用文件和函数
–templates :页面模板 *.wml 文件
14 、widget :搜狐博客小插件

 

 

二.结构

1. 根目录下的php 文件都为controller ,接收页面请求地址。

   都会define(‘IN_ECS’, true) 和包含init.php 文件

   在模块中会根据IN_ECS 是否定义来判断进入是否正常。

   Init.php 为初始化系统环境

 

2. init.php 初始化环境

/* 初始化设置 */

@ini_set( 'memory_limit' ,           '64M' );

@ini_set( 'session.cache_expire' ,  180);

@ini_set( 'session.use_trans_sid' , 0);

@ini_set( 'session.use_cookies' ,   1);

@ini_set( 'session.auto_start' ,    0);

@ini_set( 'display_errors' ,        1);

 

/* 数据链接配置 */

require(ROOT_PATH . 'data/config.php');

 

DEBUG MODE

0

disabled debug

1

output error message

2

disabled caching

4

showing debug page

8

logging  SQL  query

 

if (defined( 'DEBUG_MODE' ) == false )

{

    define( 'DEBUG_MODE' , 0);

}

 

引入库文件

require(ROOT_PATH . 'includes/inc_constant.php');  定义常量

ec 基础类。获得table 名,domain ,url , data_url, image_ur l

require(ROOT_PATH . 'includes/cls_ecshop.php');

用户级错误处理类。错误收集,显示(模板,非模板)

require(ROOT_PATH . 'includes/cls_error.php');

时间函数

require(ROOT_PATH . 'includes/lib_time.php');

基础函数库。获取用户的真实ip 地址,计算字符串长度,获得用户操作系统换行符,发送邮件,文件或目录权限检查函数,检查目标文件夹是否存在,字符转义,检查文件类型,文件上传,将json 传递的参数转码,获取文件后缀名并判断是否合法,读写结果缓存文件。

require(ROOT_PATH . 'includes/lib_base.php');

 

共用函数库。验证邮件是否合法,创建地区的返回信息,获得指定国家的所有省份,获得指定分类下的子分类的数组,过滤和排序所有分类,载入配置信息,取得品牌列表,所有促销活动信息,获取邮件模板。。。。。。

require(ROOT_PATH . 'includes/lib_common.php');

前台公用函数库。更新用户SESSION,COOKIE 及登录时间、登录次数,获取用户信息数组,取得当前位置和页面标题,创建分页信息,获得浏览器名称和版本,判断是否为搜索引擎蜘蛛。。。。。

require(ROOT_PATH . 'includes/lib_main.php');

动态内容函数库。获得查询次数以及查询时间,调用浏览历史,调用购物车信息,调用指定的广告位的广告,调用会员信息,调用评论信息,调用商品购买记录,调用在线调查信息。

require(ROOT_PATH . 'includes/lib_insert.php');

商品相关函数库。

require(ROOT_PATH . 'includes/lib_goods.php');

ecshop 文章及文章分类相关函数库

require(ROOT_PATH . 'includes/lib_article.php');

 

 

/* 创建 ECSHOP 对象 */

$ecs = new ECS($db_name, $prefix);

 

/* 初始化数据库类 */

require(ROOT_PATH . 'includes/cls_mysql.php');

$db = new cls_mysql($db_host, $db_user, $db_pass, $db_name);

 

 

/* 创建错误处理对象 */

$err = new ecs_error('message.dwt');

 

/* 载入系统参数。 从数据库中读取出来的*/

$_CFG = load_config();

 

/* 载入语言文件。赋值数组$_LANG[]*/

require(ROOT_PATH . 'languages/' . $_CFG['lang'] . '/common.php');

 

全局变量 $db, $ecs, $err ,在函数中用$GLOBALS 引用

 

Session 对象

if (!defined('INIT_NO_USERS'))

{

    /* 初始化session */

    include(ROOT_PATH . 'includes/cls_session.php');

 

    $sess = new cls_session($db, $ecs->table('sessions'), $ecs->table('sessions_data'));

 

    define('SESS_ID', $sess->get_session_id());

}

 

/* 创建 Smarty 对象。*/

require(ROOT_PATH . 'includes/cls_template.php');

$smarty = new cls_template;

 

---- Index.php ---------------------------------------------------------------------------------------------------------------

 

缓存编号

$cache_id = sprintf( '%X' , crc32($_SESSION[ 'user_rank' ] . '-' . $_CFG[ 'lang' ]));

 

if (!$smarty->is_cached( 'index.dwt' , $cache_id))

{

    // 页头和页尾所需变量赋值

    assign_template();

 

     /*…………………*/

页面中的动态内容,也就是模板设置中的动态内容。

动态内容区域为

<!-- TemplateBeginEditable name=" 美体" -->

<!-- TemplateEndEditable -->

标签所在位置。

即需自定义模板区域需自己添加此标签,在管理后台就可以对指定区域编辑。

 

    assign_dynamic( 'index' );

}

 

// 显示并创建缓存

$smarty->display( 'index.dwt' , $cache_id);  

你可能感兴趣的:(ecshop)