如何让dedeCMS中channelartlist标签支持currentstyle

更新时间:2022-05-28 20:49:42 来源:青锋建站 作者:青锋建站
  在使用织梦CMS建站,有时我们需要让CMS直接循环输出二级菜单,或使用dedeCMS标签直接生成二级下拉菜单,不用每次都在修改导航栏;以下是青锋建站给大家分享的让dedeCMS中channelartlist标签支持currentstyle的方法。需要在原来的基础上作一些修改,本例,青锋建站以织梦CMS与bootstrap结合建站为例来说明。

自动直接菜单导航代码

  以下是直接修改完成后的导航栏导航,使用bootstrap来建立前端界面。我们需要给channelartlist生成的链接加上active类样式。在使用时, 需要给 {dede:channelartlist row="8" typeid="top" }加上currentstyle='active';然后在链接类中 <a class="nav-link " href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>加入 {dede:field.currentstyle/}。如下面代码所示。
<nav class="container-fluid navbar navbar-expand-lg bg-dark py-3 shadow" style="position:relative;z-index:900;" id="for_nav">
      <a class="nav-brand" href="{dede:global.cfg_basehost /}"><img src="{dede:global.cfg_templets_skin /}/images/logo.png" /></a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar1" >
          <span class="fas fa-align-justify "></span>
      </button>
      <div class="collapse navbar-collapse" id="navbar1">
        <ul class="navbar-nav nav-pills mr-auto link-second">
             {dede:channelartlist row="8" typeid="top" currentstyle='active'}
                <li class="nav-item channel-list">
                    <a class="nav-link {dede:field.currentstyle/}" href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
                    <div class="channel-menu">
                    {dede:channel row="8" type="son" }
                        <a href="[field:typelink /]">[field:typename /]</a>
                    {/dede:channel}
                    </div>
                </li>
             {/dede:channelartlist}
        </ul>
      </div>
</nav>

需要修改的PHP脚本代码:

在D:DedeAMPZWebRootemodelincludechannelartlist.lib.php中找到如下代码,并添加下面的代码。
在大约93行找到$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 : 'active';
 }
else
 {
      $pv->Fields['currentstyle'] = '';
 }

channel标签支持currentstype的方法

{dede:channel type='top' row='8' currentstyle="<li><a href='~typelink~' class='thisclass'>~typename~</a> </li>"}
  <li><a href='[field:typelink/]'>[field:typename/]</a> </li>
{/dede:channel}


  以上就是青锋建站-专业的网站建设公司给大家分享的让dedeCMS中channelartlist标签支持currentstyle的方法。青锋建站专业制作优化型营销型网站。优化型网站是由专业熟悉seo优化的网站设计师设计网站,将seo优化的思想注入到网站设计和网站架构设计,使网站在搜索引擎中信誉度高,从而更有利于收录和排名和整体权重的提高。不懂网站推广的企业可以保持网站的日常更新与维护,不需要再外包seo即可以实现网站知名度的提升。

转载请注明来源网址:青锋建站-http://www.sjzphp.com/webdis/channelartlist_693.html

电话 15632335515 | 邮箱 943703539@qq.com | QQ 943703539 | 微信 qingfengjianzhan

Copyright © 2016-2026 青锋建站 版权所有