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

📄 admin_linkclass.asp

📁 淘客网上商店网站程序 淘客网上商店网站程序 淘客网上商店网站程序
💻 ASP
📖 第 1 页 / 共 5 页
字号:
			i=i+1
			iParentPath=trs("ParentPath") & "," & trs("ClassID") & "," & replace(rs("ParentPath"),ParentPath,"")
			Cl.Execute("Update Cl_LinkClass set depth=depth-"&depth&"+"&trs("depth")&"+1,OrderID="&PrevOrderID&"+"&i&",rootid="&trs("rootid")&",ParentPath='"&iParentPath&"' where ClassID="&rs("ClassID"))
			rs.movenext
		loop
		rs.close
		set rs=Nothing
		trs.close
		set trs=Nothing
		
		'更新所指向的上级栏目的子栏目数
		Cl.Execute("Update Cl_LinkClass set child=child+1 where ClassID="&rParentID)
		
		'更新其原父类的子栏目数			
		Cl.Execute("Update Cl_LinkClass set child=child-1 where ClassID="&iParentID)
	else    '如果原来是一级栏目改成其他栏目的下属栏目
		'得到移动的栏目总数
		set rs=Cl.Execute("select count(*) From Cl_LinkClass where rootid="&rootid)
		ClassCount=rs(0)
		rs.close
		set rs=Nothing
		
		'获得目标栏目的相关信息		
		set trs=Cl.Execute("select * From Cl_LinkClass where ClassID="&rParentID)
		if trs("Child")>0 then		
			'得到与本栏目同级的最后一个栏目的OrderID
			set rsPrevOrderID=Cl.Execute("select Max(OrderID) From Cl_LinkClass where ParentID=" & trs("ClassID"))
			PrevOrderID=rsPrevOrderID(0)
			sql="select ClassID,NextID from Cl_LinkClass where ParentID=" & trs("ClassID") & " and OrderID=" & PrevOrderID
			set rs=server.createobject("adodb.recordset")
			rs.open sql,Conn,1,3
			PrevID=rs(0)
			rs(1)=ClassID
			rs.update
			set rs=Nothing
			'得到同一父栏目但比本栏目级数大的子栏目的最大OrderID,如果比前一个值大,则改用这个值
			set rsPrevOrderID=Cl.Execute("select Max(OrderID) From Cl_LinkClass where ParentPath like '" & trs("ParentPath") & "," & trs("ClassID") & ",%'")
			if (not(rsPrevOrderID.bof and rsPrevOrderID.eof)) then
				if not IsNull(rsPrevOrderID(0))  then
			 		if rsPrevOrderID(0)>PrevOrderID then
						PrevOrderID=rsPrevOrderID(0)
					end if
				end if
			end if
		else
			PrevID=0
			PrevOrderID=trs("OrderID")
		end if

		'在获得移动过来的栏目数后更新排序在指定栏目之后的栏目排序数据
		Cl.Execute("Update Cl_LinkClass set OrderID=OrderID+" & ClassCount &"+1 where rootid=" & trs("rootid") & " and OrderID>" & PrevOrderID)
		
		Cl.Execute("Update Cl_LinkClass set PrevID=" & PrevID & ",NextID=0 where ClassID=" & ClassID)
		set rs=Cl.Execute("select * From Cl_LinkClass where rootid="&rootid&" order by OrderID")
		i=0
		do while not rs.eof
			i=i+1
			if rs("parentid")=0 then
				ParentPath=trs("ParentPath") & "," & trs("ClassID")
				Cl.Execute("Update Cl_LinkClass set depth=depth+"&trs("depth")&"+1,OrderID="&PrevOrderID&"+"&i&",rootid="&trs("rootid")&",ParentPath='"&ParentPath&"',parentid="&rParentID&" where ClassID="&rs("ClassID"))
			else
				ParentPath=trs("ParentPath") & "," & trs("ClassID") & "," & replace(rs("ParentPath"),"0,","")
				Cl.Execute("Update Cl_LinkClass set depth=depth+"&trs("depth")&"+1,OrderID="&PrevOrderID&"+"&i&",rootid="&trs("rootid")&",ParentPath='"&ParentPath&"' where ClassID="&rs("ClassID"))
			end if
			rs.movenext
		loop
		rs.close:set rs=Nothing
		trs.close
		set trs=Nothing
		'更新所指向的上级栏目栏目数		
		Cl.Execute("Update Cl_LinkClass set child=child+1 where ClassID="&rParentID)
	end if
	UpDateClassData '更新所有栏目数据
  end if
  Cl.SaveAdminLog
  Response.Redirect FileName
end sub

sub UpOrder()
	dim ClassID,sqlOrder,rsOrder,MoveNum,cRootID,tRootID,PrevID,NextID
	ClassID=Trim(request("ClassID"))
	cRootID=Trim(request("cRootID"))
	MoveNum=Trim(request("MoveNum"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br /><li>参数不足!</li>"
	else
		ClassID=CLng(ClassID)
	end if
	if cRootID="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br /><li>错误参数!</li>"
	else
		cRootID=Cint(cRootID)
	end if
	if MoveNum="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br /><li>错误参数!</li>"
	else
		MoveNum=Cint(MoveNum)
		if MoveNum=0 then
			FoundErr=True
			ErrMsg=ErrMsg & "<br /><li>请选择要提升的数字!</li>"
		end if
	end if
	if FoundErr=True then
		exit sub
	end if

	'得到本栏目的PrevID,NextID
	set rs=Cl.Execute("select PrevID,NextID from Cl_LinkClass where ClassID=" & ClassID)
	PrevID=rs(0)
	NextID=rs(1)
	rs.close
	set rs=Nothing
	'先修改上一栏目的NextID和下一栏目的PrevID
	if PrevID>0 then
		Cl.Execute "Update Cl_LinkClass set NextID=" & NextID & " where ClassID=" & PrevID
	end if
	if NextID>0 then
		Cl.Execute "Update Cl_LinkClass set PrevID=" & PrevID & " where ClassID=" & NextID
	end if

	dim mrs,MaxRootID
	set mrs=Cl.Execute("select max(rootid) From Cl_LinkClass")
	MaxRootID=mrs(0)+1
	'先将当前栏目移至最后,包括子栏目
	Cl.Execute("Update Cl_LinkClass set RootID=" & MaxRootID & " where RootID=" & cRootID)
	
	'然后将位于当前栏目以上的栏目的RootID依次加一,范围为要提升的数字
	sqlOrder="select * From Cl_LinkClass where ParentID=0 and RootID<" & cRootID & " order by RootID desc"
	set rsOrder=server.CreateObject("adodb.recordset")
	rsOrder.open sqlOrder,Conn,1,3
	if rsOrder.bof and rsOrder.eof then
		exit sub        '如果当前栏目已经在最上面,则无需移动
	end if
	i=1
	do while not rsOrder.eof
		tRootID=rsOrder("RootID")       '得到要提升位置的RootID,包括子栏目
		Cl.Execute("Update Cl_LinkClass set RootID=RootID+1 where RootID=" & tRootID)
		i=i+1
		if i>MoveNum then
			Cl.Execute("Update Cl_LinkClass set PrevID=" & ClassID & " where ClassID=" & ClassID)
			Cl.Execute("Update Cl_LinkClass set NextID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
			exit do
		end if
		rsOrder.movenext
	loop
	rsOrder.movenext
	if rsOrder.eof then
		Cl.Execute("Update Cl_LinkClass set PrevID=0 where ClassID=" & ClassID)
	else
		Cl.Execute("Update Cl_LinkClass set NextID=" & ClassID & " where ClassID=" & ClassID)
		Cl.Execute("Update Cl_LinkClass set PrevID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
	end if	
	rsOrder.close
	set rsOrder=Nothing
	
	'然后再将当前栏目从最后移到相应位置,包括子栏目
	Cl.Execute("Update Cl_LinkClass set RootID=" & tRootID & " where RootID=" & MaxRootID)
	Cl.SaveAdminLog
	response.Redirect FileName & "?Action=Order"
end sub

sub DownOrder()
	dim ClassID,sqlOrder,rsOrder,MoveNum,cRootID,tRootID,PrevID,NextID
	ClassID=Trim(request("ClassID"))
	cRootID=Trim(request("cRootID"))
	MoveNum=Trim(request("MoveNum"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br /><li>参数不足!</li>"
	else
		ClassID=CLng(ClassID)
	end if
	if cRootID="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br /><li>错误参数!</li>"
	else
		cRootID=Cint(cRootID)
	end if
	if MoveNum="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br /><li>错误参数!</li>"
	else
		MoveNum=Cint(MoveNum)
		if MoveNum=0 then
			FoundErr=True
			ErrMsg=ErrMsg & "<br /><li>请选择要提升的数字!</li>"
		end if
	end if
	if FoundErr=True then
		exit sub
	end if

	'得到本栏目的PrevID,NextID
	set rs=Cl.Execute("select PrevID,NextID from Cl_LinkClass where ClassID=" & ClassID)
	PrevID=rs(0)
	NextID=rs(1)
	rs.close
	set rs=Nothing
	'先修改上一栏目的NextID和下一栏目的PrevID
	if PrevID>0 then
		Cl.Execute "Update Cl_LinkClass set NextID=" & NextID & " where ClassID=" & PrevID
	end if
	if NextID>0 then
		Cl.Execute "Update Cl_LinkClass set PrevID=" & PrevID & " where ClassID=" & NextID
	end if

	dim mrs,MaxRootID
	set mrs=Cl.Execute("select max(rootid) From Cl_LinkClass")
	MaxRootID=mrs(0)+1
	'先将当前栏目移至最后,包括子栏目
	Cl.Execute("Update Cl_LinkClass set RootID=" & MaxRootID & " where RootID=" & cRootID)
	
	'然后将位于当前栏目以下的栏目的RootID依次减一,范围为要下降的数字
	sqlOrder="select * From Cl_LinkClass where ParentID=0 and RootID>" & cRootID & " order by RootID"
	set rsOrder=server.CreateObject("adodb.recordset")
	rsOrder.open sqlOrder,Conn,1,3
	if rsOrder.bof and rsOrder.eof then
		exit sub        '如果当前栏目已经在最下面,则无需移动
	end if
	i=1
	do while not rsOrder.eof
		tRootID=rsOrder("RootID")       '得到要提升位置的RootID,包括子栏目
		Cl.Execute("Update Cl_LinkClass set RootID=RootID-1 where RootID=" & tRootID)
		i=i+1
		if i>MoveNum then
			Cl.Execute("Update Cl_LinkClass set NextID=" & ClassID & " where ClassID=" & ClassID)
			Cl.Execute("Update Cl_LinkClass set PrevID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
			exit do
		end if
		rsOrder.movenext
	loop
	rsOrder.movenext
	if rsOrder.eof then
		Cl.Execute("Update Cl_LinkClass set NextID=0 where ClassID=" & ClassID)
	else
		Cl.Execute("Update Cl_LinkClass set PrevID=" & ClassID & " where ClassID=" & ClassID)
		Cl.Execute("Update Cl_LinkClass set NextID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
	end if	
	rsOrder.close
	set rsOrder=Nothing
	
	'然后再将当前栏目从最后移到相应位置,包括子栏目
	Cl.Execute("Update Cl_LinkClass set RootID=" & tRootID & " where RootID=" & MaxRootID)
	Cl.SaveAdminLog
	response.Redirect FileName & "?Action=Order"
end sub

sub UpOrderN()
	dim sqlOrder,rsOrder,MoveNum,ClassID,i
	dim ParentID,OrderID,ParentPath,Child,PrevID,NextID
	ClassID=Trim(request("ClassID"))
	MoveNum=Trim(request("MoveNum"))
	if ClassID="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br /><li>错误参数!</li>"
	else
		ClassID=CLng(ClassID)
	end if
	if MoveNum="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br /><li>错误参数!</li>"
	else
		MoveNum=Cint(MoveNum)
		if MoveNum=0 then
			FoundErr=True
			ErrMsg=ErrMsg & "<br /><li>请选择要提升的数字!</li>"
		end if
	end if
	if FoundErr=True then
		exit sub
	end if

	dim oldorders,ii,trs,tOrderID
	'要移动的栏目信息
	set rs=Cl.Execute("select ParentID,OrderID,ParentPath,child,PrevID,NextID From Cl_LinkClass where ClassID="&ClassID)
	ParentID=rs(0)
	OrderID=rs(1)
	ParentPath=rs(2) & "," & ClassID
	child=rs(3)
	PrevID=rs(4)
	NextID=rs(5)
	rs.close
	set rs=Nothing
	if child>0 then
		set rs=Cl.Execute("select count(*) From Cl_LinkClass where ParentPath like '%"&ParentPath&"%'")
		oldorders=rs(0)
		rs.close
		set rs=Nothing
	else
		oldorders=0
	end if
	'先修改上一栏目的NextID和下一栏目的PrevID
	if PrevID>0 then
		Cl.Execute "Update Cl_LinkClass set NextID=" & NextID & " where ClassID=" & PrevID
	end if
	if NextID>0 then
		Cl.Execute "Update Cl_LinkClass set PrevID=" & PrevID & " where ClassID=" & NextID
	end if
	
	'和该栏目同级且排序在其之上的栏目------更新其排序,范围为要提升的数字
	sql="select ClassID,OrderID,child,ParentPath,PrevID,NextID From Cl_LinkClass where ParentID="&ParentID&" and OrderID<"&OrderID&" order by OrderID desc"
	set rs=server.CreateObject("adodb.recordset")
	rs.open sql,Conn,1,3
	i=1
	do while not rs.eof
		tOrderID=rs(1)
		Cl.Execute("Update Cl_LinkClass set OrderID="&tOrderID+oldorders+i&" where ClassID="&rs(0))
		if rs(2)>0 then
			ii=i+1
			set trs=Cl.Execute("select ClassID,OrderID From Cl_LinkClass where ParentPath like '%"&rs(3)&","&rs(0)&"%' order by OrderID")
			if not (trs.eof and trs.bof) then
				do while not trs.eof
					Cl.Execute("Update Cl_LinkClass set OrderID="&tOrderID+oldorders+ii&" where and ClassID="&trs(0))
					ii=ii+1
					trs.movenext
				loop
			end if
			trs.close
			set trs=Nothing
		end if
		i=i+1
		if i>MoveNum then
			Cl.Execute("Update Cl_LinkClass set PrevID=" & ClassID & " where ClassID=" & rs(0))
			Cl.Execute("Update Cl_LinkClass set NextID=" & rs(0) & " where ClassID=" & ClassID)		
			exit do
		end if
		rs.movenext
	loop
	rs.movenext
	if rs.eof then
		Cl.Execute("Update Cl_LinkClass set PrevID=0 where ClassID=" & ClassID)
	else
		Cl.Execute("Update Cl_LinkClass set NextID=" & ClassID & " where ClassID=" & rs(0))
		Cl.Execute("Update Cl_LinkClass set PrevID=" & rs(0) & " where ClassID=" & ClassID)
	end if	
	rs.close
	set rs=Nothing
	
	'更新所要排序的栏目的序号
	Cl.Execute("Update Cl_LinkClass set OrderID="&tOrderID&" where ClassID="&ClassID)
	'如果有下属栏目,则更新其下属栏目排序
	if child>0 then
		i=1
		set rs=Cl.Execute("select ClassID From Cl_LinkClass where ParentPath like '%"&ParentPath&"%' order by OrderID")
		do while not rs.eof
			Cl.Execute("Update Cl_LinkClass set OrderID="&tOrderID+i&" where ClassID="&rs(0))
			i=i+1
			rs.movenext
		loop
		rs.close
		set rs=Nothing
	end if
	Cl.SaveAdminLog
	response.Redirect FileName & "?Action=OrderN"
end sub

sub DownOrderN()
	dim sqlOrder,rsOrder,MoveNum,ClassID,i
	dim ParentID,OrderID,ParentPath,Child,PrevID,NextID
	ClassID=Trim(request("ClassID"))
	MoveNum=Trim(request("MoveNum"))
	if ClassID="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br /><li>错误参数!</li>"
		exit sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -