問題1、dede讓channelartlist標籤支持currentstyle屬性 完美解決php
打開include\taglib\channelartlist.lib.php
找到
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
在此行代碼下方增長如下代碼:html
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'] = '';
}curl
網上找到的通常沒有加$typeids[$i]['id'] ==$refObj->TypeLink->TypeInfos['topid']
添加這個後才能對二級欄目也起做用
調用方法:測試
{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}
若是是當前欄目則 li的class屬性顯示current,不然顯示class='' ,也能夠修改currentstyle='這裏改成你須要的類名'。網站
-------------------------------------------------------------------------------------------------------------------------
也能夠與arclist標籤(詳見:http://www.ifreew.com/a/ym/Dedecms/9191.html)相結合使用,
這樣調用:
{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}url
問題2、織夢channel標籤currentstyle樣式無效不起做用spa
咱們在用織夢繫統制做網站時,常常會用到channel標籤來調子欄目。可是,不少朋友會遇到這種狀況在使用channel標籤來調子欄目的時候,指定 「type=son typeid=x」 發現currentstyle無效。今天筆者就跟你們分享一下解決方法。htm
一、解決channel標籤currentstyle樣式無效不起做用的錯誤方法it
代碼以下:
{dede: type='son' typeid='12' currentstyle="<li><a href='~typelink~' title="~typename~">~typename~</a> </li>"}
<li><a title="[field:typename/]" href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
解決的辦法:把typeid=‘12’改成channel=‘1’ (文章模型id),首頁除外,其餘頁面不須要指定typeid=x,會自動判斷當前位置。
解決方法以下:
{dede: type='son' channel='1' currentstyle="<li><a href='~typelink~' title="~typename~">~typename~</a> </li>"}
<li><a title="[field:typename/]" href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
筆者經測試這種調用方式currentstyle根本是無效的,簡直是無稽之談。
二、解決channel標籤currentstyle樣式無效不起做用的正確方法
修改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!='' )
筆者經測試這種調用方式currentstyle有效,能夠解決解決channel標籤currentstyle樣式無效不起做用的問題。class