上一章节我们讲述了ecshop模板中foreach的分析-讲座9 ,本章我们将结合ecshop一些常用的二次开发需求。来谈谈ecshop一个非常重要,也是非常关键的文件includes/init.php
1: 首先在所有ecshop的页面,先都会加载init.php.要做一个判断。判断该系统是否被安装.
if (!file_exists(ROOT_PATH . 'data/install.lock') && !file_exists(ROOT_PATH . 'includes/install.lock')
&& !defined('NO_CHECK_INSTALL'))
{
header("Location: ./install/index.php\n");
exit;
}
如果没被安装,那么将跳转到安装页面install目录
2:初始化ecshop一些参数
@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);
包括缓存,ecshop的session等。
3:加载一些ecshop数据库相关配置信息。
require(ROOT_PATH . 'data/config.php');包括数据库帐户信息。
4:包含一些ecshop中最重要的功能函数和公共模块.
require(ROOT_PATH . 'includes/inc_constant.php');
require(ROOT_PATH . 'includes/cls_ecshop.php');
require(ROOT_PATH . 'includes/cls_error.php');
require(ROOT_PATH . 'includes/lib_time.php');
require(ROOT_PATH . 'includes/lib_base.php');
require(ROOT_PATH . 'includes/lib_common.php');
require(ROOT_PATH . 'includes/lib_main.php');
require(ROOT_PATH . 'includes/lib_insert.php');
require(ROOT_PATH . 'includes/lib_goods.php');
require(ROOT_PATH . 'includes/lib_article.php');
5:包含和创建数据库连接对象
require(ROOT_PATH . 'includes/cls_mysql.php');
$db = new cls_mysql($db_host, $db_user, $db_pass, $db_name);
$db->set_disable_cache_tables(array($ecs->table('sessions'), $ecs->table('sessions_data'), $ecs->table('cart')));
$db_host = $db_user = $db_pass = $db_name = NULL;
6:初始化ecshop的session和smarty模板
require(ROOT_PATH . 'includes/cls_template.php');
$smarty = new cls_template;
7:加载语言包和一些cookie
require(ROOT_PATH . 'languages/' . $_CFG['lang'] . '/common.php');
以上就是ecshop的init.php的重大功能作用,也是我们做ecshop二次开发常常遇到的。