DedeCMS循环调用多级栏目及内容列表
【Channelartlist 标记】
功能说明:用于获取当前频道的下级栏目的内容列表
适用范围:模板
基本用法试例:
- 01
{dede: channelartlistrow=6} <dl> <dt><a href='{dede:field name='typeurl'/}'> {dede:field name='typename'/}</a></dt> <dd> {dede: arclisttitlelen='42' row='10'} <ul class='autod'> <li><a href="[field:arcurl /]"> [field:title /]</a></li> <li>([field:pubdate function="MyDate('m-d',@me)"/])</li> </ul> {/dede: arclist} </dl> {/dede: channelartlist}
参数简介
- 01
channelartlist 标签暂时支持三个参数,分别为: typeid='0' 限制上级栏目ID;也可以用top,支持“,”表示多个栏目 row='20' 循环的栏目数量,默认为20; cacheid = '' 标签缓存ID,一般为空 注:如果你只是将上述代码原封不动的复制粘贴到终极栏目页或内容页,是不会出现任何调用结果的,因为在标签 channelartlist 中,当typeid为空,则表示当前栏目,但是终极栏目列表和内容页是没有下级栏目的,所以就会出错!
栏目高亮、特效调用
- 01
在该标签下,可以直接分别用 {dede:field name='typename'/}与{dede:field name='typeurl'/}来表示栏目名称与栏目链接的,当然还有一些其它特殊的变量,这里也介绍一下,如: {dede:field name='id'/}与{dede:field name='typeid'/} 均表示循环中的栏目ID; {dede:global name='itemindex'} 表示循环递增变量,从1开始; {dede:global name='itemparity'} 表示循环魔法变量,单数为1,双数为2; 以上就是可以在channelartlist中直接套用的,特别要注意的是第2、3两个,拥有这两个变量,可以轻松制作出各类非常个性的效果,例如栏目的隔行变色等。 关于这个栏目高亮,在 channelartlist.lib.php 并没有自带,但通过以下DIY可实现让当前栏目进行高亮。方法(以dedecms 5.6为例): 打开channelartlist.lib.php文件,找到如下代码: $pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]); if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id']){ $pv->Fields['currentstyle'] = ' id="pic_focus"'; }else{ $pv->Fields['currentstyle'] = ''; } 然后,就可以在模板中进行使用{dede:field name='currentstyle'/}进行调用了。