DedeCMS子栏目调用currentstyle属性不支持typeid的解决方案

我们在使用织梦建站的时候,导航栏经常会用到channel标签来调子栏目,但有的时候需要调用指定栏目的子栏目,而且还需要配合currentstyle属性做当前字栏目高亮的功能,但是织梦默认情况下是currentstyle对typeid是无效的,此时就需要做一下修改,来让它支持typeid。

修改include/taglib/channel.lib.php,找到代码:


if( ($row[
‘id’]==$typeid || ($topid==$row[
‘id’] && $type==
‘top’) ) && $currentstyle!=
)

 

修改为:


if( ( $row[
‘id’]== $refObj->TypeLink->TypeInfos[
‘id’] || ($topid==$row[
‘id’] && $type==
‘top’) ) && $currentstyle!=
)

 

调用标签举例:

{dede:channel
typeid =
‘3’ type =
‘son’ currentstyle=
“<li><a href=’~typelink~’ class=’on’>~typename~</a></li>”}

<li><a href=
“[field:typelink/]” title=
“[field:typename/]”>[field:
typename/]</a></li>

{/dede:channel}

 

效果:当前栏目下的列表会添加一个class=”on”属性,可以配合css样式做当前栏目高亮效果,如图: