如何实现在织梦cms中使用channelartlist标签让当前栏目高亮显示?
- 行业动态
- 2024-10-22
- 3165
在织梦CMS中,要让当前栏目高亮显示,可以在channelartlist标签中使用以下代码:,,“ 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' current} <li ><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' current} <dt ><a href='{dede:fieldname='typeurl'/}'>{dede:field name='typename'/}</a></dt> {dede:arclist titlelen='42' row='10' currentcurrent' 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' current} <li ><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' current} <li > <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 ></i>'; else @me = ""; {/dede:field} </li> {/dede:channelartlist}
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:https://www.xixizhuji.com/fuzhu/36066.html