x x
当前位置 : 主页 > 网站建设 > 正文

DedeCMS移动栏目导航channelartlist判断当前栏目错误

原创

重庆seo2023-05-05阅读(140)面包导航

网站建设或SEO优化中,对DedeCMS的栏目进行移动是比较常见的,吖七发现操作一个子栏目“移动为顶级栏目”时,导航判断当前栏目并高亮是错误的(仍停留在移动前)。查阅相关资料得到两个解决方案。

修改数据库

用数据库工具打开dede_arctype数据表,找到“topid”,如果修改为顶级栏目,则数字为“0”,移动到其他栏目的子栏目下则修改为对应父级栏目的ID。这个方法简单快捷,不用修改系统文件。

修改系统文件

打开 /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'] = '';
}

代码前面增加如下

/*
 *移动栏目判断修复by7
 */
if ($refObj->TypeLink->TypeInfos['topid'] == $refObj->TypeLink->TypeInfos['reid']) {
$newTopId = $refObj->TypeLink->TypeInfos['topid'];
} else {
$newTopId = $refObj->TypeLink->TypeInfos['reid'];
}

代码判断当前的父级和移动后的ID是不是相同,如果相同就取父级ID,如果不同,就用移动后的ID。

DedeCMS中一般用{dede:channelartlist}作为主导航的调用标签,这种修改方法一劳永逸。

    本文地址:https://www.vi586.com/mip/web/785.html
    版权声明:原创文章,版权归重庆SEO吖七所有,欢迎分享本文,支持原创,转载请保留出处