怎么做好destoon二次开发教程的准备

destoon二次开发笔记 数据库 模板制作-CMS技巧-网页制作-壹聚教程网destoon二次开发笔记 数据库 模板制作
Destoon B2B网站系统是基于PHP+MySQL的开源B2B(电子商务)行业门户的首选解决方案。... DESTOON B2B网站管理系统是一套基于PHP+MySQL的开源B2B电子商务行业门户网站解决案。
入门代码示例
一、初始化系统
包含系统根目录下的common.inc.php即可初始化系统。
例如在站点根目录下创建一个hello.php。
示例代码:
require 'common.inc.php';
echo 'Hello World';
二、编写逻辑
系统初始化之后,就可以在php文件里编写逻辑代码,同时也可以调用系统内置的变量、函数和类了。
示例代码:
require 'common.inc.php';
echo DT_ROOT;//输出站点的物理路径
echo '&br/&';
echo DT_PATH;//输出站点的首页地址
echo '&br/&';
$r = $db-&get_one(&SELECT * FROM {$DT_PRE}category&);//从分类表里查询一条数据
print_r($r);//打印读取的数据
$A = cache_read('area.php');//读取系统的地区缓存
print_r($A);//打印读取的数据
print_r($MODULE);//打印系统模块数据
message('Hello World');//输出一段提示信息
三、应用模板
所有输出给浏览器的HTML均通过模板里的规则显示。
使用方法:
template('a', 'b');
参数a表示模版名称
参数b表示模板存放的目录,此参数可以不设置
假如模板目录为default,那么:
template('a', 'b'); 代表 template/default/b/a.htm 模板文件
template('a'); 代表 template/default/a.htm 模板文件
示例代码:
require 'common.inc.php';
template('hello');
template/default/hello.htm 模板文件需要提前创建
初始化系统后系统会自动连接,并将操作对象保存在$db。数据库操作方法请参考include/db_mysql.class.php函数原型,以下仅对常用操作举例。
1、执行SQL语句
$db-&query(&INSERT INTO `{$DT_PRE}table` (`xxx`) VALUES ('yyy')&);
$db-&query(&UPDATE `{$DT_PRE}table` SET `xxx`='yyy' WHERE `zzz`=1&);
$db-&query(&DELETE FROM `{$DT_PRE}table` WHERE `zzz`=1&);
2、读取多条信息
$A = array();
$result = $db-&query(&SELECT * FROM `{$DT_PRE}table` WHERE `xxx`='yyy' ORDER BY `zzz` DESC LIMIT 0,10&);
while($r = $db-&fetch_array($result)) {
&&& $A[] = $r;
print_r($A);
3、读取单条信息
$A = $db-&get_one(&SELECT * FROM `{$DT_PRE}table` WHERE `xxx`='yyy'&);
print_r($A);
4、计算总数
$A = $db-&get_one(&SELECT COUNT(*) AS num FROM `{$DT_PRE}table` WHERE `xxx`='yyy'&);
echo $A['num'];
系统的表前缀可以使用变量$DT_PRE(一般在语句中使用)或者$db-&pre(一般在函数中使用)。
如果在函数中使用数据库操作,需要先进行global $
分类属性筛选
实际显示效果:
以下以商城为例说明使用方法,进入商城管理 模块设置 分类属性参数 选择开启
进入分类管理 点击需要添加属性的分类属性对应的数字
添加属性(只有列表选择和复选框类别并且选择了参与搜索的属性,才会在列表及搜索页面显示)
属性添加好之后,添加商品时,选择对应分类之后,系统会自动显示填写属性的选项
上一页: &&&&&下一页:相关内容destoon运行流程二次开发必看 - 岩_生 - 博客园
随笔 - 113, 文章 - 0, 评论 - 4, 引用 - 0
代码首先包含common.inc.php文件
在common.inc.php文件中,首先定义常量。
define('IN_DESTOON', true);
define('IN_ADMIN', defined('DT_ADMIN') ? true : false);
define('DT_ROOT', str_replace("\", '/', dirname(__FILE__)));
if(defined('DT_REWRITE')) include& DT_ROOT.'/include/rewrite.inc.php';//是否定义了url伪静态?
$CFG = array();//网站整体配置信息
require DT_ROOT.'/config.inc.php';//-----------------网站配置文件
define('DT_PATH', $CFG['url']);
define('DT_DOMAIN', $CFG['cookie_domain'] ? substr($CFG['cookie_domain'],& 1) : '');
define('DT_WIN', strpos(strtoupper(PHP_OS), 'WIN') !== false ? true:& false);
define('DT_CHMOD', ($CFG['file_mod'] && !DT_WIN) ? $CFG['file_mod']& : 0);
define('DT_URL', $CFG['url']);//Fox 3.x
define('DT_LANG', $CFG['language']);
define('DT_KEY', $CFG['authkey']);
define('DT_CHARSET', $CFG['charset']);
define('DT_CACHE', $CFG['cache_dir'] ? $CFG['cache_dir'] :& DT_ROOT.'/file/cache');
define('DT_SKIN', DT_PATH.'skin/'.$CFG['skin'].'/');
define('SKIN_PATH', DT_PATH.'skin/'.$CFG['skin'].'/');//For 2.x
define('VIP', $CFG['com_vip']);
define('errmsg', 'Invalid Request');
随后加载网站基本功能
$L = array();
include DT_ROOT.'/lang/'.DT_LANG.'/lang.inc.php';//语言信息
require DT_ROOT.'/version.inc.php';
require DT_ROOT.'/include/global.func.php';//--------全局函数
require DT_ROOT.'/include/tag.func.php';//-----------标签函数
require DT_ROOT.'/api/im.func.php';//----------------聊天工具
require DT_ROOT.'/api/extend.func.php';//------------自己写的扩展函数
if(!$MQG && $_POST) $_POST = daddslashes($_POST);
if(!$MQG && $_GET) $_GET = daddslashes($_GET);
if(function_exists('date_default_timezone_set'))& date_default_timezone_set($CFG['timezone']);
$DT_PRE = $CFG['tb_pre'];
$DT_QST = $_SERVER['QUERY_STRING'];//----------------querystring
$DT_TIME = time() + $CFG['timediff'];//--------------当前时间
$DT_IP = get_env('ip');
$DT_URL = get_env('url');
$DT_REF = get_env('referer');
$DT_BOT = is_robot();
链接数据库,建立缓存。
header("Content-Type:text/charset=".DT_CHARSET);
require DT_ROOT.'/include/db_'.$CFG['database'].'.class.php';//加载数据库类
require& DT_ROOT.'/include/cache_'.$CFG['cache'].'.class.php';//加载缓存类
if($_POST) extract($_POST, EXTR_SKIP);//解析post请求的数据
if($_GET) extract($_GET, EXTR_SKIP);//解析get请求的数据
$db_class = 'db_'.$CFG['database'];
$db = new $db_class;
$db-&halt = (DT_DEBUG || IN_ADMIN) ? 1 : 0;
$db-&pre = $CFG['tb_pre'];
$db-&connect($CFG['db_host'], $CFG['db_user'], $CFG['db_pass'],& $CFG['db_name'], $CFG['db_expires'], $CFG['db_charset'],& $CFG['pconnect']);
$dc = new dcache();
$dc-&pre = $CFG['cache_pre'];
加载模块的基本配置
$DT = $MOD = $EXT = $CSS = $DTMP = $CAT = $ARE = $AREA = array();
$CACHE = cache_read('module.php');
if(!$CACHE) {
//没有缓存模块,就读取缓存模块。
require_once DT_ROOT.'/admin/global.func.php';
require_once DT_ROOT.'/include/post.func.php';
require_once DT_ROOT.'/include/cache.func.php';
cache_all();
$CACHE = cache_read('module.php');
$DT = $CACHE['dt'];
$MODULE = $CACHE['module'];
$EXT = cache_read('module-3.php');
加载模块,读取模块信息,引入模块文件
if(!isset($moduleid)) {
$moduleid = 1;
$module = 'destoon';
} else if($moduleid == 1) {
$module = 'destoon';
$moduleid = intval($moduleid);
isset($MODULE[$moduleid]) or dheader(DT_PATH);
$module = $MODULE[$moduleid]['module'];
$MOD = $moduleid == 3 ? $EXT :& cache_read('module-'.$moduleid.'.php');
include DT_ROOT.'/lang/'.DT_LANG.'/'.$module.'.inc.php';
$forward = isset($forward) ? urldecode($forward) :& $DT_REF;//------------来源页面
$action = isset($action) ? trim($action) :& '';//-------------动作指令
//判断用户登录
$destoon_auth = get_cookie('auth');
if($destoon_auth) {
$_dauth = explode("t", decrypt($destoon_auth,& md5(DT_KEY.$_SERVER['HTTP_USER_AGENT'])));
//print_r($_dauth);SELECT userid,username,groupid,admin FROM& destoon_member
$_userid = isset($_dauth[0]) ? intval($_dauth[0]) : 0;
$_username = isset($_dauth[1]) ? trim($_dauth[1]) : '';
$_groupid = isset($_dauth[2]) ? intval($_dauth[2]) : 3;
$_admin = isset($_dauth[4]) ? intval($_dauth[4]) : 0;
if($_userid && !defined('DT_NONUSER')) {
$_password = isset($_dauth[3]) ? trim($_dauth[3]) : '';
$user = $db-&get_one("SELECT& username,passport,company,truename,password,groupid,email,message,chat,sound,online,sms,credit,money,loginip,admin,aid,edittime,trade& FROM {$DT_PRE}member WHERE userid=$_userid");
if($user && $user['password'] == $_password) {
if($user['groupid'] == 2)& dalert(lang('message-&common_forbidden'));//禁止用户访问的组别
extract($user, EXTR_PREFIX_ALL, '');
if($user['loginip'] != $DT_IP && ($DT['ip_login'] == 2 ||& ($DT['ip_login'] == 1 && IN_ADMIN))) {
//单点登录,判断ip
$_userid = 0; set_cookie('auth', '');
dalert(lang('message-&common_login', array($user['loginip'])),& DT_PATH);
//登录失败
$_userid = 0;
if($db-&linked && !isset($swfupload) &&& strpos($_SERVER['HTTP_USER_AGENT'], 'Flash') === false) set_cookie('auth',& '');
unset($destoon_auth, $user, $_dauth, $_password);
if($_userid == 0) { $_groupid = 3; $_username = ''; }
if(!IN_ADMIN) {
if($_groupid == 1) include DT_ROOT.'/module/member/admin.inc.php';
if($_userid && !defined('DT_NONUSER')) {
$db-&query("REPLACE INTO {$DT_PRE}online& (userid,username,ip,moduleid,online,lasttime) VALUES& ('$_userid','$_username','$DT_IP','$moduleid','$_online','$DT_TIME')");
if(timetodate($DT_TIME, 'i') == 10) {
$lastime = $DT_TIME - $DT['online'];
$db-&query("DELETE FROM {$DT_PRE}online WHERE& lasttime&$lastime");
$MG = cache_read('group-'.$_groupid.'.php');//读取用户组别配置
$_areaids = '';
$_areaid = array();
if($DT['city']) {
$AREA or $AREA = cache_read('area.php');
if($_aid) {
$_areaids = $AREA[$_aid]['child'] ? $AREA[$_aid]['arrchildid'] :& $_aid;
$_areaid = explode(',', $_areaids);
$_aid & 1 or dalert('系统未开启分站功能,您的分站管理帐号暂不可用',& $MODULE[2]['linkurl'].'logout.php');
$session = new dsession();
require DT_ROOT.'/admin/global.func.php';
require DT_ROOT.'/include/post.func.php';
require_once DT_ROOT.'/include/cache.func.php';
isset($file) or $file = 'index';
$secretkey = 'admin_'.strtolower(substr($CFG['authkey'], -6));
//echo $secretkey;
if($DT['authadmin'] == 'session') {
$_destoon_admin = isset($_SESSION[$secretkey]) ?& intval($_SESSION[$secretkey]) : 0;
$_destoon_admin = get_cookie($secretkey);
$_destoon_admin = $_destoon_admin ? intval($_destoon_admin) : 0;
$_founder = $CFG['founderid'] == $_userid ? $_userid : 0;
$_catids = $_childs = '';
$_catid = $_child = array();
if($file != 'login') {
if($_groupid != 1 || $_admin & 1 || !$_destoon_admin) msg('',& '?file=login&forward='.urlencode($DT_URL));
//判断用户是否已经登录?如果未登录,直接跳转到登录页面。防止用户构造url。
if(!admin_check()) {
admin_log(1);
$db-&query("DELETE FROM { $db-&pre}admin WHERE userid=$_userid AND& url='?".$DT_QST."'");
msg('警告!您无权进行此操作 Error(00)');
//是否记录日志
if($DT['admin_log'] && $action != 'import') admin_log();
if($DT['admin_online']) admin_online();
$psize = isset($psize) ? intval($psize) : 0;
if($psize & 0 && $psize != $pagesize) {
$pagesize = $psize;
$offset = ($page-1)*$pagesize;
if($module == 'destoon') {
(include DT_ROOT.'/admin/'.$file.'.inc.php') or msg();
echo $file.'|'.$module;
include DT_ROOT.'/module/'.$module.'/common.inc.php';//加载模块下的common文件
(include MD_ROOT.'/admin/'.$file.'.inc.php') or msg();//加载模块文件

我要回帖

更多关于 destoon b2b 怎么样 的文章

 

随机推荐