📄 admin_classify.asp
字号:
ErrMsg = ErrMsg + "<li>请选择模板。</li>"
Founderr = True
End If
End If
If Len(Request.Form("ChannelName")) => 25 Then
FoundErr = True
ErrMsg = ErrMsg + "<li>分类名称名称不能超过50个字符!</li>"
End If
If Len(Request.Form("Readme")) => 200 Then
FoundErr = True
ErrMsg = ErrMsg + "<li>栏目注释不能超过200个字符!</li>"
End If
If Len(Request.Form("ClassDir")) = 0 And Request.Form("TurnLink") = 0 Then
FoundErr = True
ErrMsg = ErrMsg + "<li>分类目录不能为空!</li>"
End If
If Not Newasp.IsValidChar(Request.Form("ClassDir")) Then
FoundErr = True
ErrMsg = ErrMsg + "<li>目录名中含有非法字符或者中文字符!</li>"
End If
strClassDir = Replace(Replace(Replace(Request.Form("ClassDir"), "\","/"), " ",""), "'","")
If Right(strClassDir, 1) <> "/" Then
strClassDir = strClassDir
Else
strClassDir = Left(strClassDir,Len(strClassDir)-1)
End If
If Left(strClassDir, 1) = "/" Then
FoundErr = True
ErrMsg = ErrMsg + "<li>目录前面不能有“/”,请认真填写分类目录!</li>"
End If
End Sub
Sub savenew()
Dim classid,rootid,ParentID,depth,orders
Dim Maxrootid,ParentStr,ChildStr,neworders
'保存添加分类信息
CheckSave
If Founderr = True Then Exit Sub
If Request("class") <> "0" Then
SQL = "SELECT rootid,classid,depth,orders,ParentStr,TurnLink,HtmlFileDir FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & Request("class")
Set Rs = Newasp.Execute (SQL)
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
If Rs("TurnLink") = 1 Then
ErrMsg = "<li>该分类是外部连接,您不能指定该分类作为所属分类</li>"
Founderr = True
Exit Sub
End If
ParentStr = Rs(4)
HtmlFileDir = Rs("HtmlFileDir")
Rs.Close
'neworders = orders
'SQL = "SELECT MAX(orders) FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentID=" & Request("class")
'Set Rs = Newasp.Execute (SQL)
'If Not (Rs.EOF And Rs.bof) Then
' neworders = Rs(0)
'End If
'If IsNull(neworders) Then neworders = orders
'Rs.Close
'Newasp.Execute ("UPDATE NC_Classify SET orders=orders+1 WHERE ChannelID = "& ChannelID &" And orders>" & CInt(neworders) & "")
Else
SQL = "SELECT MAX(rootid) FROM NC_Classify WHERE ChannelID = "& ChannelID
Set Rs = Newasp.Execute (SQL)
Maxrootid = Rs(0) + 1
If IsNull(Maxrootid) Then Maxrootid = 1
Rs.Close
End If
SQL = "SELECT classid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & Request("newclassid")
Set Rs = Newasp.Execute (SQL)
If Not (Rs.EOF And Rs.bof) Then
ErrMsg = "<li>您不能指定和别的分类一样的序号。</li>"
Founderr = True
Exit Sub
Else
classid = Request("newclassid")
End If
Rs.Close
Set Rs = Server.CreateObject("adodb.recordset")
SQL = "SELECT * FROM NC_Classify"
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")
HtmlFileDir = HtmlFileDir & strClassDir & "/"
If ParentStr = "0" Then
Rs("ParentStr") = Request.Form("class")
Else
Rs("ParentStr") = ParentStr & "," & Request.Form("class")
End If
Else
Rs("depth") = 0
Rs("rootid") = Maxrootid
'Rs("orders") = 0
Rs("parentid") = 0
Rs("ParentStr") = 0
HtmlFileDir = strClassDir & "/"
End If
Rs("ChannelID") = ChannelID
Rs("ColorModes") = Trim(Request.Form("ColorModes"))
Rs("FontModes") = Trim(Request.Form("FontModes"))
Rs("child") = 0
Rs("ChildStr") = Trim(Request.Form("newclassid"))
Rs("LinkTarget") = Trim(Request.Form("LinkTarget"))
Rs("TurnLink") = Trim(Request.Form("TurnLink"))
Rs("TurnLinkUrl") = Trim(Request.Form("TurnLinkUrl"))
Rs("UserGroup") = Trim(Request.Form("UserGroup"))
Rs("HtmlFileDir") = Trim(HtmlFileDir)
Rs("ClassDir") = Trim(strClassDir)
Rs("classid") = Newasp.ChkNumeric(Request.Form("newclassid"))
Rs("orders") = Newasp.ChkNumeric(Request.Form("newclassid"))
Rs("classname") = Newasp.ChkFormStr(Request.Form("classname"))
Rs("readme") = Trim(Request.Form("readme"))
Rs("skinid") = Trim(Request.Form("skinid"))
Rs("UseHtml") = 1
Rs("ShowCount") = 0
Rs("isUpdate") = 1
Rs("AdsCode") = "|||||||||||||||"
Rs.Update
Rs.Close
If Request("class") <> "0" Then
Dim nClassID
ParentStr = ParentStr & "," & Request.Form("class")
nClassID = Trim(Request.Form("newclassid"))
SQL = "SELECT classid,ParentStr,ChildStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid in (" & ParentStr & ")"
Set Rs = Newasp.Execute (SQL)
Do While Not Rs.EOF
ChildStr = Rs("ChildStr") & "," & nClassID
Newasp.Execute ("UPDATE NC_Classify SET ChildStr='"&ChildStr&"' WHERE ChannelID = "& ChannelID &" And classid = " & Rs("classid"))
Rs.movenext
Loop
Rs.Close
'If depth > 0 Then
' Newasp.Execute ("UPDATE NC_Classify SET child=child+1 where ChannelID = "& ChannelID &" And classid in (" & ParentStr & ")")
'Else
' Newasp.Execute ("UPDATE NC_Classify SET child=child+1 where ChannelID = "& ChannelID &" And classid=" & Request("class"))
'End If
End If
Dim LocalPath
If CInt(Newasp.IsCreateHtml) <> 0 And CInt(Request.Form("TurnLink")) = 0 Then
LocalPath = Newasp.InstallDir & ChannelDir & HtmlFileDir
Newasp.CreatPathEx(LocalPath)
End If
CheckAndFixClass 0,1
Call RemoveCache
SucMsg = "<li>恭喜您!分类添加成功。</li>"
Set Rs = Nothing
Succeed(SucMsg)
End Sub
Sub savedit()
Dim newclassid,Maxrootid,ParentID,depth,Child
Dim ParentStr,rootid,iparentid,iParentStr
Dim trs,brs,mrs,Rsc,Rss,k
Dim nParentStr,mParentStr,ParentSql,ChildStr,nChildStr
Dim ArrChildStr,ii,ClassCount
'保存编辑分类信息
If CLng(Request("editid")) = CLng(Request("class")) Then
ErrMsg = "<li>所属分类不能指定自己</li>"
Founderr = True
Exit Sub
End If
CheckSave
If Founderr = True Then Exit Sub
If CLng(Request("class")) <> 0 Then
HtmlFileDir = Newasp.Execute("SELECT HtmlFileDir FROM [NC_Classify] WHERE ChannelID = "& ChannelID &" And classid=" & Request("class"))(0)
HtmlFileDir = HtmlFileDir & strClassDir & "/"
End If
Set Rs = Server.CreateObject("adodb.recordset")
SQL = "SELECT * FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & Request("editid")
Rs.Open SQL, Conn, 1, 3
newclassid = Rs("classid")
ParentID = Rs("parentid")
iparentid = Rs("parentid")
ParentStr = Rs("ParentStr")
ChildStr = Rs("ChildStr")
ClassDir = Rs("ClassDir")
depth = Rs("depth")
Child = Rs("child")
rootid = Rs("rootid")
If CLng(Request("class")) = 0 Then
HtmlFileDir = strClassDir & "/"
End If
If Child <> 0 And LCase(ClassDir) <> LCase(strClassDir) Then
ErrMsg = "<li>对不起!该分类中有下属分类不能修改分类目录!</li>"
Founderr = True
Exit Sub
End If
If Child <> 0 And ParentID <> Clng(Request("class")) Then
ErrMsg = "<li>对不起!该分类中有下属分类不能移动,请先移动其下属分类。</li>"
Founderr = True
Exit Sub
End If
If ParentID = 0 Then
If CLng(Request("class")) <> 0 Then
Set trs = Newasp.Execute("SELECT rootid,TurnLink FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & Request("class"))
If rootid = trs(0) Then
ErrMsg = "<li>您不能指定该分类的下属分类作为所属分类</li>"
Founderr = True
Exit Sub
End If
If trs(1) = 1 Then
ErrMsg = "<li>该分类是外部连接,您不能指定该分类作为所属分类</li>"
Founderr = True
Exit Sub
End If
End If
Else
Set trs = Newasp.Execute("SELECT classid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr like '%" & ParentStr & "%' and classid=" & Request("class"))
If Not (trs.EOF And trs.bof) Then
ErrMsg = "<li>您不能指定该分类的下属分类作为所属分类</li>"
Founderr = True
Exit Sub
End If
End If
If ParentID = 0 Then
ParentID = Rs("classid")
iparentid = 0
End If
Rs("classname") = Newasp.ChkFormStr(Request.Form("classname"))
Rs("readme") = Trim(Request.Form("readme"))
Rs("ColorModes") = Trim(Request.Form("ColorModes"))
Rs("FontModes") = Trim(Request.Form("FontModes"))
Rs("LinkTarget") = Trim(Request.Form("LinkTarget"))
Rs("TurnLink") = Trim(Request.Form("TurnLink"))
Rs("TurnLinkUrl") = Trim(Request.Form("TurnLinkUrl"))
Rs("UserGroup") = Trim(Request.Form("UserGroup"))
Rs("ClassDir") = Trim(strClassDir)
Rs("HtmlFileDir") = Trim(HtmlFileDir)
Rs("UseHtml") = 1
Rs("skinid") = Request.Form("skinid")
Rs("isUpdate") = 1
Rs.Update
Rs.Close
Set Rs = Nothing
Set mrs = Newasp.Execute("SELECT MAX(rootid) FROM NC_Classify WHERE ChannelID="& ChannelID)
Maxrootid = mrs(0) + 1
'假如更改了所属分类
'需要更新其原来所属分类信息,包括深度、父级ID、分类数、排序
'需要更新当前所属分类信息
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
'如果不是一级分类改成一级分类,更新子分类数据
'开始更新子分类
'ChildStr = "," & ChildStr
Set Rsc = Newasp.Execute ("SELECT classid,ChildStr FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid in (" & ParentStr & ")")
Do While Not Rsc.EOF
ArrChildStr = Split(Rsc("ChildStr"), ",")
nChildStr = ""
For ii = 0 to Ubound(ArrChildStr)
If ArrChildStr(ii) <> ChildStr Then
nChildStr = nChildStr & ArrChildStr(ii) & Chr(32)
End If
Next
nChildStr = Replace(Trim(nChildStr), Chr(32), ",")
'nChildStr = Replace(Rsc("ChildStr"), ChildStr, "")
Newasp.Execute ("UPDATE NC_Classify SET ChildStr='" & nChildStr & "' WHERE ChannelID = "& ChannelID &" And classid = " & Rsc("classid"))
Rsc.movenext
Loop
Rsc.Close
Set Rsc = Nothing
'更新子分类结束
'---------------------------------------------------
'更新当前分类数据
Newasp.Execute ("update NC_Classify set depth=0,orders=0,rootid=" & Maxrootid & ",parentid=0,ParentStr='0' where classid=" & newclassid)
ParentStr = ParentStr & ","
Set Rs = Newasp.Execute("SELECT COUNT(ClassID) FROM NC_Classify WHERE ChannelID = "& ChannelID &" And ParentStr like '%" & ParentStr & "%'")
ClassCount = Rs(0)
If IsNull(ClassCount) Then
ClassCount = 1
Else
ClassCount = ClassCount + 1
End If
'更新其原来所属分类数
Newasp.Execute ("UPDATE NC_Classify SET child=child-" & ClassCount & " WHERE ChannelID = "& ChannelID &" And classid=" & iparentid)
'更新其原来所属分类数据,排序相当于剪枝而不需考虑
For i = 1 To depth
'得到其父类的父类的ID
Set Rs = Newasp.Execute("SELECT parentid FROM NC_Classify WHERE ChannelID = "& ChannelID &" And classid=" & iparentid)
If Not (Rs.EOF And Rs.bof) Then
iparentid = Rs(0)
Newasp.Execute ("UPDATE NC_Classify SET child=child-" & ClassCount & " WHERE ChannelID = "& ChannelID &" And classid=" & iparentid)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -