• 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);  

    作者:沐雪
    文章均系作者原创或翻译,如有错误不妥之处,欢迎各位批评指正。本文版权归作者和博客园共有,如需转载恳请注明。
    如果您觉得阅读这篇博客让你有所收获,请点击右下方【推荐】
    找一找教程网-随时随地学软件编程 http://www.zyiz.net/

  • 相关阅读:
    二元查找树的后序遍历结果
    CFileDialog设置多选时的一个问题
    KanRSS.com
    由shuttle这个单词想起的一个小故事
    Sun Java moved to the Partner repository
    Sun Java moved to the Partner repository
    扩展std::string功能的几个做法
    NetBeans 时事通讯(刊号 # 99 Apr 16, 2010)
    NetBeans IDE 6.9 Beta 发布
    KanRSS.com
  • 原文地址:https://www.cnblogs.com/puzi0315/p/2643312.html
Copyright © 2020-2023  润新知