html,{dede:field name='typename'/},
“,,这段代码会根据当前栏目的typeid和顶级栏目的typeid进行比较,如果相等,则给当前栏目添加高亮样式。织梦CMS(DedeCMS)是一款广泛应用于企业级网站构建的内容管理系统,它通过强大的标签功能来实现灵活的内容调用和展示,非常适合新手快速上手并使用,在众多标签中,channelartlist
标签是一个功能强大且常用的标签,用于获取当前频道的下级栏目内容列表,本文将详细介绍如何使用channelartlist
标签实现当前栏目高亮,并提供一些常见问题的解答。
实现当前栏目高亮的方法
1、修改文件:要实现当前栏目高亮,首先需要修改channelartlist
标签的核心文件,打开includetaglibchannelartlist.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'] = ''; }
2、调用方法:接下来是模板中的调用方法,可以使用如下代码实现当前栏目的高亮显示:
{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}
如果当前栏目是激活状态,则li
标签的class
属性会显示为current
,否则显示为空字符串,也可以根据需要修改currentstyle
参数来自定义类名。
3、与arclist标签结合使用:可以将channelartlist
标签与arclist
标签结合使用,以实现更复杂的显示效果。
{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}
常见问题解答
问题1:如何修改高亮样式?
答:可以通过修改currentstyle
参数来自定义高亮样式,将currentstyle
设置为active
:
{dede:channelartlist typeid='2' currentstyle='active'} <li class='{dede:field.currentstyle/}'><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></li> {/dede:channelartlist}
问题2:如何实现二级栏目的高亮?
答:上述方法同样适用于二级栏目的高亮显示,只需确保在调用channelartlist
标签时正确设置typeid
参数即可,对于包含多个二级栏目的主栏目,可以这样调用:
{dede:channelartlist typeid='1,14,2,3,10,11' row='6' currentstyle="active"}
<li class='{dede:field.currentstyle/}'>
<a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
{dede:field name=typeid runphp="yes"}
global $dsql;
$sql = "SELECT id Fromdede_arctype
WHERE reid='@me' And ishidden<>1 order by sortrank asc limit 0, 100 ";
$row = $dsql>GetOne($sql);
if(@me=is_array($row))
@me='<i class="fa faangledown"></i>';
else @me = "";
{/dede:field}
</li>
{/dede:channelartlist}
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1230916.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复