北京网站制作公司,丰富的网站建设经验,为企业提供精品网站制作服务!
服务热线:

修复Dede(织梦)Cms栏目移动后无法正确判断当前选中状态

今天有客户遇到一个问题,他用的是Dede织梦CMS系统,在后台移动了栏目,就是把…

今天有客户遇到一个问题,他用的是Dede织梦CMS系统,在后台移动了栏目,就是把一个栏目的子级分类移动到另一个栏目下去了。

但是,发现前台页面里,当前子级的页面所在的导航状态还在老栏目上。如下图所示:

不知道这算不算是织梦的一个BUG,打开文件 include/taglib/channelartlist.lib.php ,找到如下代码

if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $newTopId ){  
     $pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'active';  
} 
else{ 
     $pv->Fields['currentstyle'] = '';
}

替换成下面的代码:
/**
* Boncent.com
* Date:2017-09-25
*/
if ($refObj->TypeLink->TypeInfos['topid'] == $refObj->TypeLink->TypeInfos['reid']) {
    $newTopId = $refObj->TypeLink->TypeInfos['topid'];
} else {
    $newTopId = $refObj->TypeLink->TypeInfos['reid'];
}

if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $newTopId ){  
    $pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'active';  
} else {  
    $pv->Fields['currentstyle'] = '';  
}
判断当前的父级和移动后的ID是不是相同,如果相同就取父级ID,如果不同,就用移动后的ID。

至此,问题解决!

其它相关文章:
专业网站制作公司 — 安徽宝讯信息技术有限公司 © 版权所有
京ICP备09005099号-7

在线
客服

在线客服服务时间:9:00-20:00

选择下列客服马上在线沟通:

客服
热线

133 9152 9507
7*24小时客服服务热线

关注
微信

官方微信
顶部