getitems 文章列表模板函数

作者: zms! 日期: 2012.05.15 本文发布于3132天前 分类: 使用手册 相关:

getitems函数是ZVCMS中使用最广泛的函数,可以这么说,把这个函数弄明白了,就掌握了80%的ZMS的使用。
<{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>
<!--将数据生成为一个表格-->


公用参数(get***系列函数都支持的参数)


start 从第几篇文章开始,start="3"表示,抛弃符合条件的前2篇文章,从第3篇开始取,默认值为1
num 取出的文章数,默认值是10
colspan 子循环的次数,默认是没有子循环
overflow 子循环结束后插入的内容,与colspan结合可以实现很多效果,比如:共显示20篇文章每5行中间插入一根线就这样写:num="20" colspan="5" overflow="<hr />"
expire 缓存有效期,单位秒,expire="3600"表示缓存1小时,1小时内相同属性的标签不再查询数据库
length 题目长度限制,单位字节,比如:length="20"代表题目截取10个汉字或20个字母,如果是半个汉字将被舍弃
strip 题目被截取后显示的字符,比如可以指定strip="..."就表示如果题目被截断了就加上个省略号
bandindex 绑定分页,分页列表页的主内容区域必须指定bandindex="1"才能正常使用分页功能
emptymessage 如果什么内容也没有取到,则显示这个值,emptymessage="未找到符合条件的文章"
year 可以取得某年的文章
month 可以取得某年某月的文章,如果year为空则此属性无效
day 可以取得某年某月某日的文章,如果year或month为空则此属性无效
elapse 如果这个参数为1,则在生成的代码最后以注释的形式加入执行时间(这个功能是方便性能优化用的,当一个页面比较慢,可以通过这个属性查到具体哪个标签慢)
noelapse 开启调试模式后所有标签生成的代码都会加入执行时间,如果noelapse=1则会强制删除这个注释,用于JS代码等对格式要求严格的场合。
headtail 在输出内容前后增加标签,用法:<标签>@@@</标签>,比如在标签嵌套调用时有列表内容时需要前后加上<p>标签,无内容则不显示:<{getcategories rootcategory=4 headtail="<p>@@@</p>" template="[category]:<#getitems(#)headtail=<p>@@@</pv>(#)category=[%categoryid](#)template=[title]#>"}>(2.1.3+

参数
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这两个主题的内容
orderby 排序方式(可选值:id(序号),orderby(排序值),orderby2(排序值2),orderby3(排序值3),orderby4(排序值4),time(时间),pv(页面浏览量),random(随机)(SQLite版random不生效),update(最后修改时间),title(按题目),count(用搜索引擎根据关键字搜索时匹配的次数),inid(按照id的顺序,例:id="8,6,9"的顺序依次8、6、9),默认是从小到大的顺序,如果想从大到小,则在后面加上一个_reverse,比如:orderby="orderby_reverse"按照排序值从大到小排列,orderby="pv_reverse"按照访问量从大到小排列)也支持多个排序方式,中间用逗号分开,比如:orderby="orderby_reverse,id"意思是先按排序值从大到小排列,如果排序值相同则按ID从小到大排列。
template 显示模板(默认:"[title]<br>"),模板中的双引号可以用一对括号()代替,大部分场合也可以用单引号'代替。
page 显示第一页,当这个参数指定的时候,start参数就失效
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 默认图片,当获取某篇未指定缩略图的文章的缩略图时,会获得这个默认图片的地址
head 截取正文头部的字数,通过[texthead]获取(1.7正式版新增参数)
searchtext 当指定keywords参数时,通过searchtext设置是否搜索正文,默认不搜索,如果searchtext=1则搜索(2.1.2+)
year 指定文章发表的年份
month 指定文章发表的月份,指定了year之后本参数才生效
day 指定文章发表的日期,指定了year、month之后本参数才生效
categorytype 限定该栏目ctype=-1时,正常显示标签调用结果,赋任意值生效,如:categorytype=1(2.1.3+
tableafter  指定items字表副本(2.1.3+

模板标签(template参数中可以使用以下标签,最终会被替换为对应内容,下同)
以下是发表时间的格式
[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]最新编辑短格式日
[url]url地址
[url1]-[url4]第1-4套网页的地址
[texttitle]无样式题目
[textshorttitle]无样式短题目
[title]题目
[shorttitle]短题目
[keywords]关键词
[aimurl]目标地址,字段中的“[home]”会被替换成网站首页(测试功能,还会调整)
[pv]访问量
[categoryid]栏目id
[category]栏目名
[sectionid]主题id
[section]主题名
[categorypath]栏目的文件夹名
[categoryhomepath]已经计算好的栏目目录
[categoryurl]已经计算好的栏目URL,可以直接用于<a>(3.8新增)
[categoryup]父栏目的ID
[itemid]文章ID号
[id]序号,1-N
[picture]缩略图地址
[picture:120*80]自定义尺寸(120*80)的缩略图地址(3.9新增)
[digest] 摘要
[data]正文内容
[texthead]正文的头部截取(1.7正式版新增标签)(已取消)
[title_highlight]关键字高亮的题目
[text_highlight]关键字高亮的正文
[texthead_highlight]关键字高亮的正文头部(已取消)
[_abc]自定义字段(以abc为例,如果你的自定义字段是test,那就用[_test]调用)


常规示例:

<{getitems  num="10" category=$category includesubcategory=1 page=$page skipcategory="1" colspan="11" overflow="<hr />" orderby="id_reverse" page="$page"  timelimit="1" bandindex="1" order="0" template="<li><h2><a href=()[url]() alt=()[title]()>[title]</a></h2><span>[y].[m].[d] / [h] | 共[pv]人访问过</span><p>[digest]</p></li>"}>

带判断示例:

<{getitems num="15" orderby="id_reverse" category="$category" page="$page" bandindex="1" includesubcategory="1" timelimit="1" template="<#zv_if(#)'[%picture]'(#)<dl><dd><a title=()[title]() href=()[url]() target=_blank><img src=()[picture]() width=()160() height=()120() /></a></dd><dt><a title=()[title]() href=()[url]() target=_blank>[title]</a></dt></dl>(#)· <a title=()[title]() href=()[url]() target=_blank>[title]</a><br><br>#>"}>

上一篇下一篇示例:

<{getitems num="1" next=$id orderby="id_reverse" emptymessage='已是第一篇' template="<a href='[url]'><<上一篇:[title]</a>"}>&nbsp;&nbsp;&nbsp;&nbsp;<{getitems num="1" last=$id orderby="id" emptymessage='已是最后一篇' template="<a href='[url]'>下一篇:[title]>></a>"}>

显示时也可以加入栏目链接等,和普通的getitems标签的使用没有什么不同,不再多说。如果想获取同一栏目的上下页就在标签里加上“category=$category”



返回上一页


讨论区

您尚未 登录,或请 注册

登 录 注 册


你可能也喜欢

隐私政策 2020.09.20,1 pv
站群功能 2017.05.25,19 pv
ZMS使用授权 2017.04.22,70 pv

后台应用WebApp 2017.04.21,76 pv
常用标签用法一览 2016.04.29,191 pv
常用自定义变量和函数 2015.10.11,73 pv