搜档网
当前位置:搜档网 › destoon大全

destoon大全

基础教程
destoon二次开发入门

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:2
核心提示:一、初始化系统包含系统根目录下的common.inc.php即可初始化系统。例如在站点根目录下创建一个hello.php。示例代码:?phprequire
一、初始化系统

包含系统根目录下的common.inc.php即可初始化系统。

例如在站点根目录下创建一个hello.php。

示例代码:
require 'common.inc.php';
echo 'Hello World';
?>

二、编写逻辑

系统初始化之后,就可以在php文件里编写逻辑代码,同时也可以调用系统内置的变量、函数和类了。

示例代码:

require 'common.inc.php';

echo DT_ROOT;//输出站点的物理路径
echo '
';

echo DT_PATH;//输出站点的首页地址
echo '
';

$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均通过模板里的规则显示。

使用方法:

include 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 模板文件需要提前创建

destoon系统目录文件结构

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:2
核心提示:目录/文件 说明 /admin 系统核心后台管理 ├ im
目录/文件 说明
/admin 系统核心后台管理
├ image 后台风格
├ template 后台模板
/api 系统及第三方接口
├ kf 在线客服
├ map 电子地图
├ oauth 一键登录
├ pay 支付接口
├ stats 第三方统计
├ trade 担保交易
├ ucenter UCenter
/file
├ backup 数据库备份
├ cache 缓存
├ captcha 验证码字体
├ chat 聊天记录
├ config 配置
├ data 导数据导入
├ email 邮件列表
├ flash Flash文件
├ font 中文字体
├ image 公用图片
├ ipdata IP数据库
├ log 日志
├ md5 MD5镜像
├ mobile 手机列表
├ script javascript
├ session SESSION
├ setting 配置数据
├ temp 临时目录
├ update 系统更新
├ upload 上传文件
/include 核心类库
/install 安装程序
/lang 语言包
/module 功能模块
├ article 文章模块
├ article/admin 文章管理
├ article/admin/template 文章管理模板
├ article/common.inc.php 文章模块初始化
├ article/global.func.php 文章核心函数
├ article/article.class

.php 文章核心类
├ article/index.inc.php 文章首页
├ article/index.htm.php 静态文章首页
├ article/list.inc.php 文章列表页
├ article/list.htm.php 静态文章列表页
├ article/show.inc.php 文章内容页
├ article/show.htm.php 静态文章内容页
├ article/search.inc.php 文章搜索
├ article/task.inc.php 文章计划任务
/skin 风格皮肤
├ default 默认风格
├ default/image 图片文件
├ default/style.css CSS文件
/template 模板文件
├ default 默认模板
├ default/index.htm 首页模板
/upgrade 系统升级
/admin.php 后台入口
/common.inc.php 系统初始化
/config.inc.php 系统配置
/index.html 静态首页
/index.php 动态首页
/version.inc.php 版本控制
destoon系统常量与变量

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:2
核心提示:常量 说明 备注 DT_ROOT 站点物理路径
常量 说明 备注
DT_ROOT 站点物理路径
DT_PATH 站点首页网址
DT_SKIN 风格目录网址
DT_ADMIN 是否在管理后台
DT_DOMAIN Cookie作用域
DT_LANG 站点语言
DT_KEY 安全密钥
DT_CHARSET 字符编码
DT_CACHE 缓存目录物理路径
DT_VERSION 系统版本
DT_RELEASE 更新时间
VIP VIP名称
变量 说明 备注
$DT_TIME 当前时间 Unix时间戳
$DT_IP 当前IP
$DT_URL 当前网址URL
$DT_PRE 数据表前缀
$db 数据库操作对象
$dc 缓存操作对象
$DT 网站设置 数组
$EXT 扩展功能模块设置 数组
$MOD 当前模块设置 数组,仅模块内部存在
$MODULE 系统模块信息 数组
$forward 来源页面
$page 当前页码
$moduleid 模块ID
$catid 分类ID
$CAT $catid所有属性 数组
$areaid 地区ID
$ARE $areaid所有属性 数组
$itemid 信息ID
$cityid 分站ID
$kw 搜索关键词
$_userid 当前登录会员的会员ID 0为游客
$_username 当前登录会员的会员名
$_truename 当前登录会员的姓名
$_company 当前登录会员的公司名
$_money 当前登录会员的资金
$_credit 当前登录会员的积分
$_sms 当前登录会员的短信
$_message 当前登录会员的站内信
$_chat 当前登录会员的新对话
$_groupid 当前登录会员的会员组
$MG 当前登录会员的会员组权限
destoon数据库操作

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:2
核心提示:初始化系统后系统会自动连接数据库,并将数据库操作对象保存在$db。数据库操作方法请参考include/db_mysql.class.php函数原型,
初始化系统后系统会自动连接数据库,并将数据库操作对象保存在$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 $db;
destoon模板存放规则及语法参考

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:2
核心提示:一、模板存放及调用规则模板存放于系统 template 目录,template 目录下的一个目录例如 template/default/ 即为一套模板模板文件
一、模板存放及调用规则

模板存放于系统 template 目录,template 目录下的一个目录
例如 template/default/ 即为一套模板

模板文件以 .htm 为扩展名,可直接存放于模板目录
例如 template/default/index.htm
也可以存放于模板目录的子目录里
例如 template/default/member/index.htm

在PHP文件里,使用模板语法为

或者


如果当前默认模板套系为default,则:

表示使用 template/default/header.htm 模板文件

表示使用 template/default/member/header.htm 模板文件

模板目录下在 https://www.sodocs.net/doc/223598368.html,.php 是模板别名的配置文件,模板别名可以在后台模板管理修改。

模板解析后的缓存文件保存于cache/tpl/目录,扩展名为 .tpl.php

二、模板语法

1、包含模板 {template 'header'} 或 {template 'header', 'member'}

{template 'header'} 被解析为

表示使用 template/default/header.htm 模板文件
{template 'header', 'member'}
被解析为
表示使用 template/default/member/header.htm 模板文件

2、变量或常量表示

变量 {$destoon} 被解析为
常量 {DESTOON} 被解析为
对于数组,标准写法应为 例如 {$destoon['index']},可简写为 {$destoon[index]},模板在解析时会自动追加引号。

3、函数 {func_name($par1, $par2)}

{func_name($par1, $par2)} 被解析为


4、PHP表达式 {php expression}

{php expression} 被解析为

5、条件语句 {if $a=='b'} do A {/if} 或 {if $a=='b'} do A {else} do B {/if} 或 {if $a=='b'} do A {elseif $b=='c'} do C {else} do B {/if}

{if $a=='b'} do A {/if} 被解析为

o A }?>
{if $a=='b'} do A {else} do B {/if} 被解析为

{if $a=='b'} do A {elseif $b=='c'} do C {else} do B {/if} 被解析为


6、LOOP循环 {loop $var $v}...{loop} 或
{loop $var $k $v}...{loop}

{loop $var $v}...{loop} 被解析为

{loop $var $k $v}...{loop} 被解析为
$v) { ... } }?>

三、特殊用法

1、变量或表达式可以用HTML注释,例如 仍被解析为 (可自动过滤此类注释)
2、可直接在模板里书写PHP代码,直接书写PHP代码与 DESTOON 模板语法是兼容的。
Destoon B2B标签(tag)调用手册

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:2
核心提示:什么是标签调用?标签调用是根据调用条件(condition)从数据表(table)读取调用数量(pagesize)条数据,并按排序方式(order)排序,
什么是标签调用?
标签调用是根据调用条件(condition)从数据表(table)读取调用数量(pagesize)条数据,并按排序方式(order)排序,最终通过标签模板的布局输出数据。
可以看出,标签的工作分两个部分,一是读取数据,二是显示数据。

标签函数原型
标签函数保存于 include/tag.func.php
tag($parameter, $expires = 0)
$parameter 表示传递给tag函数的字符串,系统自动将其转换为多个变量。
例如传递 table=destoon&pagesize=10&hello=world
系统相当于得到:
$table = 'destoon';
$pagesize = 10;
$hello = 'world';
三个变量
$expires 表示标签缓存过期时间
>0 缓存$expires秒;0 - 系统默认标签缓存时间;-1 - 不缓存;-2 - 缓存SQL结果;
一般情况保持默认不需要传递。

数据读取过程
例如以下标签:

会被转换为如下的SQL语句:
SELECT *
FROM destoon_sell
WHERE status=3
ORDER BY addtime DESC
LIMIT 0,10

读出的数据会保存在 $tags 数组里
通常情况下不需要写table=xxx,应该写moduleid=模块ID,系统会自动对应模块的表

数据显示过程
1、通过标签模板显示
传递&template=abc给标签函数,例如:

默认的标签模板保存在模板目录/tag/目录里,例如&template=abc将调用模板目录/tag/abc.htm模板来显示数据。
如果标签模板存放于其他目录,例如def,则传递&dir=def&template=abc,系统将调用模板目录/def/abc.htm模板。

2、直接在模板里循环数据

此写法传递标签模板为null,并且直接返回数据给$tags数组,此时可以直接在模板里循环了。
以下为一个完整的示例:

leid=...&template=null");}-->
{loop $tags $t}
...
{/loop>


第一种写法一般用于多次调用的数据,第二种写法一般用于只调用一次的数据。

常用参数及含义
moduleid
moduleid指模块ID,可在后台模块管理里查询。对于直接调用模块的数据,设置正确的模块ID后,将不需要传递table参数,系统会自动获取。
例如传递moduleid=5,系统将识别为调用供应信息,自动设置table参数为sell。
一般情况下,除了扩展模块里的功能都需要通过moduleid来调用。
table
table指表名,可在后台数据库维护里查询。对于Destoon系统表,不需要加表的前缀;对于非Destoon系统表,需要填写完整的表名,且传递prefix参数。
例如对于Destoon系统表,传递table=announce,如果表前缀为destoon_,系统将识别表名为 destoon_announce。
对于非Destoon系统表,传递table=tb_abc&prefix=或者table=abc&prefix=tb_,系统将识别表名为 tb_abc。
fields
fields指查询的字段,默认为*。可以传递例如 fields=title,addtime,但是一般情况下无需传递,Destoon独有的标签缓存机制会自动缓存查询结果,不必担心效率问题。
condition
condition指查询的条件,如果不传递,则为1,代表任意条件的数据(此项需了解SQL语法)。Destoon所有模块遵循统一标准开发,所以很多条件是通用的。
例如 status=3表示正常通过的信息、status=3 and level=1表示级别为1的信息、status=3 and thumb<>''表示有标题图片的信息等。
order
order指数据的排序方法(此项需了解SQL语法)。
例如order=addtime desc表示按添加时间降序排列、order=itemid desc表示按itemid降序排列、order=rand()表示随机数据等。
pagesize
pagesize指调用数据的数量,如果不传递,默认为10。
template
template指指定的标签模板,如果不传递,默认为list,位于模板目录/tag/list.htm,如果传递为null,表示不应用标签模板。参见上述数据显示过程。
debug
debug参数用于调试标签,例如传递&debug=1,系统将输出标签构造成的SQL语句,以便验证标签写法是否正确,不需要调试的标签不用加此参数。

数据字典
参考:https://www.sodocs.net/doc/223598368.html,/dict.php

其他常见用法举例

&和and的区别
&用来分割参数,and是sql语句where后的读取条件,二者完全不同。

多表联合查询
例如查询会员名为destoon的会员和公司资料,可以使用:
{tag("table=destoon_member m,destoon_company c&prefix=&condition=https://www.sodocs.net/doc/223598368.html,erid=https://www.sodocs.net/doc/223598368.html,erid and https://www.sodocs.net/doc/223598368.html,ername='destoon'&template=list-com")}
destoon_member和destoon_company是表的实际名称(包含表前缀),prefix=表示系统不再自动在表名前加前缀。
通常通过传递moduleid可以实现大部分的调用,除非您确认熟悉联合查询,否则不推荐使用。
截至目前,系统默认模板里还没有

一个功能需要用到联合查询。

控制标题长度
在标签里传递length参数,例如&length=20表示20个字符长度(一个汉字占2个字符),一般情况建议用css隐藏多余字符(定义height和overflow:hidden)。
传递length参数,系统仅对title字段自动截取,如果需要截取其他字段,可用dsubstr函数。
例如 {dsubstr($t[company], 20, '...')} 表示截取company字段为20个字符,截取后,结尾追加...

设置日期显示格式
可以在标签里传递datetype参数:
1 表示 年;
2 表示 月-日;
3 表示 年-月-日;
4 表示 月-日 时:分;
5 表示 年-月-日 时:分;
6 表示 年-月-日 时:分:秒
也可以在模板里直接使用date函数,例如{date('Y-m-d', $t[addtime])} 表示将时间转换为 年-月-日 格式
date函数的使用请参阅PHP手册。

调用某一分类的信息
在标签里传递catid参数,例如&catid=5表示调用分类ID为5的所有信息。
如果调用多个分类,用逗号分隔分类ID,例如 &catid=5,6,7表示调用分类ID为5、6、7的所有信息。
分类调用默认包含子分类的信息,如果不需要包含子分类,可设置&child=0参数。
例如&catid=5&child=0表示只调用分类ID为5的信息,不包括子分类的信息。

调用某一地区的信息
调用地区信息和上述调用分类信息的方法完全相同,将其中的catid换为areaid即可。

显示信息所在分类
{$CATEGORY[$t[catid]][catname]}
注意:自V4.0,以上写法将不可用,需要在标签里传递&showcat=1参数,然后在模板里写{$t[catname]}

控制列数
此项常用于图片的布局,可使用cols参数。
例如调用12张图片,一行显示4个,共3行,则传递&pagesize=12&cols=4
支持cols参数的标签模板限thumb-table.htm和list-table.htm
其中,thumb-table.htm显示图片列表,list-table.htm显示文字列表
如果新建支持cols的标签模板或直接循环$tags,可参考以上两个模板的写法
上述效果可以也可以通过CSS实现,无需使用表格,请自行书写

显示文章的简介
使用{$t[introduce]}变量,如果要截取字数,例如80字符,可使用{dsubstr($t[introduce], 80, '...')}


小结
标签看似复杂难懂,实际上在理解各个参数的含义和调用流程后,您会了解到标签实际简单自由、灵活易用、功能强大。
默认模板里已提供了大量的调用范例和标签模板,可以在学习中参阅和调试。
标签调用是制作模板必备的知识,希望您能早日掌握。
destoon公司主页模板风格添加方法

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:2
核心提示:公司主页模板存放于 模板目录/homepage/ (默认为template/default/homepage)公司主页风格存放于 company/skin/一般情况下

,建议
公司主页模板存放于 模板目录/homepage/ (默认为template/default/homepage)
公司主页风格存放于 company/skin/

一般情况下,建议不要直接修改默认模板或风格,以备制作参考。

如果需要创建一套新模板,可以将 模板目录/ homepage目录复制一份 例如 模板目录/newhomepage
对应创建一套风格,可以将 company/skin/default 目录复制一份 例如 company/skin/newskin

进入后台 会员管理 公司管理 公司模板 添加模板

模板名称 填写新模板的命名
风格目录 填写 newskin
模板目录 填写 newhomepage
会员组 根据需要授权的用户组选择

在网站前台,用测试会员帐号登陆,进入会员中心 主页设置 模板
启用新添加的模板

然后边修改风格和模板边刷新会员主页相关页面,即可以看到新模板的效果。

模板制作完成后,抓取界面图片,修改大小为150px X 110px,命名为thumb.gif 保存于 company/skin/newskin/ 供会员选择时预览。

destoon会员整合Ucenter/Discuz!/PHPWind教程

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:2
核心提示:首先进入 Destoon网站后台 -〉会员管理 -〉模块设置 -〉会员整合假如需要整合的主站地址为 https://www.sodocs.net/doc/223598368.html, 论坛为 http://bb
首先进入 Destoon网站后台 -〉会员管理 -〉模块设置 -〉会员整合

假如需要整合的主站地址为 https://www.sodocs.net/doc/223598368.html, 论坛为 https://www.sodocs.net/doc/223598368.html,

1、整合Ucenter

详见:https://www.sodocs.net/doc/223598368.html,/skill/18.html

2、整合Discuz!(5.x/6.x)

- 启用会员整合 选择 Discuz!
- 整合程序字符编码 选择 论坛 https://www.sodocs.net/doc/223598368.html, 的编码
- 整合程序地址 填写 https://www.sodocs.net/doc/223598368.html,
- 整合密钥 自行设定 建议 字母和数字组合
- 提交

进入 Discuz! -〉扩展设置 -〉通行证设置

- 启用通行证 选择 是
- 通行证私有密钥 填写 整合密钥
- 应用程序 URL 地址 填写 https://www.sodocs.net/doc/223598368.html,/member/
- 应用程序注册地址 填写 register.php
- 应用程序登录地址 填写 login.php
- 应用程序退出地址 填写 logout.php
- 提交

3、整合PHPWind(6.x/7.x)

- 启用会员整合 选择 PHPWind
- 整合程序字符编码 选择 论坛 https://www.sodocs.net/doc/223598368.html, 的编码
- 整合程序地址 填写 https://www.sodocs.net/doc/223598368.html,
- 整合密钥 自行设定 建议 字母和数字组合
- 提交

进入 PHPWind后台 -〉插件中心 -〉通行证

- 是否开启通行证 选择 是
- 通行证私有密钥 填写 整合密钥
- 将该网站做为通行证的 选择 客户端
- 通行证服务器地址 填写 https://www.sodocs.net/doc/223598368.html,/member
- 通行证登录地址 填写 login.php
- 通行证登录地址 填写 logout.php?
- 通行证注册地址 填写 register.php
- 提交
destoon模块绑定二级域名的方法

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:2
核心提示:Destoon B2B网

站管理系统所有模块均可绑定二级域名,方法如下1、网站设置 - 绝对地址 - 启用 (默认是启用的,如果没有更改过可跳
Destoon B2B网站管理系统所有模块均可绑定二级域名,方法如下

1、网站设置 -> 绝对地址 -> 启用 (默认是启用的,如果没有更改过可跳过此步)

2、模块管理 -> 修改 -> 绑定域名 填写二级域名

例如:

为供应模块绑定 https://www.sodocs.net/doc/223598368.html, 则填写 https://www.sodocs.net/doc/223598368.html,/ (注意 / 结尾)
然后将域名 https://www.sodocs.net/doc/223598368.html, 绑定到 网站目录/sell
进入功能 供应管理 生成网页 更新信息
如果生成了html页面,需要重新生成一遍
核心提示:会员绑定二级域名和顶级域名的方法会员自动绑定二级域名的方法为了便于理解,下面以域名为https://www.sodocs.net/doc/223598368.html,讲解。首先在域名管理里添加一
会员绑定二级域名和顶级域名的方法

会员自动绑定二级域名的方法

为了便于理解,下面以域名为https://www.sodocs.net/doc/223598368.html,讲解。

首先在域名管理里添加一条A记录 *https://www.sodocs.net/doc/223598368.html, 指向目标服务器IP

然后在服务器上绑定*https://www.sodocs.net/doc/223598368.html, 至 网站路径/company目录或网站根目录

生效后进入网站后台 网站设置 SEO优化 公司主页绑定二级域名 填写 https://www.sodocs.net/doc/223598368.html,

进入网站后台 功能模块 公司管理 生成网页 更新公司

系统会更新公司的主页地址。

附:
Apache示例
https://www.sodocs.net/doc/223598368.html,/vhost/apache.txt
Nginx示例
https://www.sodocs.net/doc/223598368.html,/vhost/nginx.txt
IIS示例
https://www.sodocs.net/doc/223598368.html,/thread-72-1-1.html

二次开发
1.了解destoon模型结构

放大字体 缩小字体 发布日期:2013-01-19 浏览次数:4
核心提示:本文以最简单的destoon模型article模型为例,讲解一下。首先一个模型主要的文件包含在四个地方:前台显示页面的文件 /news/前台
本文以最简单的destoon模型article模型为例,讲解一下。
首先一个模型主要的文件包含在四个地方:
前台显示页面的文件 /news/
前台显示模板 /template/default/article/
后台管理文件 /module/article/
会员管理模板 /template/default/member/



/news/文件夹里有ajax.php、config.inc.php、index.php、list.php、search.php及show.php几个文件。这些文件都只是包含了其他文件(主要是module article模型的文件)而已。不再赘述!

前台显示模板 /template/default/article/这里有index、list、search、show几个htm文件,分别控制相关页面。

后台管理文件/module/article/下的文件:
article.class.php:定义article这个类,包括属性、add、edit、tohtml等等。
common.inc.php:引入一些包含文件。如:/include/module.func.php、 /global.func.php
global.func.php:判定是否登录后台。
index.htm.php:主要为加载首页模版,生成index静态页。
index.inc.php:和index.htm.php很相似,不过没有生成index静态页。
list.htm.php

:生成list静态页。
list.inc.php:和list.htm.php很相似,但没有生成静态页。
search.inc.php:搜索的字段等等搜索相关的
show.htm.php:内容页,用于生成静态页。
show.inc.php:内容页,不过没有生成静态页。
以上主要用于前台显示,而/admin/里面的文件则是后台管理的文件。
2.了解destoon系统构架

3.destoon预定义的函数
4.了解destoon标签向导实现原理
5.开始destoon二次开发

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:4
核心提示:首先看一下官方的帮助文档!一、初始化系统包含系统根目录下的common.inc.php即可初始化系统。例如在站点根目录下创建一个hello.
首先看一下官方的帮助文档!
一、初始化系统

包含系统根目录下的common.inc.php即可初始化系统。

例如在站点根目录下创建一个hello.php。

示例代码:
require 'common.inc.php';
echo 'Hello World';
?>

二、编写逻辑

系统初始化之后,就可以在php文件里编写逻辑代码,同时也可以调用系统内置的变量、函数和类了。

示例代码:

require 'common.inc.php';

echo DT_ROOT;//输出站点的物理路径
echo '
';

echo DT_PATH;//输出站点的首页地址
echo '
';

$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均通过模板里的规则显示。

使用方法:

include 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 模板文件需要提前创建

下面我们就实现一下最最简单的一个功能,单独开发一个模块,这个模块只有一个功能,就是调用网站里面的所有手机号,呵呵。
1.新建/mobile/index.php
2.index.php内放入以下内容:


require '../common.inc.php';
include template('index', 'mobile');
?>



3.新建/template/你的模版/mobile/index.htm
内容同其他模版完全一样,这里不再赘述!
4.你试试http://yourdomain/mobile/看一下。

当然这是最简单的二次开发,当然,这需要你更多的了解啊!
6.destoon二次开发使用数据库

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:4
核心提示:上一个例子过于简单,当然,对于大家整体认识destoon二次

开发有一定的帮助,即简单地调用一下common这个文件,你就可以开始你的
上一个例子过于简单,当然,对于大家整体认识destoon二次开发有一定的帮助,即简单地调用一下common这个文件,你就可以开始你的开发之旅。

本节开始讲一下如何使用数据库。

首先看一下官方帮助文档:
初始化系统后系统会自动连接数据库,并将数据库操作对象保存在$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 $db;


好了。我们开始做一个让用户可以分享qq群的功能,如同discuz上的一个插件。由于qq群可能分享的过多,所以添加上了分组功能。下一篇文章开始!go!
7.destoon二次开发之为添加qq群分类

放大字体 缩小字体 发布日期:2013-01-31 浏览次数:4
核心提示:1.在数据库中新建destoon_qqgroup_category,字段可以见下面的AddCategoryValidate.php文件。2.新建文件/qqgroup/AddCategory.ph
1.在数据库中新建destoon_qqgroup_category,字段可以见下面的AddCategoryValidate.php文件。
2.新建文件/qqgroup/AddCategory.php,该文件用于添加qq群分类。

require '../common.inc.php';
session_start(); //为了防止添加成功页刷新导致多次提交而设置
$_SESSION['r']=rand(1000880,250006250);

include template('header');
?>







当前位置: 首页 » QQ群首页


 















分类名字:
分类描述:











 


QQ群管理


 


QQ群类别



$result = $db->query("SELECT * FROM {$DT_PRE}qqgroup_category limit 0,10");
while($r = $db->fetch_array($result)) {
echo "";
}
?>


".$r['categoryname']."


 





include template('footer');
?>


3.新建/qqgroup/AddCategoryValidate.php用于提交到数据库
session_start();
require '../common.inc.php';
if(isset($_SESSION['r'])){
include template('header');
$db->query("INSERT INTO `guoxue`.`destoon_qqgroup_category` (
`id` ,
`categoryname` ,
`categoryintro`
)
VALUES (
NULL , '$_POST[category]', '$_POST[categoryintro]'
);

");
include template('addcategoryok','qqgroup');
include template('footer');
unset($_SESSION['r']);

}
else{
header("location:/qqgroup/AddCategory.php");
}
?>


4.在上面的文件中我引用了一个模版,所以你相应的也应该在模版中添加/qqgroup/addcategoryok.htm这个模版。

好吧,上面已经可以实现添加分类的功能了。

5.现在说一下添加qq群的功能。当然,你首先得新建一个table,就叫destoon_qqgroup !!!!!新建/qqgroup/add.php。
require '../common.inc.php';
session_start();
$_SESSION['z']=rand(108880,58996627);
include template('header');
?>








当前位置: 首页 » QQ群首页


 























选择分类:
QQ群号:

QQ群名字:

QQ群简介:











 


QQ群管理


 


QQ群类别



$result = $db->query("SELECT * FROM {$DT_PRE}qqgrou

p_category limit 0,10");
while($r = $db->fetch_array($result)) {
echo "

";
}
?>


".$r['categoryname']."


 





include template('footer');
?>


6.该提交到数据库的页面了,呵呵!新建/qqgroup/AddValidate.php.

session_start();
require '../common.inc.php';
if(isset($_SESSION['z'])){
include template('header');
$db->query("INSERT INTO `{$DT_PRE}qqgroup` (
`id` ,
`qqgroupname` ,
`qqgroupnum` ,
`qqgroupintro` ,
`categoryid`
)
VALUES (
NULL , '$_POST[qqgroupname]', '$_POST[qqgroupnum]','$_POST[qqgroupintro]','$_POST[categoryid]'
);

");
include template('addok','qqgroup');
include template('footer');
unset($_SESSION['z']);

}
else{
header("location:/qqgroup/Add.php");
}
?>


7.现在也可以添加qq群了。新建/qqgroup/index.php


require '../common.inc.php';
include template('index','qqgroup');
?>


8.在模版页新建/qqgroup/index.htm.具体我都不说了

9.新建/qqgroup/list.php.

require '../common.inc.php';
include template('list','qqgroup');
?>


10.在模版页新疆/qqgroup/list.htm.具体我都不说了。
二次开发入门1

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:一、初始化系统包含系统根目录下的common.inc.php即可初始化系统。例如在站点根目录下创建一个hello.php。示例代码:?phprequire
一、初始化系统

包含系统根目录下的common.inc.php即可初始化系统。

例如在站点根目录下创建一个hello.php。

示例代码:
require 'common.inc.php';
echo 'Hello World';
?>
二次开发入门2

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:二、编写逻辑系统初始化之后,就可以在php文件里编写逻辑代码,同时也可以调用系统内置的变量、函数和类了。示例代码:?phprequi
二、编写逻辑

系统初始化之后,就可以在php文件里编写逻辑代码,同时也可以调用系统内置的变量、函数和类了。

示例代码:

require 'common.inc.php';

echo DT_ROOT;//输出站点的物理路径
echo '
';

echo DT_PATH;//输出站点的首页地址
echo '
';

$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');//输出一段提示信息
?>
二次开发入门3

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:三、应用模板所有输出给浏览器的HTML均通过模板里的规则显示。使用方法:include template('a', 'b');参数a表示模版名称

参数b表
三、应用模板

所有输出给浏览器的HTML均通过模板里的规则显示。

使用方法:

include 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 模板文件需要提前创建

标签调用
destoon模板存放及调用规则

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:模板存放于系统 template 目录,template 目录下的一个目录例如 template/default/ 即为一套模板模板文件以 .htm 为扩展名,可直
模板存放于系统 template 目录,template 目录下的一个目录
例如 template/default/ 即为一套模板

模板文件以 .htm 为扩展名,可直接存放于模板目录
例如 template/default/index.htm
也可以存放于模板目录的子目录里
例如 template/default/member/index.htm

在PHP文件里,使用模板语法为

或者


如果当前默认模板套系为default,则:

表示使用 template/default/header.htm 模板文件

表示使用 template/default/member/header.htm 模板文件

模板目录下在 https://www.sodocs.net/doc/223598368.html,.php 是模板别名的配置文件,模板别名可以在后台模板管理修改。

模板解析后的缓存文件保存于cache/tpl/目录,扩展名为 .tpl.php

destoon模板语法

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:1、包含模板 {template 'header'} 或 {template 'header', 'member'}{template 'header'} 被解析为 ?php include template('head
1、包含模板 {template 'header'} 或 {template 'header', 'member'}

{template 'header'} 被解析为

表示使用 template/default/header.htm 模板文件
{template 'header', 'member'}
被解析为
表示使用 template/default/member/header.htm 模板文件

2、变量或常量表示

变量 {$destoon} 被解析为
常量 {DESTOON} 被解析为
对于数组,标准写法应为 例如 {$destoon['index']},可简写为 {$destoon[index]},模板在解析时会自动追加引号。

3、函数 {func_name($par1, $par2)}

{func_name($par1, $par2)} 被解析为


4、PHP表达式 {php expression}

{php expression} 被解析为

5、条件语句 {if $a=='b'} do A {/if} 或 {if $a=='b'} do A {else} do B {/if} 或 {if $a=='b'} do A {elseif $b=='c'} do C {else} do B {/if}

{if $

a=='b'} do A {/if} 被解析为

{if $a=='b'} do A {else} do B {/if} 被解析为

{if $a=='b'} do A {elseif $b=='c'} do C {else} do B {/if} 被解析为


6、LOOP循环 {loop $var $v}...{loop} 或
{loop $var $k $v}...{loop}

{loop $var $v}...{loop} 被解析为

{loop $var $k $v}...{loop} 被解析为
$v) { ... } }?>
特殊用法

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:1、变量或表达式可以用HTML注释,例如 !--{$destoon}-- 仍被解析为 ?php echo $destoon; ? (可自动过滤此类注释)2、可直接在模板
1、变量或表达式可以用HTML注释,例如 仍被解析为 (可自动过滤此类注释)
2、可直接在模板里书写PHP代码,直接书写PHP代码与 DESTOON 模板语法是兼容的。
destoon公司主页模板风格添加方法

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:公司主页模板存放于 模板目录/homepage/ (默认为template/default/homepage)公司主页风格存放于 company/skin/一般情况下,建议
公司主页模板存放于 模板目录/homepage/ (默认为template/default/homepage)
公司主页风格存放于 company/skin/

一般情况下,建议不要直接修改默认模板或风格,以备制作参考。

如果需要创建一套新模板,可以将 模板目录/ homepage目录复制一份 例如 模板目录/newhomepage
对应创建一套风格,可以将 company/skin/default 目录复制一份 例如 company/skin/newskin

进入后台 会员管理 公司管理 公司模板 添加模板

模板名称 填写新模板的命名
风格目录 填写 newskin
模板目录 填写 newhomepage
会员组 根据需要授权的用户组选择

在网站前台,用测试会员帐号登陆,进入会员中心 主页设置 模板
启用新添加的模板

然后边修改风格和模板边刷新会员主页相关页面,即可以看到新模板的效果。

模板制作完成后,抓取界面图片,修改大小为150px X 110px,命名为thumb.gif 保存于 company/skin/newskin/ 供会员选择时预览。
Destoon B2B标签(tag)调用手册1

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:什么是标签调用?标签调用是根据调用条件(condition)从数据表(table)读取调用数量(pagesize)条数据,并按排序方式(order)排序,
什么是标签调用?
标签调用是根据调用条件(condition)从数据表(table)读取调用数量(pagesize)条数据,并按排序方式(order)排序,最终通过标签模板的布局输出数据。
可以看出,标签的工作分两个部分,一是读取数据,

二是显示数据。

Destoon B2B标签(tag)调用手册2

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:标签函数原型标签函数保存于 include/tag.func.phptag($parameter, $expires = 0)$parameter 表示传递给tag函数的字符串,系统自
标签函数原型
标签函数保存于 include/tag.func.php
tag($parameter, $expires = 0)
$parameter 表示传递给tag函数的字符串,系统自动将其转换为多个变量。
例如传递 table=destoon&pagesize=10&hello=world
系统相当于得到:
$table = 'destoon';
$pagesize = 10;
$hello = 'world';
三个变量
$expires 表示标签缓存过期时间
>0 缓存$expires秒;0 - 系统默认标签缓存时间;-1 - 不缓存;-2 - 缓存SQL结果;
一般情况保持默认不需要传递。
Destoon B2B标签(tag)调用手册3

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:数据读取过程例如以下标签:!--{tag(moduleid=5condition=status=3order=addtime descpagesize=10)}--会被转换为如下的SQL语句:
数据读取过程
例如以下标签:

会被转换为如下的SQL语句:
SELECT *
FROM destoon_sell
WHERE status=3
ORDER BY addtime DESC
LIMIT 0,10

读出的数据会保存在 $tags 数组里
通常情况下不需要写table=xxx,应该写moduleid=模块ID,系统会自动对应模块的表
Destoon B2B标签(tag)调用手册4

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:数据显示过程1、通过标签模板显示传递template=abc给标签函数,例如:!--{tag(moduleid=...template=abc)}--默认的标签模板保存
数据显示过程
1、通过标签模板显示
传递&template=abc给标签函数,例如:

默认的标签模板保存在模板目录/tag/目录里,例如&template=abc将调用模板目录/tag/abc.htm模板来显示数据。
如果标签模板存放于其他目录,例如def,则传递&dir=def&template=abc,系统将调用模板目录/def/abc.htm模板。

2、直接在模板里循环数据

此写法传递标签模板为null,并且直接返回数据给$tags数组,此时可以直接在模板里循环了。
以下为一个完整的示例:

{loop $tags $t}
...
{/loop>


第一种写法一般用于多次调用的数据,第二种写法一般用于只调用一次的数据。
Destoon B2B标签(tag)调用手册5

放大字体 缩小字体 发布日期:2013-03-03 浏览次数:0
核心提示:常用参数及含义moduleidmoduleid指模块ID,可在后台模块管理里查询。对于直接调用模块的数据,设置正确的模块ID后,将不需要传递
常用参数及含义
moduleid
moduleid指模块ID,可在后台

模块管理里查询。对于直接调用模块的数据,设置正确的模块ID后,将不需要传递table参数,系统会自动获取。
例如传递moduleid=5,系统将识别为调用供应信息,自动设置table参数为sell。
一般情况下,除了扩展模块里的功能都需要通过moduleid来调用。
table
table指表名,可在后台数据库维护里查询。对于Destoon系统表,不需要加表的前缀;对于非Destoon系统表,需要填写完整的表名,且传递prefix参数。
例如对于Destoon系统表,传递table=announce,如果表前缀为destoon_,系统将识别表名为 destoon_announce。
对于非Destoon系统表,传递table=tb_abc&prefix=或者table=abc&prefix=tb_,系统将识别表名为 tb_abc。
fields
fields指查询的字段,默认为*。可以传递例如 fields=title,addtime,但是一般情况下无需传递,Destoon独有的标签缓存机制会自动缓存查询结果,不必担心效率问题。
condition
condition指查询的条件,如果不传递,则为1,代表任意条件的数据(此项需了解SQL语法)。Destoon所有模块遵循统一标准开发,所以很多条件是通用的。
例如 status=3表示正常通过的信息、status=3 and level=1表示级别为1的信息、status=3 and thumb<>''表示有标题图片的信息等。
order
order指数据的排序方法(此项需了解SQL语法)。
例如order=addtime desc表示按添加时间降序排列、order=itemid desc表示按itemid降序排列、order=rand()表示随机数据等。
pagesize
pagesize指调用数据的数量,如果不传递,默认为10。
template
template指指定的标签模板,如果不传递,默认为list,位于模板目录/tag/list.htm,如果传递为null,表示不应用标签模板。参见上述数据显示过程。
debug
debug参数用于调试标签,例如传递&debug=1,系统将输出标签构造成的SQL语句,以便验证标签写法是否正确,不需要调试的标签不用加此参数。

数据字典
参考:https://www.sodocs.net/doc/223598368.html,/dict.php

其他常见用法举例

&和and的区别
&用来分割参数,and是sql语句where后的读取条件,二者完全不同。

多表联合查询
例如查询会员名为destoon的会员和公司资料,可以使用:
{tag("table=destoon_member m,destoon_company c&prefix=&condition=https://www.sodocs.net/doc/223598368.html,erid=https://www.sodocs.net/doc/223598368.html,erid and https://www.sodocs.net/doc/223598368.html,ername='destoon'&template=list-com")}
destoon_member和destoon_company是表的实际名称(包含表前缀),prefix=表示系统不再自动在表名前加前缀。
通常通过传递moduleid可以实现大部分的调用,除非您确认熟悉联合查询,否则不推荐使用。
截至目前,系统默认模板里还没有一个功能需要用到联合查询。

控制标题长度
在标签里传递length参数,例如&length=20表示20个字符长度(一个汉字占2个字符),一般情况建议用css隐藏多余字符(定义height和overflow:hidden)。

传递length参数,系统仅对title字段自动截取,如果需要截取其他字段,可用dsubstr函数。
例如 {dsubstr($t[company], 20, '...')} 表示截取company字段为20个字符,截取后,结尾追加...

设置日期显示格式
可以在标签里传递datetype参数:
1 表示 年;
2 表示 月-日;
3 表示 年-月-日;
4 表示 月-日 时:分;
5 表示 年-月-日 时:分;
6 表示 年-月-日 时:分:秒
也可以在模板里直接使用date函数,例如{date('Y-m-d', $t[addtime])} 表示将时间转换为 年-月-日 格式
date函数的使用请参阅PHP手册。

调用某一分类的信息
在标签里传递catid参数,例如&catid=5表示调用分类ID为5的所有信息。
如果调用多个分类,用逗号分隔分类ID,例如 &catid=5,6,7表示调用分类ID为5、6、7的所有信息。
分类调用默认包含子分类的信息,如果不需要包含子分类,可设置&child=0参数。
例如&catid=5&child=0表示只调用分类ID为5的信息,不包括子分类的信息。

调用某一地区的信息
调用地区信息和上述调用分类信息的方法完全相同,将其中的catid换为areaid即可。

显示信息所在分类
{$CATEGORY[$t[catid]][catname]}
注意:自V4.0,以上写法将不可用,需要在标签里传递&showcat=1参数,然后在模板里写{$t[catname]}

控制列数
此项常用于图片的布局,可使用cols参数。
例如调用12张图片,一行显示4个,共3行,则传递&pagesize=12&cols=4
支持cols参数的标签模板限thumb-table.htm和list-table.htm
其中,thumb-table.htm显示图片列表,list-table.htm显示文字列表
如果新建支持cols的标签模板或直接循环$tags,可参考以上两个模板的写法
上述效果可以也可以通过CSS实现,无需使用表格,请自行书写

显示文章的简介
使用{$t[introduce]}变量,如果要截取字数,例如80字符,可使用{dsubstr($t[introduce], 80, '...')}


小结
标签看似复杂难懂,实际上在理解各个参数的含义和调用流程后,您会了解到标签实际简单自由、灵活易用、功能强大。
默认模板里已提供了大量的调用范例和标签模板,可以在学习中参阅和调试。
标签调用是制作模板必备的知识,希望您能早日掌握。

相关主题