导航: 返回上一页
在
AKCMS的模板中可以编写标签调用网站内容,这些标签如下:
getitems标签
getitems函数是AKCMS中使用最广泛的函数,可以这么说,把这个函数弄明白了,就掌握了80%的AKCMS的使用。
:start:从第几篇文章开始,start="3"表示,抛弃符合条件的前2篇文章,从第3篇开始取,默认值为1
:num:取出的文章数,默认值是10
:colspan:子循环的次数,默认是没有子循环
:overflow:
子循环结束后插入的内容,与colspan结合可以实现很多效果,比如:共显示20篇文章每5行中间插入一根线就这样写:num="20" colspan="5" overflow="
"
:expire:缓存有效期,单位秒,expire="3600"表示缓存1小时,1小时内相同属性的标签不再查询
数据库
:length:题目长度限制,单位字节,比如:length="20"代表题目截取10个汉字或20个字母,如果是半个汉字将被舍弃
:strip:题目被截取后显示的字符,比如可以指定strip="..."就表示如果题目被截断了就加上个省略号
:bandindex:绑定分页,分页列表页的主内容区域必须指定bandindex="1"才能正常使用分页功能
:emptymessage:如果什么内容也没有取到,则显示这个值,emptymessage="未找到符合条件的文章"
:year:可以取得某年的文章
:month:可以取得某年某月的文章,如果year为空则此属性无效
:day:可以取得某年某月某日的文章,如果year或month为空则此属性无效
: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(排序值),time(时间),
pv(页面浏览量),random(随机)(
SQLite版random不生效),默认是从小到大的顺序,如果想从大到小,则在后面加上一个 _reverse,比如:orderby="orderby_reverse"按照排序值从大到小排列,orderby="pv_reverse"按照访问量从大到小排列)也支持多个排序方式,中间用逗号分开,比如:orderby="orderby_reverse,id"意思是先按排序值从大到小排列,如果排序值相同则按ID从小到大排列。
:template:显示模板(默认:"[title]
")
:page:显示第一页,当这个参数指定的时候,start参数就失效
:last:限制取大于此值的文章(用于上一篇下一篇功能),比如有ID有1,2,3,4,5等文章,last="3"则会取出4,5这两篇文章
:next:限制取小于此值的文章,比如有ID有1,2,3,4,5等文章,last="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]获取(2.7正式版新增参数)
- 模板标签(template参数中可以使用以下标签,最终会被替换为对应内容,下同)
:[title]题目
以下是发表时间的格式
:[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地址
:[texttitle]无样式题目
:[textshorttitle]无样式短题目
:[title]题目
:[shorttitle]短题目
:[aimurl]目标地址
:[pv]访问量
:[categoryid]栏目id
:[category]栏目名
:[sectionid]主题id
:[section]主题名
:[categorypath]栏目的文件夹名
:[categoryhomepath]已经计算好的栏目路径
:[categoryup]父栏目的ID
:[itemid]文章ID号
:[id]序号,1-N
:[picture]缩略图地址
:[digest] 摘要
:[text]正文内容
:[texthead]正文的头部截取(2.7正式版新增标签)
getindexs标签
getindexs标签主要用于调用分页列表
:page=$page
:ipp=$ipp
:total=$total
这3个是必写的,如果是栏目分页还要加上:
:category=$category
如果是搜索分页还要加上:
:keywords=$keywords
:template
:baseurl
:[indexs]列表
<{getindexs baseurl="/akcms_search.php?keywords=[keywords]&category=[category]" keywords=$keywords category=$category page=$page ipp=$ipp
total=$total template="[indexs]"}>
getcategories标签
getcategories标签主要用于调用AKCMS栏目
:id:指定的栏目ID
:skipid:跳过的栏目ID,支持多个
:rootcategory:上级栏目号
:skipsub:跳过二级分类
:[url]:栏目的地址
:[category]:栏目的名字
举例:
<{getcategories num="30" skipid="1" expire="600" template="
[category] "}>
getcomments标签
getcomments主要用于调用评论
:template:模板
:itemid:对应文章ID
:orderby:排序方式
:[itemid]对应文章ID
:[username]用户名
:[title]题目
:[message]内容
:[dateline]时间
:[ip]
IP地址
:[secretip]最后一位隐藏的IP地址
:[id]:排序ID
:[y]年
:[m]月
:[d]日
:[h]时
:[i]分
:[s]秒
:[sy]短格式年
:[sm]短格式月
:[sd]短格式日
getlists标签
getlists标签主要用于获取自定义列表
:template:显示模板,如果不指定此参数默认为“
[item]
”
:sc:分隔符,默认为“,”(半角)
:list:列表,不指定无法工作
:num:显示数量,默认为-1,代表不限制
:[id]:序号
:[item]:项目
:[iteminurl]:经过urlencode处理过的项目(如果要放到URL中可以使用这个)
:[iteminhtml]:经过htmlspecialchars处理过的项目
例一:
在模板中加入以下代码:
<{getlists num="2" list="1,2,3,4,5,6,7"}>
实际上显示的是:
1
2
因为没有指定模板,所以默认取[item]
,又因为我们设定了num="2",所以只显示前两项。
例二:
假设莫篇文章有四个关键字:曼联,英超,意甲,中超。在文章正文页模板item_display.htm中加入调用全部关键字的标签:
<{getlists template="[item] " list=$keywords}>
显示在网页中的最终代码是:
曼联 英超 意甲 中超
如果想给每一个关键字加上链接,可以这样写标签:
<{getlists template="[item] " list=$keywords}>
显示的最终代码:
曼联 英超 意甲 中超
或者把标签这样写:
<{getlists template="[item] " list=$keywords}>
显示的最终代码:
曼联 英超 意甲 中超
注意:类似“/tag/曼联/”这样的URL需要您在rewrite中做好设置
akinclude标签
akinclude标签主要用于包含一个文件
此方法与include几乎一样,只是多了对expire参数的支持。
例如:
<{akinclude file="abc.htm" expire="3600"}>
这样就代表引用abc.htm这个模板并把结果缓存下来,一小时(3600秒)内再次请求页面将使用缓存节省时间。
注意:只有指定了expire这个方法才有效。因为当不指定expire参数时,此方法效率比直接使用include低。
akincludeurl标签
akincludeurl标签主要用于包含一个远程网页的内容
此方法远程请求URL,并将内容包含进来。
比如:
<{akincludeurl url="http://www.baidu.com/" expire="3600"}>
这就在页面上显示出了百度的首页,第一次显示将稍微慢一些,因为服务器需要在后台请求百度的服务器一次。因为缓存了3600秒,所以,第二次显示速度就非常快了,不用等待。
注意:使用这个函数的页面如果是动态访问且访问量大一定要加上expire属性,否则会占满服务器的线程,现象是:服务器CPU占用不高,但是 Apache无法访问,线程都被占满。这不是akcms的缺陷,依赖外部数据源的程序都有这个问题。
category:AKCMS