在制作Dedecms CMS网站模板时,我们经常需要在导航栏中调用一级和二级栏目,并让当前栏目高亮显示。然而,默认的currentstyle属性仅支持dede:channel标签,这使得我们在使用dede:channelartlist标签时无法直接实现这一功能。为了解决这个问题,我们需要对Dedecms进行一些简单的修改。
首先,打开文件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'] = '';
}
完成以上步骤后,channelartlist标签将完美支持currentstyle属性,从而实现自动加载当前栏目的CSS样式。
接下来是调用方法:
{dede:channelartlist typeid='2' currentstyle='current'}
{dede:field name='typename'/}
{/dede:channelartlist}
如果当前栏目匹配,则
此外,还可以结合arclist标签使用,具体如下:
{dede:channelartlist typeid='2' currentstyle='current'}
{dede:field name='typename'/}
{dede:arclist titlelen='42' row='10' currentstyle="~typename~ "}
[field:array runphp='yes']
if(@me['currentstyle']){
@me = @me['currentstyle'];
}else{
@me = "{@me['title']} ";
}
[/field:array]
{/dede:arclist}
{/dede:channelartlist}
通过上述修改和调用方式,您可以轻松实现Dedecms导航栏中的一级和二级栏目高亮显示功能。这种方法不仅提高了用户体验,还增强了网站的专业性。
希望这些技巧能帮助您更高效地开发Dedecms网站!如果您有任何疑问,请随时留言交流。