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