我們在用DEDECMS建站時(shí),常常會做二級欄目的功能,既要用到二級欄目,也就要通過DEDE標(biāo)簽再套標(biāo)簽的方式來實(shí)現(xiàn)調(diào)用,而DEDECMS多層標(biāo)簽調(diào)用只支持channelartlist,也就是說我們只能通過dede:channelartlist標(biāo)簽才能調(diào)出二級欄目,我們用dede:channelartlist能順利的將信息調(diào)出來,但是如果我們要設(shè)置當(dāng)前所在欄目高亮顯示的功能時(shí),currentstyle屬性將不起作用,下面我們就來解決channelartlist currentstyle高亮顯示的問題。
1、找到“/include/taglib/channellartlist.php”這個(gè)文件;
2、找到這行代碼“$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);”
3、在這行代碼后復(fù)制以下代碼:if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){ $pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : ' class="current"';} else{ $pv->Fields['currentstyle'] = '';}
4、調(diào)用方法:{dede:channelartlist typeid='top'}<li{dede:field.currentstyle/}><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></li>{/dede:channelartlist}
以上4步,完美解決dede:channelartlist標(biāo)簽無法使用currentstyle的問題。
另外需要注意的是<li{dede:field.currentstyle/}>這段代碼中,請不要自作聰明的加上class="{dede:field.currentstyle/}",因?yàn)樽钕燃拥囊欢未a中就判斷了,如果是當(dāng)然欄目,系統(tǒng)就會自動(dòng)輸出“ class='current'”,照本文原樣復(fù)制,即可解決這個(gè)問題。