织梦dedecms三级导航栏目高亮dede:channelartlist支持currentsty

之前我们经常会碰到使用 【channelartlist标签支持currentstyle高亮属性】,是针对二级栏目有效,当我们碰到三级栏目时候是失效的,今天做啦技术就碰到这样的问题,经过调试后,终于研究出来了。

实现效果如图:




1:修改文件.include\taglib\channelartlist.lib.php

找到:

$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);


下面增加下面这句:

if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || 

  $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] 

  //如果循环到的id为正在打开的栏目的祖父(最顶级)栏目,则循环到的祖父id也要高亮

  ||$typeids[$i]['id']==$refObj->TypeLink->TypeInfos['reid']

  //根据现在访问的栏目id的父栏目,即 $refObj->TypeLink->TypeInfos['reid'] ,如果reid等于本次循环得到的id ,则本次循环得到的栏目高亮

  ){

$pv->Fields['active'] = $active ? $active : 'active';

}else{

$pv->Fields['active'] = '';

}


模板上如何使用:

{dede:channelartlist typeid='32' row='12' currentstyle='active'}

 <li class="{dede:field.active/}"><a href='{dede:field name="typeurl"/}'>{dede:field name="typename"/}</a> </li>

{dede:channel type='sun' row='50'}

<a href="[field:typelink/]">[field:typename/]</a>

 {/dede:channel}

{/dede:channelartlist}


以上就介绍了织梦dedecms三级导航栏目高亮dede:channelartlist支持currentstyle。