dedecms设置栏目及其当前文章选中高亮的方法

  • 一一得一
  • 技术分享
  • Mar 30, 2022

arclist标签内容页当前文档高亮效果展示

最简单的实现方法,不改动程序文件


[field:id runphp=yes]global $id,$aid;$aid = isset($id) ? $id : $aid;if(@me == $aid)@me = ' class="current"';else @me = '';[/field:id]
 
上面那一行标签的意思是:用 当前文档id 作为判断
如果在 dede:arclist标签里有文档的id 等于 当前文档id 就给它加 class=“current”
 
例子
 
<ul>
{dede:arclist titlelen=42 row=20}
<li[field:id runphp=yes]global $id,$aid;$aid = isset($id) ? $id : $aid;if(@me == $aid)@me = ' class="current"';else @me = '';[/field:id]>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
</ul>
 

channel标签当前栏目高亮

    {dede:channel type='top' currentstyle="<li class='on'><a href='~typelink~' title='~typename~'>~typename~</a></li>"}
 <li><a href='[field:typelink /]' title='[field:typename/]'>[field:typename/]</a> </li> 
    {/dede:channel}   
 
使channelartlist标签支持currentstyle方法
打开include\taglib\channelartlist.lib.php找到
 
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
1
在此行代码下方增加以下代码:
 
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'] = '';
        }
 
前端页面代码调用如下:
 
{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,否则显示class=’’ ,也可以修改currentstyle=‘这里改为你需要的类名’。
 

栏目及其当前文章高亮

{dede:channelartlist typeid='19' currentstyle='on'}
      <div class='{dede:field.currentstyle/}'><p>{dede:field name='typename'/}</p>
               <ul>
              {dede:arclist titlelen="50" row='5'}
                <li[field:id runphp=yes]global $id,$aid;$aid = isset($id) ? $id : $aid;if(@me == $aid)@me = ' class="on"';else @me = '';[/field:id]>
                  <a href="[field:arcurl /]">[field:title /]</a>
                  </li>
                 {/dede:arclist}
               </ul>
      </div>
{/dede:channelartlist}
 
打赏