织梦实现嵌套li加currentstyle的二级菜单

织梦dedecms实现嵌套li加currentstyle二级菜单非常麻烦,所以官方之前的版本也使用了js来实现,而且为此还hardcode了一下编码到标签库里面,具体见 \include\taglib\channel.lib.php 
line100
//检查是否有子栏目,并返回rel提示(用于二级菜单

及 line130

$row['rel'] = " rel='dropmenu{$row['id']}'";

可见,如果需要二级菜单加当前样式,那么头部

<ul> <li><a href='{dede:global.cfg_cmsurl/}/'> <span class="cn">首页</span> <span class="en">Home</span> </a></li> {dede:channel type='top' row='10' currentstyle='<li class="current"><a href=http://www.dede58.com/"~typelink~" ~rel~>#<span class="cn">~typename~</span><span class="en">~dirName~</span></a></li>' } <li> <a href='[field:typeurl/]' [field:rel/]> <span class="cn">[field:typename/]</span> <span class="en">[field:typedir runphp='yes' commet="获得最后目录名,英文"] $l=split("/", @me); @me=array_pop($l); [/field:typedir]</span> </a> </li> {/dede:channel} </ul>  


rel的属性是必须的

而且在底部
 

{dede:channelartlist typeid='top'} <ul id="dropmenu{dede:field.typeid/}"> {dede:channel type='son' noself='yes'} <li><a href=http://www.dede58.com/"[field:typelink/]">[field:typename/]</a></li> {/dede:channel} </ul> {/dede:channelartlist}  


dropmenu的关键字也是必须的。

剩下的就是css和js的工作了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d37d659ec2ef9894d9af100e74552779.html