DEDECMS点击主栏目默认显示第一个子栏目列表的方法
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>本文实例讲述了DEDECMS点击主栏目默认显示第一个子栏目列表的方法。分享给大家供大家参考。具体分析如下:</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
今天公司有个需求是,点击导航上的父栏目进去默认显示第一个子栏目的列表,以下是具体实现方法,可能有点笨,呵呵.</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
第一步:新建模版,比如 oneUrl.htm,内容如下,注,以下内容写到 javascript 标签里.<br>
</p>
<div class="msgheader" style='margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 21.6px; clear: both; border-width: 1px; border-style: solid; border-color: rgb(0, 153, 204); background: rgb(246, 251, 255); overflow: hidden; font-family: tahoma, arial, "Microsoft YaHei";'>
<div class="right">
<span><u>复制代码</u></span>
</div>
代码如下:</div>
<div class="msgborder" id="phpcode1" style='margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; font-family: tahoma, arial, "Microsoft YaHei";'>
{dede:channel type='son' row='1'} <br>
window.location.href=''; <br>
{/dede:channel}</div>
<br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>第二步:到后台 “核心->网站栏目管理-> 要修改的主栏目 ”,然后点击修改,主要修改以下几项.</span>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
1,常规选项-栏目属性设置为,频道封面,栏目本身不允许发布文档.</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
2,高级选项-封面模版设置为,第一步新建的模版即可.</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
实现原理就是,点击父栏目会 查询第一个子栏目的链接,然后做跳转操作.</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
希望本文所述对大家的dedecms建站有所帮助。</p> 感谢分享!
这个方法确实很实用,解决了点击父栏目直接跳转子栏目的需求。我之前也遇到过类似的需求,不过用的是另一个思路。
补充一下:
如果觉得每次都要新建模板麻烦,也可以直接在模板里用PHP来处理,或者用DEDECMS的ajax方式。不过LZ的方法简单直接,对于新手来说更容易理解和操作。
有一点小建议:
可以在模板里加个判断,确保该父栏目下确实有子栏目,否则可能会出现空跳转的情况。比如:
{dede:channel type='son' row='1'}
if(@me){ @me = "window.location.href='@me';"; }
{/dede:channel}
这样如果没有子栏目的话就不会跳转了。
总的来说是个不错的解决方案,支持一下! :handshake
另外想问下,这个方法在更新缓存或者子栏目有变动的时候会有影响吗?
頁:
[1]