实现5ucms后台内容管理页面栏目树形导航

  无忧CMS的轻便灵巧曾是广大站长朋友的不二选择,然一旦网站栏目众多的时候,在它的后台内容页面的栏目导航就显得眼花缭乱,就连自己都分不清哪个是一级栏目,哪个是二级栏目了,为此cssHaier也是苦恼不已,于是兴起了给它改造的念头。
  我想实现的是什么呢?1,大类要显示列表,这个在之前的5ucms后台内容管理实现大类列表一文中已经实现了,此时要做的便是继续保留它。第二个要实现的便是今日的主题,让每个大类下面都能显示出它下面的子类和统计栏目文章数,[{pre}Channel]是栏目表,所有的类别信息都在这一个表中,想实现之前的第二个目的,无疑就要从这里开始了。
  经过一个小时的测试,终于实现了,并在0409版和2024版中分别测试通过!(注:这里的栏目深度为3,也就是说网站存在三级栏目以及以下都可以正常使用,若存在四级,则需要手动再增加一个循环了。)

  下面贴一下实现代码

1、打开admin/admin_content.asp页面,大约226行,找到以下内容

  下面贴一下实现代码

1、打开admin/admin_content.asp页面,大约226行,找到以下内容

<%Set Ns = DB("Select [ID],[Name] From [{pre}Channel] Where [OutSideLink]=0 Order By [Order] Desc,[ID] Desc",1)%> <%Do While Not Ns.Eof%>
<option value='Admin_Content.Asp?Page=1&Key=<%=Ns(0)%>&DFieldKey=Cid' <%If DFieldKey="Cid" And Cstr(Key)=Cstr(Ns(0)) Then%>selected<%End If%>><%=Ns(1)%></option>
<%Ns.MoveNext : Loop%>

2、将其整体注释掉或者删除并替换为一下内容(修改前请务必备份!)

<%
Dim Sqlp,Rsp,sqlpp,rspp 'by cssHaier
Set Rsp=db("select * from [{pre}Channel] Where [OutSideLink]=0 and [fatherid]=0 Order By [Order] Desc,[ID] Desc",2)
If Rsp.Eof and Rsp.Bof Then 'by cssHaier
Response.Write("<option value="""">请先添加分类</option>")
Else
Do while not Rsp.Eof
Response.Write("<option value=" & """Admin_Content.Asp?Page=1&Key=" & Rsp("ID") & "&DFieldKey=Cid""" & "")
If DFieldKey="Cid" And Cstr(Key)=Cstr(Rsp("id")) Then
Response.Write(" selected" )
End if
Response.Write(">" & Rsp("Name") & " ("&DB("Select Count([ID]) From [{pre}Content] Where [cid] in("&Rsp("ChildIDs")")",1)(0) ")</option>") & VbCrLf

Sqlpp ="select * from [{pre}Channel] Where [fatherid]="&Rsp("ID")" and [OutSideLink]=0 Order By [Order] Desc,[ID] Desc"
Set Rspp=db(sqlpp,2)
Do while not Rspp.Eof
Response.Write("<option value=" & """Admin_Content.Asp?Page=1&Key=" & Rspp("ID") & "&DFieldKey=Cid""" & "")
If DFieldKey="Cid" And Cstr(Key)=Cstr(Rspp("id")) Then
Response.Write(" selected" )
End if
Response.Write("> |-" & Rspp("Name") & " ("&DB("Select Count([ID]) From [{pre}Content] Where [cid] in("&Rspp("ChildIDs")")",1)(0)")")
Response.Write("</option>" ) & VbCrLf

Dim cs:Set cs=db("select * from [{pre}Channel] Where [fatherid]=" &Rspp("ID") "And [OutSideLink]=0 Order By [Order] Desc,[ID] Desc",2) 'by cssHaier
Do while not cs.Eof
Response.Write("<option value=" & """Admin_Content.Asp?Page=1&Key=" & cs("ID") & "&DFieldKey=Cid""" & "")
If DFieldKey="Cid" And Cstr(Key)=Cstr(cs("id")) Then
Response.Write(" selected" )
End if
Response.Write(">  |-" & cs("Name") & " ("&DB("Select Count([ID]) From [{pre}Content] Where [cid] in("&cs("ChildIDs")")",1)(0)")")
Response.Write("</option>" ) & VbCrLf
cs.Movenext
Loop
cs.close
Set cs=nothing
Rspp.Movenext
Loop
rspp.close
set rspp=nothing
Rsp.Movenext
Loop
End if
rsp.close
set rsp=nothing
%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值