⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 admin_classify.asp

📁 小游戏网站演示www.4399.io 拥有4万条游戏数据
💻 ASP
📖 第 1 页 / 共 5 页
字号:
			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 + -