Channelartlist循环调用多级栏目及内容列表-MAXXWO.COM

【Channelartlist 标记】

功能说明:用于获取当前频道的下级栏目的内容列表

适用范围:模板

基本用法试例:

{dede:channelartlist row=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}

参数简介

channelartlist 标签暂时支持三个参数,分别为:

typeid=’0′ 限制上级栏目ID;也可以用top,支持“,”表示多个栏目

row=’20’ 循环的栏目数量,默认为20;

cacheid = ” 标签缓存ID,一般为空

注:如果你只是将上述代码原封不动的复制粘贴到终极栏目页或内容页,是不会出现任何调用结果的,因为在标签 channelartlist 中,当typeid为空,则表示当前栏目,但是终极栏目列表和内容页是没有下级栏目的,所以就会出错!

栏目高亮、特效调用

在该标签下,可以直接分别用 {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’/}进行调用了。