目前
織夢(mèng)模板里currentstyle只支持dede:channel,這種只能調(diào)取一層欄目,而我們制作織夢(mèng)
網(wǎng)站模板時(shí),在導(dǎo)航欄里經(jīng)常要調(diào)用到一級(jí)和二級(jí)欄目, 然后讓當(dāng)前欄目高亮,使用特殊樣式,要用到dede:channelartlist,現(xiàn)在的織夢(mèng)currentstyle在 dede:channelartlist里中無法使用的,需要我們自己添加一些代碼才行。
channelartlist標(biāo)簽完美支持currentstyle屬性,實(shí)現(xiàn)自動(dòng)加載當(dāng)前欄目CSS樣式,可以用來標(biāo)識(shí)當(dāng)前欄目位置的CSS,解決方法如下:
1、打開文件include\taglib\channelartlist.lib.php
找到:
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
2、在此行代碼下方增加以下代碼:
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){
$pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'current';
}
else{
$pv->Fields['currentstyle'] = '';
}
添加這個(gè)后才能對(duì)二級(jí)欄目也起作用
4、調(diào)用方法:
{dede:channelartlist typeid='2' currentstyle='current'}
<li class='{dede:field.currentstyle/}'><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></li>
{/dede:channelartlist}
如果是當(dāng)前欄目則 li的class屬性顯示current,否則顯示class='' ,也可以修改currentstyle='這里改為你需要的類名'。
-------------------------------------------------------------------------------------------------------------------------
5、也可以與arclist標(biāo)簽相結(jié)合使用,這樣調(diào)用:
{dede:channelartlist typeid='2' currentstyle='current'}
<dt ><a class='{dede:field.currentstyle/}' href='{dede:fieldname='typeurl'/}'>{dede:field name='typename'/}</a></dt>
{dede:arclist titlelen='42' row='10' currentstyle="<dd><a class='current' href='~typelink~'>~typename~</a></dd>"}
[field:array runphp='yes']
if(@me['currentstyle']){
@me = @me['currentstyle'];
}else{
@me = "<dd ><a href='{@me['arcurl']}'>{@me['title']}</a></dd>";
}
[/field:array]
{/dede:arclist}
{/dede:channelartlist}