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

及 line130

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

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

  1. <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="~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="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
{/dede:channelartlist}

dropmenu的关键字也是必须的。

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

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。