今天有客戶遇到一個問題,他用的是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。
至此,問題解決!