Destoon教程之destoon B2B标签调用手册

发布时间:2020-01-03编辑:脚本学堂
本文介绍了destoon B2B标签调用手册的相关内容,Destoon教程之destoon B2B标签调用手册,需要的朋友参考下。

destoon B2B标签调用

标签调用是根据调用条件(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结果;
一般情况保持默认不需要传递。

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

复制代码 代码示例:
<!--{tag("table=sell&condition=status=3&order=addtime desc&pagesize=10")}-->
会被转换为如下的sql语句
SELECT *
FROM destoon_sell
WHERE status=3
ORDER BY addtime DESC
LIMIT 0,10
 

读出的数据会保存在 $tags 数组里

数据显示过程
1、通过标签模板显示
传递&template=abc给标签函数,例如:
<!--{tag("table=...&template=abc")}-->
默认的标签模板保存在模板目录/tag/目录里,例如&template=abc将调用模板目录/tag/abc.htm模板来显示数据
如果标签模板放于其他目录,例如def,则传递&dir=def&template=abc,系统将调用模板目录/def/abc.htm模板

2、直接在模板里循环数据
<!--{php $tags=tag("table=...&template=null");}-->
此写法传递标签模板为null,并且直接返回数据给$tags数组,此时可以直接在模板里循环了
以下为一个完整的示例:
 

复制代码 代码示例:
<!--{php $tags=tag("table=...&template=null");}-->
{loop $tags $t}
...
{/loop>

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

常用参数及含义
moduleid
moduleid指模块ID,可在后台模块管理里查询。对于直接调用模块的数据,设置正确的模块ID后,将不需要传递table参数,系统会自动获取。
例如传递moduleid=5,系统将识别为调用供应信息,自动设置table参数为sell
table
table指表名,可在后台数据库维护里查询。对于Destoon系统表,不需要加表的前缀;对于非Destoon系统表,需要填写完整的表名,且传递prefix参数
例如对于Destoon系统表,传递table=sell,如果表前缀为destoon_,系统将识别表名为 destoon_sell
对于非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语句,以便验证标签写法是否正确,不需要调试的标签不用加此参数。

数据字典
参考:http://help.destoon.com/dict.php

其他常见用法举例

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

多表联合查询
例如查询会员名为destoon的会员和公司资料,可以使用:
{tag("table=destoon_member m,destoon_company c&prefix=&condition=m.userid=c.userid and m.username='destoon'&template=list-com")}
destoon_member和destoon_company是表的实际名称(包含表前缀),prefix=表示系统不再自动在表名前加前缀。
注意:多表联合查询,要自己拼接表名,系统不会自动在表名前加前缀,可以这样拼接:$DT_PRE."member"