dede實(shí)現(xiàn)嵌套li加currentstyle的二級(jí)菜單非常麻煩,所以官方之前的版本也使用了js來(lái)實(shí)現(xiàn),而且為此還hardcode了一下編碼到標(biāo)簽庫(kù)里面,具體見(jiàn)\include\taglib\channel.lib.php
line100
//檢查是否有子欄目,并返回rel提示(用于二級(jí)菜單)
及 line130
$row['rel']="rel='dropmenu{$row['id']}'";
可見(jiàn),如果需要二級(jí)菜單加當(dāng)前樣式,那么頭部
-
<ul>
-
<li><ahref='{dede:global.cfg_cmsurl/}/'>
-
<spanclass="cn">首頁(yè)</span>
-
<spanclass="en">Home</span>
-
</a></li>
-
{dede:channeltype='top'row='10'currentstyle='<liclass="current"><ahref="~typelink~"~rel~>#<spanclass="cn">~typename~</span><spanclass="en">~dirName~</span></a></li>'
-
}
-
<li>
-
<ahref='[field:typeurl/]'[field:rel/]>
-
<spanclass="cn">[field:typename/]</span>
-
<spanclass="en">[field:typedirrunphp='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的關(guān)鍵字也是必須的。
剩下的就是css和js的工作了。