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吖七所有,欢迎分享本文,支持原创,转载请保留出处
- 上一篇:DedeCMS更换内容模型后文章不显示无损迁移数据
- 下一篇:没有了