模板函数getitems

getitems是AKCMS中使用最广泛的函数,80%的数据调用都是通过这个函数完成。

getitems的作用是取数据(文章、电影、新闻……)列表,首先通过几个模版中的调用实例让你对这个函数有直观的印象。

<{getitems category="1,2,3" template="[title]<br />"}>
<!--从ID为1、2、3的3个栏目中调取数据,显示其题目,每行一个-->

<{getitems num="200" orderby="pv_reverse" template="..."}>
<!--按访问量从大到小的顺序获取前200条数据-->

<table>
<{getitems template="<tr><td><a href='[url]'>[title]</a></td></tr>"}>
</table>
<!--将数据生成为一个表格-->

特有参数

id
指定ID,可以是多个,比如:id="1,6,7",只取1,6,7这三篇文章
skip
跳过指定ID,可以是多个,比如:skip="2,3",则跳过2,3这两篇文章
category
栏目ID,可以是多个,比如:category="1,2,3,4"代表从1,2,3,4栏目取内容
skipcategory跳过的栏目ID,可以是多个,比如:skipcategory="2,3"代表跳过栏目2,3的内容
includesubcategory是否取下级栏目的数据,如果为1则表示下级栏目的内容也会被列出来,默认为0
section主题ID,可以是多个,比如:section="1,5,6"代表从1,5,6主题取内容
skipsection跳过的主题ID,可以是多个,比如:skipsection="4,5"代表不取4和5这两个主题的内容
template_n

针对特定模块的显示模板,n代表模块ID,比如:template_5就代表模块5专用的显示模板,而不使用template参数(6.0+

last限制取大于此值的文章(用于上一篇下一篇功能),比如有ID有1,2,3,4,5等文章,last="3"则会取出4,5这两篇文章
next限制取小于此值的文章,比如有ID有1,2,3,4,5等文章,next="3"则会取出1,2这两篇文章
where指定的条件将附到查询语句的最后,比如:where="id>100",则只有ID号大于100的才会被显示出来。这是高级功能,仅供对数据库比较熟悉的用户使用
newinseconds指定只选出几秒内新建的文章,比如:newinseconds="3600"则只取最近一小时录入的文章
editinseconds指定只选出几秒内修改的文章,比如:editinseconds="3600"则只取最近一小时修改过的文章
timelimit是否显示“未来”的文章,比如现在是2010年1月24日10:27:00,默认的2010年2月的文章也会显示出来,如果此属性设置为1,则不显示“未来”的文章
keywords只显示包含指定词的文章,比如:keywords="google"则将题目或关键字字段中包含google的文章
order选取排序值字段大于等于指定值的文章,比如:order=5,则只显示排序值大于等于5的文章
picture选取文章是否包含缩略图,1包含,-1不包含,0忽略
nopicture默认图片,当获取某篇未指定缩略图的文章的缩略图时,会获得这个默认图片的地址
searchtext当指定keywords参数时,通过searchtext设置是否搜索正文,默认不搜索,如果searchtext=1则搜索(4.1.2+
year指定文章发表的年份
month指定文章发表的月份,指定了year之后本参数才生效
day
指定文章发表的日期,指定了year、month之后本参数才生效

排序方式(orderby参数的备选值)

id
序号
orderby排序值
orderby2排序值2
orderby3排序值3
orderby4排序值4
time时间
pv页面浏览量
random随机
update最后修改时间
title按题目
inid按照id的顺序,例:id="8,6,9"的顺序依次8、6、9
comment最后评论时间
commentnum评论数
任意字段
ak_items表中的所有字段都可以用于排序,比如price等字段(6.1+

模版标签

[title]题目
[shorttitle]短题目(未指定短题目时显示题目[title])
[texttitle]

无样式题目

[textshorttitle]无样式短题目
[url1]-[url4]第1-4套网页的地址
[url]第1套(默认)内容页url地址
[keywords]关键词
[aimurl]目标地址
[pv]访问量
[_abc]以下划线开始的是模块中的自定义字段(如果你的自定义字段是test,那就用[_test]调用)
[commentnum]评论数
[categoryid]

栏目id

[category]栏目名
[sectionid]主题id
[section]主题名
[categorypath]栏目的文件夹名
[categoryhomepath]已经计算好的栏目目录
[categoryurl]已经计算好的栏目URL,可以直接用于<a>(3.8+
[categoryup]父栏目的ID
[itemid]文章ID号
[id]序号,1-N
[data]

正文内容

[picture]缩略图地址
[picture:120*80]自定义尺寸(120*80)的缩略图地址(3.9+
[digest]摘要
[attach]附件个数
[y]发表时间的年
[m]发表时间的月
[d]发表时间的日
[h]发表时间的时
[i]发表时间的分
[s]发表时间的秒
[sy]发表时间的短格式年,如2007年则显示为07
[sm]

发表时间的短格式月,如05月则显示为5

[sd]发表时间的短格式日,如08日则显示为8
[last_y]最新编辑年
[last_m]最新编辑月
[last_d]最新编辑日
[last_h]最新编辑时
[last_i]最新编辑分
[last_s]

最新编辑秒

[last_sy]最新编辑短格式年
[last_sm]最新编辑短格式月
[last_sd]最新编辑短格式日


二次开发指引


1 可以通过hook的方法增加自定义的标签,请参考:《getitems处理字段的hook

2 可以通过给标签加后缀直接处理标签内容,请参考:《直接修改模版函数的标签内容(还没写)》

3 可以增加自定义的参数作为查询条件,请参考:《getitems增加参数的hook(还没写)》