解决dedecms织梦导航栏的“首页”没有没有高亮显示问题

2019年07月04日 17:53:23 发表评论 阅读

dedecms判断当前页面是否为首页,解决织梦设置首页高亮。


做织梦网站导航栏时,我们一般需要设置当前栏目高亮显示,这个使用currentstyle就能直接实现,


一级导航菜单,一般的获取代码形式:

<div id="nav">
    <ul>
        <li><a href="/">首页 </a></li>
        {dede:channel type='top' row='10' currentstyle="<li><a href='~typelink~' class='hover'><span>~typename~</span></a></li>"}
        <li><a href='[field:typeurl/]'>[field:typename/]</a></li>
        {/dede:channel}
    </ul>
</div>

上述代码中用了currentstyle当前样式,即获得点击焦点时用就它后面的代码样式,剩余其它的就用下面的没有class的li样式,从而实现了高亮显示。

然而,上述代码的“首页”没有高亮显示,怎么让首页也高亮呢?

看代码:

<div id="nav">
    <ul>
        <li>
            <a {dede:field name="typeid" runphp="yes"}(@me=="")? @me="class='hover'":@me="";{/dede:field} href='{dede:global.cfg_cmsurl/}/'>
            <span>首页</span></a>
        </li>
        {dede:channel type='top' row='10' currentstyle="<li><a href='~typelink~' class='hover'><span>~typename~</span></a></li>"}
        <li><a href='[field:typeurl/]'>[field:typename/]</a></li>
        {/dede:channel}
    </ul>
</div>

其原理就是判断当前页面是否有typeid,然后跟据判断给出不同的样式;在栏目页或文章页都是有typeid的,首页是没有的,由此判断出是否是首页。

代码分析:

dede:field name="typeid":获取typeid号

runphp="yes":允许运行php脚本,即允许运行后面的判断运算。

(@me=="")? @me="class='hover'":@me="":这是一个三元运算判断,问号?前面的条件成立即用表达式一“class='hover'",若不成立即用表达式二""它是空值。

@me:它代表当前表达式中的变量值的变量名,上述代码中@me就是获取的变量值“typeid”的变量名;

若当前页是首面时获取的typeid的值是空,即@me="",若当前页是其它栏目时typeid是有值的,即“非空”的,

由此就可以判断当前是不是首页了,当@me=""的时候,就给样式加上class='hover',高亮就有了!


作为小白的教材,够细的了吧?

我也是小白!  ^_^


  • 我的微信:seausun
  • 这是我的微信扫一扫
  • weinxin
  • 你领一次红包多一份动力
  • 支付宝搜索156-5053-9852领取
  • weinxin

    发表评论

    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: