DedeCMS标签包括Arclist标记、Field标记、Channel标记、Type标记、Mytag标记、Vote标记、Flink 标记等等,本文主要介绍DedeCMS标签的功能和用法。
一、Arclist标记
Arclist标记是DedeCMS中最常用的标记之一,通常被称为自由列表标记。其他一些标记,如 hotart、coolart、likeart、artlist、imglist、imginfolist、specart 和 autolist,都是基于Arclist标记的不同属性派生而来的。
适用范围:可在封面模板、列表模板和文档模板中使用。
基本语法:
{dede:arclist typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword=''}
底层模板 (InnerText)属性说明:
1、typeid=”:表示栏目ID。在列表模板和档案模板中通常不需要指定,在封面模板中,可以用逗号分隔多个栏目。
2、row=”:返回文档列表的总数。
3、col=”:显示的列数(默认为单列)。
4、titlelen=”:标题的长度限制。
5、infolen=”:内容简介的长度限制。
6、imgwidth=”:缩略图的宽度。
7、imgheight=”:缩略图的高度。
8、type=”:档案类型,取值如下:
- 空值或type=’all’:表示普通文档;
- type=’commend’:表示推荐文档 (等同于 {dede:coolart}{/dede:coolart});
- type=’image’:表示必须包含缩略图的文档 (等同于 {dede:imglist}{/dede:imglist} 和 {dede:imginfolist}{/dede:imginfolist});
- type=’spec’:表示专题文档 (等同于 {dede:specart}{/dede:specart});
- 可以同时使用多个类型,如 type=’commend image’ 表示推荐的图片文档。
9、orderby=”:指定排序方式,默认是按发布时间 (senddate) 排列。可选值:
- orderby=’hot’ 或 orderby=’click’:按点击数排序;
- orderby=’pubdate’:按出版时间排序;
- orderby=’sortrank’:按文章的新排序级别排序;
- orderby=’id’:按文章ID排序;
- orderby=’postnum’:按评论次数排序;
- orderby=’rand’:随机获取文档列表。
- 10、orderway=”:指定排序方式为降序 (desc) 或升序 (asc),默认为降序。
11、keyword=”:获取包含指定关键字的文档,有多个关键字时用逗号分隔。
12、channelid=”:表示特定频道模型ID,内置的频道模型包括:专题 (-1)、文章 (1)、图集 (2)、Flash (4)、软件 (3)。
13、limit=’起始,结束’:限制记录的范围,row属性必须等于结束 – 起始。例如,“limit 0,5”表示获取前五笔记录;“limit 5,5”表示从第六笔记录开始获取。
14、att=’数值’:表示自定义属性值。
15、subday=’天数’:表示获取在指定天数内的文档,一般用于获取热门或推荐文档。
16、partsort=’排列位数’:表示自动获取父栏目所有子栏目中排序的位置。
底层模板字段:ID (同id)、title、iscommend、color、typeid、ismake、description (同info)、writer、shorttitle、memberid、pubdate、senddate、arcrank、click、litpic (同picname)、typedir、typename、arcurl(同picname)、typedir、typename、arcurl(同 filename)、typeurl、stime(pubdate 的”0000-00-00″格式)、textlink、typelink、imglink、image 。
其中:
textlink = <a href='arcurl'>title</a> typelink = <a href='typeurl'>typename</a> imglink = <a href='arcurl'><img src='picname' border='0' width='imgwidth' height='imgheight'></a> image = <img src='picname' border='0' width='imgwidth' height='imgheight'>
字段调用方法:[field:varname/]
如:
{dede:arclist infolen='100'} [field:textlink/] <br> [field:info/] <br> {/dede:arclist}
注:底层模板里的Field实现也是DedeCMS标记的一种形式,因此支持使用PHP语法,Function扩展等功能。
如: 给当天发布的内容加上 (new) 标志
[field:senddate runphp='yes'] $ntime = time(); $oneday = 3600 * 24; if(($ntime - @me)<$oneday) @me = "<font color='red'>(new)</font>"; else @me = ""; [/field:senddate]
二、Field标记
Field标记用于获取特定栏目或档桉的字段值及常用的环境变量值。
基本语法:
{dede:field name='字段名'/}
三、Channel标记
Channel标记用于获取栏目列表,适用封面模板、列表模板、文档模板。
基本语法:
{dede:channel row='' type=''} 自定义样式模板(InnerText) {/dede:channel}
四、Type标记
Type标记别名onetype,表示指定的单个栏目的链接。适用范围:封面模板、列表模板、文档模板。
语法:
{dede:type typeid=''}{/dede:type}
五、Autochannel标记
Autochannel标记表示指定排序位置的单个栏目的链接
语法:
{dede:autochannel partsort=''}{/dede:autochannel}
六、Mytag标记
Mytag标记用于获取自定义宏标记的内容
基本语法:
{dede:mytag typeid='' name='' ismake=''/}
七、Vote标记
Vote标记用于获取一组投票表单,适用封面模板。
基本语法:
{dede:vote id='投票ID' lineheight='22' tablewidth='100%' titlebgcolor='#EDEDE2' titlebackground='' tablebgcolor='#FFFFFF'}{/dede:vote}
注:本标记直接生成投票的HTML表单,为了让你更方便修改其样式,建议在后台->投票管理的地方直接复制生成的HTML代码来使用。
八、Flink标记
Flink标记等同friendlink,,用于获取友情链接。
基本语法:
{dede:flink type='' row='' col='' titlelen='' tablestyle=''}{/dede:flink}
九、Mynews标记
Mynews标记用于获取站内新闻
基本语法
{dede:mynews row='条数' titlelen='标题长度'}Innertext{/dede:mynews}
十、LOOP标记
LOOP标记用于调用任意表的数据,一般用于调用论坛贴子之类的操作
基本语法:
{dede:loop table=' sort='' row='' if=''} 底层模板 {/dede:loop}
十一、Channelartlist标记
Channelartlist标记用于获取当前频道的下级栏目的内容列表
基本语法:
{dede:channelArtlist typeid=0 col=2 tablewidth='100%'} <table width="99%" border="0" cellpadding="3" cellspacing="1" bgcolor="#BFCFA9"> <tr> <td bgcolor="#E6F2CC"> {dede:type} <table border="0" cellpadding="0" cellspacing="0" width="98%"> <tr> <td width='10%' align="center"><img src='[field:global name='cfg_plus_dir'/]/img/channellist.gif' width='14' height='16'></td> <td width='60%'> <a href="[field:typelink /]" rel="external nofollow" rel="external nofollow" >[field:typename /]</a> </td> <td width='30%' align='right'> <a href="[field:typelink /]" rel="external nofollow" rel="external nofollow" >更多...</a> </td> </tr> </table> {/dede:type} </td> </tr> <tr> <td height="150" valign="top" bgcolor="#FFFFFF"> {dede:arclist row="8"} ·<a href="[field:arcurl /]" rel="external nofollow" rel="external nofollow" >[field:title /]</a><br> {/dede:arclist} </td> </tr> </table> <div style='font-size:2px'> </div> {/dede:channelArtlist}
十二、List标记
List标记列出文章列表模板中的分页内容列表,仅列表模板 list_*.htm 可用。
基本语法:
{dede:arclist row="8"} ·<a href="[field:arcurl /]" rel="external nofollow" rel="external nofollow" >[field:title /]</a><br> {/dede:arclist}
十三、Page标记
Page标记表示分页页面的附加参数。
语法:
{dede:page pagesize="每页结果条数"}/
注:此标记在dedecms3.1中已经过期,dedecms3.1中直接把 pagesize属性加在 list 标记里,表示记录分页大小。
十四、Pagelist标记
Pagelist标记表示分页页码列表
语法:
{dede:pagelist listsize='3' listitem=''/}
十五、Prenext标记
Prenext标记表示获取文档“上一篇”和“下一篇”的链接。
语法:
{dede:prenext/}