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

织梦默认的,下面的写法是不对的.无法高亮,因为dede:channelartlist没有这个功能

{dede:channelartlist typeid="32" row='18' currentstyle=''} {/dede:channelartlist}

使用场景

比如有三级分类,智能产品,> 智能养老产品>智能报警器 在我们访问智能报警器时,网站最顶部的,横向导航上面的智能产品依然高亮.要实现这种效果,需要修改文件.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'] = '';
}

模板上如何使用

示例,在li上增加class="{dede:field.active/}"即可. 默认,currtenstyle可以不填

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

你可能感兴趣的:(织梦dedecms三级导航栏目高亮dede:channelartlist支持currentstyle)