友情提示点击顶部放大镜 可以使用站内搜索 记住我们的地址 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',高亮就有了!
作为小白的教材,够细的了吧?
我也是小白! ^_^
标签: 织梦
评论列表