finecms万能标签list

action 支持"推荐位(position)"、"搜索关键字(keywords)"、"相关文章(relation)"模式,普通数据查询不需要此参数
table 循环表名称,默认为内容表,可以用其他表,插件表格式为:插件名称.表名称(link.linkname)
catid 当前栏目ID号
num 显示数量,还可以写成"num=1,5"相当于limit 1,5
return 返回数组名称,用于循环,默认值为't',调用方式:{$t['title']}
more 值为1时,自动调用内容表的附表内容(也就是自定义的字段)
order 排序,例如: order=id_desc,userid_desc,默认desc排序,可以省掉_desc
join 联合查询表名称(用该表的主键关联),例如:join=member
on 其他表的字段(非join表的自段),必须与join成对出现,否则join失效,例如:join=member on=userid
page 用于分页查询,如果出现了num参数,分页查询将会失效
urlrule 分页URL格式(分页标识符_page_或者[page]),例如:urlrule=$catid-[page].html
pagesize 分页查询每页显示的记录数量(如果出现catid,系统默认会使用该栏目的分页数量)
cache 数据缓存,单位秒,在这缓存时间内调用缓存文件而不再去访问数据库
thumb 值等于1的时候,显示有缩略图的文档;等于0的时候,显示无缩略图的文档(v1.7)
form 调用表单,例如:form=liuyan ,就是调用liuyan的表单数据(v1.7.5)
site 站点id,用于多站点调用,例如: site=2 table=content ,就是调用站点2的内容表(v1.7.5)
fields 为sql语句指定字段,例如: fields=title,url ,与sql语法一致(不能使用`),支持自定义字段名称(v1.7.5)
extend 对特殊sql语句进行延展,具体教程传送口

格式: {list 参数1=值1 参数2=值2 ... 参数N=值N} ... 循环体 ... {/list}

注意:参数和值不能出现引号

一、参数介绍

1、action
模式选择参数,支持"推荐位(position)"、"搜索关键字(keywords)"、"相关文章(relation)"、"自定义字段信息(field)"模式
例如:推荐位查询

{list action=position id=1} ... {/list}

返回推荐位id=1的数据并循环

2、return
数据返回变量,默认为t,循环内直接使用{$t[字段]}

{list ... return=item} {$item['title']} {/list}

返回变量就成了$item,而不再是$t,多层list标签可以用它来解决变量冲突

3、more
当其值为1时,表示联合附表查询,必须与catid或者modelid参数联合使用

{list catid=$catid more=1 cache=36000} ... {$t[附表字段]} ... {/list}

可快速查询出该栏目的自定义字段数据,可配合fields参数减少缓存大小

4、join和on
联合查询表名称,必须与on成对出现

{list table=content join=member on=userid} ... {/list}

表content与member关联查询,on是表content中的关联字段,就是以member表的主键与content表的userid字段先关联查询

5、page、pagesize(显示数量)和urlrule(分页规则)
分页查询,如果存在caitd,则使用该栏目的分页规则和显示数量,返回分页结果变量{$pagelist}

{list catid=$catid page=$page} ... {/list}

栏目分页时,会调用该栏目的分页规则配置,无需后面两个参数

6、num
Limit控制,最大显示数量

{list catid=$catid num=5} ... {/list}

最大显示5条记录(可以写成num=1,5,表示从1开始到5行结束)

7、order

{list catid=$catid order=updatetime,id} ... {/list}

示例按updatetime降序,id降序,如果升序就附加:字段_ASC(默认是降序)

8、字段作为参数(同一字段只能出现一次)

{list catid=1 username=admin num=10} ...{/list}

其中的username是内容表中的字段,解析为:catid=1 and username='admin'

{list NOTcatid=1 num=10} ...{/list}

解析为:catid not in (栏目集合)

9、cache
缓存参数,推荐list查询都加上它

{list catid=1 cache=3600} ...{/list}

缓存3600秒(1小时),在3600秒内调用缓存数据而不访问数据库,减轻服务器压力

10、thumb
是否显示缩略图

{list thumb=1 cache=3600} ...{/list}

当thumb=1时,表示显示有缩略图的文档,相当于SQL中的thumb<>'';当thumb=0时,相当于SQL中的thumb=''

11、form
表单数据查询快捷参数

{list form=liuyan cache=3600} ...{/list}

调用表单,例如表单为liuyan ,示例就是调用liuyan的表单数据,当然相对应本站点

12、site
用于查询指定站点数据

{list site=2 table=content num=10 cache=3600} ...{/list}

站点id,用于多站点调用,示例就是调用站点2的内容表数据

12、fields
为sql语句指定字段,与sql语法一致(各个字段不能使用`字段名`,程序会自动为你加上),支持自定义字段名称

{list fields=title,url,content catid=1 more=1 num=10 cache=3600} ...{/list}

示例中解析为SQL是:select `主表`.`title`,`主表`.`url`,`附表`.`content` from .... 

二、相关示例

1、栏目查询

{list catid=$catid order=updatetime num=10} ... {/list}

查询当前栏目的10条数据,并按updatetime desc排序

2、栏目分页查询

{list catid=$catid order=updatetime page=$page} ... {/list}

查询当前栏目,按照当前栏目默认分页方式分页

3、自定义分页查询

{list catid=$catid order=updatetime page=$page pagesize=10 urlrule=$catid-[page].html} ... {/list}

分页查询,每页显示10条,url地址格式为:栏目id-分页id.html

4、联合附表的自定义字段查询

{list catid=$catid more=1 num=10} ... {/list}

5、Join关联查询

{list catid=$catid join=member on=userid} ... {/list}

解析为:from 内容表 left join member on 内容表.userid=member.主键

6、自定义表查询

{list table=member groupid=1} ... {/list}

查询member表中groupid=1的用户

7、插件表查询

{list table=review.revirew_total contentid=10} ... {/list}

查询review插件中的表review_total中contentid=10的数据

三、Action参数

1、推荐位(position)

{list action=position id=1 catid=$catid} ... {/list}

id:推荐位的id
catid:可选,根据推荐位的类别而决定
输出字段请参考position_data表结构,不用解释太多大家都懂

2、搜索关键字(keywords)

{list action=keywords order=addtime} ... {/list}

order:排序字段参考search表
输出字段请参考search表结构,不用解释太多大家都懂

3、相关文章(relation)
①、调用手动添加的相关文章

{list action=relation id=$id num=10} ... {/list}

id:文章的id
num:显示数量,默认10条
②、通过关键字自动调用相关文章

{list action=relation tag=$keywords id=$id num=5}...{/list}

id:当前文章id
tag:当前文章的关键字
catid:栏目id(可选)
modelid:模型id(可选)

4、自定义字段显示(field)(适合自定义字段表单显示)

{list action=field modelid=$modelid name=字段名称 value=字段默认值} ... {/list}

modelid:栏模型id(必选)
name:字段名称(必选)
value:字段值(可选)
返回数据{$t['form']}:用于表单显示(就是一个表单输入框)
返回数据{$t['data']}:返回复选框、单选按钮中的选项名称和值(数组类型,若要输出请用loop配合)
例:
①、调用模型2中的自定义字段zhiduan(默认值200)的输入表单

{list action=field modelid=2 name=zhiduan value=200} {$t['form']} {/list}

②、调用模型2中的自定义字段zhiduan(必须是复选框、单选按钮类型)的值

{list action=field modelid=2 name=zhiduan}
{loop $t['data'] $n=>$v}
名称:{$n},值:{$v};
{/loop}
{/list}


因为$t['data']是数组类型,说以要用loop循环输出,不用解释太多大家都懂

四、特殊字段辅助参数

1、NOTcatid=值
注:NOT只能与栏目catid搭配
表示catid not in (栏目集合),不用解释太多大家都懂

2、OR字段名称=值

{list catid=$catid ORuserid=1 ... }

表示where ... catid=$catid or userid=1
3、IN字段名称=值

{list catid=$catid INstatus=0,1,2 ... }

表示where ... catid=$catid and status in (0,1,2)

4、BW字段名称=值

{list catid=$catid BWstatus=1,2 ... }

表示where ... catid=$catid and status between 1 and 2

5、LIKE字段名称=值

{list LIKEtitle=%finecms% ...}

表示where ... title LIKE '%finecms%',不用解释太多大家都懂

五、返回数据

1、循环变量return=?,默认为$t
2、分页变量{$pagelist}
3、SQL查询字符串{$sql}(用于测试,打印当前查询的sql语句)
4、统计变量{$total},返回数据总数量
5、循环计数{$key},用于list循环计数变量,从0开始
6、循环统计变量{$count},统计本次循环记录数量
7、支持多层lsit,防止变量冲突,必须设置不同的return值(v1.7.1及以上版本)
如果存在return值,那么所有变量必须加上后缀"_return值",例如:

{list ... return=s}
循环计数变量:{$key_s}
{/list}


分页:{$pagelist_s}
总数:{$total_s}

猜你喜欢

转载自www.cnblogs.com/hm21/p/10198980.html