Destoon标签(tag)调用手册
来源: https://destoon.cc/ 时间: 2019-03-01 19:52:09
人气: 1116
评论: 0
什么是标签调用?
标签调用是根据调用条件(condition)从数据表(table)读取调用数量(pagesize)条数据,并按排序方式(order)排序,最终通过标签模板的布局输出数据。
可以看出,标签的工作分两个部分,一是读取数据,二是显示数据。
标签函数原型
标签函数保存于 include/tag-->
会被转换为如下的SQL语句:
selec *
FROM DT_sell
wher status=3
ORDER BY addtime DESC
LIMIT 0,10
读出的数据会保存在 $tags 数组里
通常情况下不需要写table=xxx,应该写moduleid=模块ID,系统会自动对应模块的表
数据显示过程
1、通过标签模板显示
传递&template=abc给标签函数,例如:
<!--{tag("moduleid=-->
默认的标签模板保存在模板目录/tag/目录里,例如&template=abc将调用模板目录/tag/abc-->
此写法传递标签模板为null,并且直接返回数据给$tags数组,此时可以直接在模板里循环了。
以下为一个完整的示例:
<!--{php $tags=tag("moduleid=-->
{loop $tags $t}
第一种写法一般用于多次调用的数据,第二种写法一般用于只调用一次的数据。
常用参数及含义
moduleid
moduleid指模块ID,可在后台模块管理里查询。对于直接调用模块的数据,设置正确的模块ID后,将不需要传递table参数,系统会自动获取。
例如传递moduleid=5,系统将识别为调用供应信息,自动设置table参数为sell。
一般情况下,除了扩展模块里的功能都需要通过moduleid来调用。
table
table指表名,可在后台数据库维护里查询。对于Destoon系统表,不需要加表的前缀;对于非Destoon系统表,需要填写完整的表名,且传递prefix参数。
例如对于Destoon系统表,传递table=announce,如果表前缀为DT_,系统将识别表名为 DT_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
DT_member和DT_company是表的实际名称(包含表前缀),prefix=表示系统不再自动在表名前加前缀。
通常通过传递moduleid可以实现大部分的调用,除非您确认熟悉联合查询,否则不推荐使用。
截至目前,系统默认模板里还没有一个功能需要用到联合查询。
控制标题长度
在标签里传递length参数,例如&length=20表示20个字符长度(一个汉字占2个字符),一般情况建议用css隐藏多余字符(定义height和overflow:hidden)。
传递length参数,系统仅对title字段自动截取,如果需要截取其他字段,可用dsubstr函数。
例如 {dsubst($t[company], 20, ' 表示截取company字段为20个字符,截取后,结尾追加 表示将时间转换为 年-月-日 格式
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即可。
显示信息所在分类
<a href="{$MODULE[$moduleid][linkurl]}{$CATEGORY[$t[catid]][linkurl]}">{$CATEGORY[$t[catid]][catname]}</a>
注意:自V4">{$t[catname]}</a>
控制列数
此项常用于图片的布局,可使用cols参数。
例如调用12张图片,一行显示4个,共3行,则传递&pagesize=12&cols=4
支持cols参数的标签模板限thumb-table变量,如果要截取字数,例如80字符,可使用{dsubst($t[introduce], 80, '
Destoon标签( 常见问题