专业的织梦dedecms仿站建站技术资讯网站!- 【46仿站网】
您的位置: 主页 > 织梦教程 > 织梦高级教程 >

dedecms侧边栏导航 有子栏目显示,无子栏目不显示 功能的实现

文章来源:46仿站网 阅读: 发表时间:2018-11-27

今天在帮一个客户仿站时,遇到一个问题,侧边栏导航,如何让他智能的显示(有子栏目就显示出来,无子栏目就整个不显示)?这个问题,详细很多人都遇到过吧!也许很多人跟我之前一样,遇到这个问题,直接忽略掉了,,好吧,我这之前也是!今天,心血来潮,就想着有没有什么办法可以实现这个功能的,dede经验这么丰富,要是连这个小问题都解决不了,真是!!!!

先把侧边栏代码贴出来:

dedecms侧边栏导航 有子栏目显示,无子栏目不显示 功能的实现1

前端效果

dedecms侧边栏导航 有子栏目显示,无子栏目不显示 功能的实现2

解决思路一:

当然是万能的百度,百度了许久,不过最终并没有找到有效的办法!!百度能找到的全是导航栏可以使用的!!!

百度能找到的最多的就是下面的代码,(织梦导航菜单判断是否有子栏目,有则显示否则隐藏(二级菜单调用)):

{dede:field name=typeid runphp="yes"}
global $dsql;$row = $dsql->GetOne("SELECT id From `dede_arctype` WHERE reid='@me' And ishidden<>1 order by sortrank asc limit 0, 100");
@me=is_array($row)?'有下级':'没下级';
{/dede:field}

这个方法呢,灵活使用下确实可以用的!但是有一个很严重的bug!!!

代码:

dedecms侧边栏导航 有子栏目显示,无子栏目不显示 功能的实现3

效果演示:

dedecms侧边栏导航 有子栏目显示,无子栏目不显示 功能的实现4

可以明显看到,确实可以用,不过有个bug就是,如果是子栏目而且子栏目下面没有栏目的话,就错位了!我们是希望他可以正常显示,而不是错位的!!当然,如果没有子栏目的话,完全可以这么使用!!

解决思路二:

既然网上公布的方法行不通了,那就还得自己想办法解决!那么能不能在channel标签输出完栏目了,再去输出一个自定义内容?

可是dede并没有相关功能或者标签可以使用,而且网上搜索类似结果,都是要提前预知列表结果数才可以使用!

但是我们的这个都是要他自动调用,,而每个栏目有多少子栏目,又不是固定的,也无法提前预知,那么这个方法也不能使用了!!

既然channel标签内无法实现这个功能,如果把它放在channel标签外呢??好像是可以的!

chennel标签本身就可以实现有子栏目显示内容,无子栏目不显示内容,而且chennel可以多次使用,那么为什么不直接使用它本身呢?

真是踏破铁鞋无觅处,得来全不费工夫!如果不是自己经验丰富,估计也很难想到这样的解决办法,而最终不了了之!

最终代码:

      {dede:channel   type='son'   }
      [field:global name='autoindex' runphp="yes"]@me=@me==0?'<div class="leftlist mt20"><ul>':"";[/field:global]
      <li><a href="[field:typelink/]">[field:typename/]</a>        ></li>
      {/dede:channel}
      {dede:channel   type='son' row='1'  }
      </ul></div>
      {/dede:channel}

dedecms侧边栏导航 有子栏目显示,无子栏目不显示 功能的实现5

这样就可以完美显示效果了!

如果你觉得本文对你有帮助就点个赞吧!

没有解决?点击这里呼叫大神来帮忙(付费)!

  • 最新
  • 热门
  • 随便看看