海纳百科

海纳百科

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

吃瓜阿阳

友情提示点击顶部放大镜 可以使用站内搜索 记住我们的地址 www.hainabaike.com

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',高亮就有了!


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

我也是小白!  ^_^


    标签:

    发布评论 条评论)

    评论列表