問題一、dede讓channelartlist標(biāo)簽支持currentstyle屬性 完美解決
打開include/taglib/channelartlist.lib.php
找到
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
在此行代碼下方增加以下代碼:
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'] = '';}網(wǎng)上找到的一般沒有加$typeids[$i]['id'] ==$refObj->TypeLink->TypeInfos['topid']
添加這個(gè)后才能對(duì)二級(jí)欄目也起作用
調(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='這里改為你需要的類名'。
也可以與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}問題二、織夢channel標(biāo)簽currentstyle樣式無效不起作用
我們?cè)谟每棄粝到y(tǒng)制作網(wǎng)站時(shí),經(jīng)常會(huì)用到channel標(biāo)簽來調(diào)子欄目。但是,很多朋友會(huì)遇到這種情況在使用channel標(biāo)簽來調(diào)子欄目的時(shí)候,指定 “type=son typeid=x” 發(fā)現(xiàn)currentstyle無效。今天筆者就跟大家分享一下解決方法。
1、解決channel標(biāo)簽currentstyle樣式無效不起作用的錯(cuò)誤方法
代碼如下:
{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,會(huì)自動(dòng)判斷當(dāng)前位置。
解決方法如下:
{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}筆者經(jīng)測試這種調(diào)用方式currentstyle根本是無效的,簡直是無稽之談。
2、解決channel標(biāo)簽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!='' )
筆者經(jīng)測試這種調(diào)用方式currentstyle有效,可以解決解決channel標(biāo)簽currentstyle樣式無效不起作用的問題。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選