织梦DedeCMS channelartlist标签当前栏目高亮

channelartlist标签完美支持currentstyle属性,实现自动加载当前栏目CSS样式,可以用来标识当前栏目位置的CSS,解决方法如下:
打开文件 include/taglib/channelartlist.lib.php
找到
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
在此行代码下方增加以下代码
//子栏目当前高亮 start
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['reid'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] || $typeids[$i]['id'] == GetTopid($refObj->TypeLink->TypeInfos['id']) )
{
$pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'current';
}
else
{
$pv->Fields['currentstyle'] = '';
}
//子栏目当前高亮 start
$pv->SetTemplet($innertext,'string');
$artlist .= $pv->GetResult();
$GLOBALS['itemparity'] = ($GLOBALS['itemparity']==1 ? 2 : 1);
if($GLOBALS['itemindex']==$totalRow-1){$GLOBALS['iflast']=1;}
}
//注销环境变量,以防止后续调用中被使用
$GLOBALS['envs']['typeid'] = $_sys_globals['typeid'];
$GLOBALS['envs']['reid'] = '';
if($cacheid !='') {
WriteCacheBlock($cacheid, $artlist);
}
return $artlist;
}
调用方法
{dede:channelartlist typeid='103,8,6,4' currentstyle='current'}
<li class='{dede:field.currentstyle/}'><a href='{dede:field name='typeurl'/}' title='{dede:field name='typename'/}'>{dede:field name='typename'/}</a></li>
{/dede:channelartlist}
PS:调用方法仅供参考,如有疑问,下方留言
文章评论 (0)