📄 admin_class.asp
字号:
On Error Resume Next
If Request("classname") = "" Then
ErrMsg = ErrMsg + "<br>" + "<li>请输入分类名称。"
Founderr = True
Exit Sub
End If
If Request("class") = "" Then
ErrMsg = ErrMsg + "<br>" + "<li>请选择文章分类。"
Founderr = True
Exit Sub
End If
If Request("readme") = "" Then
ErrMsg = ErrMsg + "<br>" + "<li>请输入分类说明。"
Founderr = True
Exit Sub
End If
Set Rs = Server.CreateObject("adodb.recordset")
If Request("class") <> "0" Then
SQL = "select rootid,classid,depth,orders,strparent from NC_Class where classid=" & Request("class")
Rs.Open SQL, Conn, 1, 1
rootid = Rs(0)
ParentID = Rs(1)
depth = Rs(2)
orders = Rs(3)
If depth + 1 > 20 Then
ErrMsg = "<li>本系统限制最多只能有20级子分类</li>"
Founderr = True
Exit Sub
End If
strParent = Rs(4)
Rs.Close
neworders = orders
SQL = "select max(orders) from NC_Class where ParentID=" & Request("class")
Rs.Open SQL, Conn, 1, 1
If Not (Rs.EOF And Rs.bof) Then
neworders = Rs(0)
End If
If IsNull(neworders) Then neworders = orders
Rs.Close
DownsysClass.Execute ("update NC_Class set orders=orders+1 where orders>" & CInt(neworders) & "")
Else
SQL = "select max(rootid) from NC_Class"
Rs.Open SQL, Conn, 1, 1
Maxrootid = Rs(0) + 1
If IsNull(Maxrootid) Then Maxrootid = 1
Rs.Close
End If
SQL = "select classid from NC_Class where classid=" & Request("newclassid")
Rs.Open SQL, Conn, 1, 1
If Not (Rs.EOF And Rs.bof) Then
ErrMsg = "<li>您不能指定和别的分类一样的序号。</li>"
Founderr = True
Exit Sub
Else
classid = Request("newclassid")
End If
Rs.Close
SQL = "select * from NC_Class"
Rs.Open SQL, Conn, 1, 3
Rs.addnew
If Request("class") <> "0" Then
Rs("depth") = depth + 1
Rs("rootid") = rootid
Rs("orders") = neworders + 1
Rs("parentid") = Request.Form("class")
If strParent = "0" Then
Rs("strparent") = Request.Form("class")
Else
Rs("strparent") = strParent & "," & Request.Form("class")
End If
Else
Rs("depth") = 0
Rs("rootid") = Maxrootid
Rs("orders") = 0
Rs("parentid") = 0
Rs("strparent") = 0
End If
Rs("child") = 0
Rs("classid") = Request.Form("newclassid")
Rs("classname") = Server.HTMLEncode(Request.Form("classname"))
Rs("readme") = Request.Form("readme")
Rs("skinid") = Request.Form("skinid")
Rs("isUpdate") = 1
Rs.Update
Rs.Close
If Request("class") <> "0" Then
If depth > 0 Then DownsysClass.Execute ("update NC_Class set child=child+1 where classid in (" & strParent & ")")
DownsysClass.Execute ("update NC_Class set child=child+1 where classid=" & Request("class"))
End If
Set Rs = DownsysClass.Execute("select ID from NC_Template")
Do While Not Rs.EOF
DownsysClass.DelCahe ("ClassList" & Rs(0))
DownsysClass.DelCahe ("ClassMenu" & Rs(0))
Rs.movenext
Loop
DownsysClass.DelCahe "ClassJumpMenu"
DownsysClass.DelCahe "ClassJumpList"
SucMsg = "<li>分类添加成功!</li>"
NC_Admin.Succeed_Msg (SucMsg)
Set Rs = Nothing
End Sub
Private Sub savedit()
Dim newclassid
Dim Maxrootid
Dim ParentID
Dim depth
Dim Child
Dim strParent
Dim rootid
Dim iparentid
Dim istrparent
Dim trs
Dim brs
Dim mrs
Dim k
Dim nstrparent
Dim mstrparent
Dim ParentSql
Dim boardcount
'保存编辑分类信息
If CLng(Request("editid")) = CLng(Request("class")) Then
ErrMsg = "<li>所属分类不能指定自己</li>"
Founderr = True
Exit Sub
End If
Set Rs = CreateObject("adodb.recordset")
SQL = "select * from NC_Class where classid=" & Request("editid")
Rs.Open SQL, Conn, 1, 3
newclassid = Rs("classid")
ParentID = Rs("parentid")
iparentid = Rs("parentid")
strParent = Rs("strparent")
depth = Rs("depth")
Child = Rs("child")
rootid = Rs("rootid")
If ParentID = 0 Then
If CLng(Request("class")) <> 0 Then
Set trs = DownsysClass.Execute("select rootid from NC_Class where classid=" & Request("class"))
If rootid = trs(0) Then
ErrMsg = "<li>您不能指定该分类的下属分类作为所属分类</li>"
Founderr = True
Exit Sub
Response.End
End If
End If
Else
Set trs = DownsysClass.Execute("select classid from NC_Class where strparent like '%" & strParent & "%' and classid=" & Request("class"))
If Not (trs.EOF And trs.bof) Then
ErrMsg = "<li>您不能指定该分类的下属分类作为所属分类</li>"
Founderr = True
Exit Sub
Response.End
End If
End If
If ParentID = 0 Then
ParentID = Rs("classid")
iparentid = 0
End If
Rs("classname") = Server.HTMLEncode(Request.Form("classname"))
Rs("readme") = Request("readme")
Rs("skinid") = Request.Form("skinid")
Rs("isUpdate") = 1
Rs.Update
Rs.Close
Set Rs = Nothing
Set mrs = DownsysClass.Execute("select max(rootid) from NC_Class")
Maxrootid = mrs(0) + 1
If CLng(ParentID) <> CLng(Request("class")) And Not (iparentid = 0 And CInt(Request("class")) = 0) Then
If iparentid > 0 And CInt(Request("class")) = 0 Then
DownsysClass.Execute ("update NC_Class set depth=0,orders=0,rootid=" & Maxrootid & ",parentid=0,strparent='0' where classid=" & newclassid)
strParent = strParent & ","
Set Rs = DownsysClass.Execute("select count(*) from NC_Class where strparent like '%" & strParent & "%'")
boardcount = Rs(0)
If IsNull(boardcount) Then
boardcount = 1
Else
boardcount = boardcount + 1
End If
DownsysClass.Execute ("update NC_Class set child=child-" & boardcount & " where classid=" & iparentid)
For i = 1 To depth
Set Rs = DownsysClass.Execute("select parentid from NC_Class where classid=" & iparentid)
If Not (Rs.EOF And Rs.bof) Then
iparentid = Rs(0)
DownsysClass.Execute ("update NC_Class set child=child-" & boardcount & " where classid=" & iparentid)
End If
Next
If Child > 0 Then
i = 0
Set Rs = DownsysClass.Execute("select * from NC_Class where strparent like '%" & strParent & "%'")
Do While Not Rs.EOF
i = i + 1
mstrparent = Replace(Rs("strparent"), strParent, "")
DownsysClass.Execute ("update NC_Class set depth=depth-" & depth & ",rootid=" & Maxrootid & ",strparent='" & mstrparent & "' where classid=" & Rs("classid"))
Rs.movenext
Loop
End If
ElseIf iparentid > 0 And CInt(Request("class")) > 0 Then
Set trs = DownsysClass.Execute("select * from NC_Class where classid=" & Request("class"))
strParent = strParent & ","
Set Rs = DownsysClass.Execute("select count(*) from NC_Class where strparent like '%" & strParent & "%'")
boardcount = Rs(0)
If IsNull(boardcount) Then boardcount = 1
DownsysClass.Execute ("update NC_Class set orders=orders + " & boardcount & " + 1 where rootid=" & trs("rootid") & " and orders>" & trs("orders") & "")
DownsysClass.Execute ("update NC_Class set depth=" & trs("depth") & "+1,orders=" & trs("orders") & "+1,rootid=" & trs("rootid") & ",ParentID=" & Request("class") & ",strparent='" & trs("strparent") & "," & trs("classid") & "' where classid=" & newclassid)
i = 1
Set Rs = DownsysClass.Execute("select * from NC_Class where strparent like '%" & strParent & "%' order by orders")
Do While Not Rs.EOF
i = i + 1
istrparent = trs("strparent") & "," & trs("classid") & "," & Replace(Rs("strparent"), strParent, "")
DownsysClass.Execute ("update NC_Class set depth=depth+" & trs("depth") & "-" & depth & "+1,orders=" & trs("orders") & "+" & i & ",rootid=" & trs("rootid") & ",strparent='" & istrparent & "' where classid=" & Rs("classid"))
Rs.movenext
Loop
ParentID = Request("class")
If rootid = trs("rootid") Then
DownsysClass.Execute ("update NC_Class set child=child+" & i & " where (not ParentID=0) and classid=" & ParentID)
For k = 1 To trs("depth")
Set Rs = DownsysClass.Execute("select parentid from NC_Class where (not ParentID=0) and classid=" & ParentID)
If Not (Rs.EOF And Rs.bof) Then
ParentID = Rs(0)
DownsysClass.Execute ("update NC_Class set child=child+" & i & " where (not ParentID=0) and classid=" & ParentID)
End If
Next
DownsysClass.Execute ("update NC_Class set child=child-" & i & " where (not ParentID=0) and classid=" & iparentid)
For k = 1 To depth
Set Rs = DownsysClass.Execute("select parentid from NC_Class where (not ParentID=0) and classid=" & iparentid)
If Not (Rs.EOF And Rs.bof) Then
iparentid = Rs(0)
DownsysClass.Execute ("update NC_Class set child=child-" & i & " where (not ParentID=0) and classid=" & iparentid)
End If
Next
Else
DownsysClass.Execute ("update NC_Class set child=child+" & i & " where classid=" & ParentID)
For k = 1 To trs("depth")
Set Rs = DownsysClass.Execute("select parentid from NC_Class where classid=" & ParentID)
If Not (Rs.EOF And Rs.bof) Then
ParentID = Rs(0)
DownsysClass.Execute ("update NC_Class set child=child+" & i & " where classid=" & ParentID)
End If
Next
DownsysClass.Execute ("update NC_Class set child=child-" & i & " where classid=" & iparentid)
For k = 1 To depth
Set Rs = DownsysClass.Execute("select parentid from NC_Class where classid=" & iparentid)
If Not (Rs.EOF And Rs.bof) Then
iparentid = Rs(0)
DownsysClass.Execute ("update NC_Class set child=child-" & i & " where classid=" & iparentid)
End If
Next
End If
Else
Set trs = DownsysClass.Execute("select * from NC_Class where classid=" & Request("class"))
Set Rs = DownsysClass.Execute("select count(*) from NC_Class where rootid=" & rootid)
boardcount = Rs(0)
ParentID = Request("class")
DownsysClass.Execute ("update NC_Class set child=child+" & boardcount & " where classid=" & ParentID)
For k = 1 To trs("depth")
Set Rs = DownsysClass.Execute("select parentid from NC_Class where classid=" & ParentID)
If Not (Rs.EOF And Rs.bof) Then
ParentID = Rs(0)
DownsysClass.Execute ("update NC_Class set child=child+" & boardcount & " where classid=" & ParentID)
End If
Next
DownsysClass.Execute ("update NC_Class set orders=orders + " & boardcount & " + 1 where rootid=" & trs("rootid") & " and orders>" & trs("orders") & "")
i = 0
Set Rs = DownsysClass.Execute("select * from NC_Class where rootid=" & rootid & " order by orders")
Do While Not Rs.EOF
i = i + 1
If Rs("parentid") = 0 Then
If trs("strparent") = "0" Then
strParent = trs("classid")
Else
strParent = trs("strparent") & "," & trs("classid")
End If
DownsysClass.Execute ("update NC_Class set depth=depth+" & trs("depth") & "+1,orders=" & trs("orders") & "+" & i & ",rootid=" & trs("rootid") & ",strparent='" & strParent & "',parentid=" & Request("class") & " where classid=" & Rs("classid"))
Else
If trs("strparent") = "0" Then
strParent = trs("classid") & "," & Rs("strparent")
Else
strParent = trs("strparent") & "," & trs("classid") & "," & Rs("strparent")
End If
DownsysClass.Execute ("update NC_Class set depth=depth+" & trs("depth") & "+1,orders=" & trs("orders") & "+" & i & ",rootid=" & trs("rootid") & ",strparent='" & strParent & "' where classid=" & Rs("classid"))
End If
Rs.movenext
Loop
End If
End If
Set Rs = DownsysClass.Execute("select ID from NC_Template")
Do While Not Rs.EOF
DownsysClass.DelCahe ("ClassList" & Rs(0))
DownsysClass.DelCahe ("ClassMenu" & Rs(0))
Rs.movenext
Loop
DownsysClass.DelCahe "ClassJumpMenu"
DownsysClass.DelCahe "ClassJumpList"
SucMsg = "<li>分类修改成功!</li>"
NC_Admin.Succeed_Msg (SucMsg)
Set Rs = Nothing
Set mrs = Nothing
Set trs = Nothing
End Sub
Private Sub del()
On Error Resume Next
Set Rs = DownsysClass.Execute("select strparent,child,depth from NC_Class where classid=" & Request("editid"))
If Not (Rs.EOF And Rs.bof) Then
If Rs(1) > 0 Then
Response.Write "该分类含有下属分类,请删除其下属分类后再进行删除本分类的操作"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -