finecms万能标签list
Posted hm21
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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}
以上是关于finecms万能标签list的主要内容,如果未能解决你的问题,请参考以下文章