在使用Dedecms进行网站开发时,许多用户会发现默认模板中的channelartlist标签并不支持currentstyle属性。这一功能在导航栏中非常实用,可以实现当前页面的栏目高亮显示效果。下面我们将详细介绍如何修改Dedecms源代码以支持这一功能。
首先,我们需要编辑Dedecms的核心文件来实现这一目标。具体步骤如下:
打开文件:
include\\taglib\\channelartlist.lib.php
找到以下代码:
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
在此行代码下方添加以下内容:
//让channelarclist支持currentstyle属性
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){
$pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'nLi on';
}
else{
$pv->Fields['currentstyle'] = 'nLi';
}
//让channelarclist支持currentstyle属性end
需要注意的是,网上大多数教程可能忽略了$typeids[$i]['id'] ==$refObj->TypeLink->TypeInfos['topid']这部分代码。只有添加这一部分,才能确保对二级栏目也生效。
接下来,我们来看一下调用方法:
{dede:channelartlist typeid='2' currentstyle='current'}
{dede:field name='typename'/}
...
{/dede:channelartlist}
如果当前栏目为活动状态,则
通过以上步骤,您可以轻松地在Dedecms中实现channelartlist标签支持currentstyle属性的功能,从而提升用户体验和网站的专业性。