在制作DEDE网站模板时,常常需要实现导航栏带有下拉菜单的功能。而要实现这一功能,通常需要用到channelartlist标签。那么,如何让channelartlist标签支持当前栏目高亮呢?

熟悉DEDE的朋友应该知道,channel标签本身就具备高亮功能。以下是默认的channel标签代码:

{dede:channel type='top' row='10' currentstyle="
  • ~typename~
  • "}
  • [field:typename/]
  • {/dede:channel}

    说明:当前栏目高亮的样式是class='hover'。

    接下来,我们将分享一种方法,使DEDECMS的channelartlist标签也能够支持当前栏目高亮。

    首先,找到并打开include/taglib/channelartlist.lib.php文件,在其中定位到以下代码:

    $pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);

    在这段代码下方,添加以下内容:

    // 让channelartlist支持栏目高亮 By dedejs.com 2014/10/19
    if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id']){
        $pv->Fields['currentstyle'] = ' class="hover"';
    }
    else{
        $pv->Fields['currentstyle'] = '';
    }

    完成上述修改后,在模板文件中的channelartlist标签内,可以通过{dede:field name='currentstyle'/}来调用该字段。此字段输出的内容即为上面设置的class="hover"。

    通过以上步骤,您就可以成功地让DEDECMS的channelartlist标签支持当前栏目高亮功能。这样不仅提升了用户体验,还增强了网站的专业性和美观度。

    希望这篇文章能帮助到正在寻找解决方案的朋友们!如果您还有其他疑问或需要进一步的帮助,请随时联系我们。