POST TIME:2017-11-12 23:33
我們在用DEDECMS建站時,常常會做二級欄目的功能,既要用到二級欄目,也就要通過DEDE標簽再套標簽的方式來實現調用,而DEDECMS多層標簽調用只支持channelartlist,也就是說我們只能通過dede:channelartlist標簽才能調出二級欄目,我們用dede:channelartlist能順利的將信息調出來,但是如果我們要設置當前所在欄目高亮顯示的功能時,currentstyle屬性將不起作用,下面我們就來解決channelartlist currentstyle高亮顯示的問題。
1、找到“/include/taglib/channelartlist.php”這個文件;
2、找到這行代碼:
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]); |
3、在這行代碼后加入代碼:
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、調用方法:
{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標簽無法使用currentstyle的問題。
另外需要注意的是<li{dede:field.currentstyle/}>這段代碼中,請不要自作聰明的加上class="{dede:field.currentstyle/}",因為最先加的一段代碼中就判斷了,如果是當然欄目,系統就會自動輸出“ class='current'”,照本文原樣復制,即可解決這個問題。