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

📄 admin_cat.asp

📁 AspEase Auction System Ver2.0/动易拍卖系统 Ver2.0
💻 ASP
📖 第 1 页 / 共 3 页
字号:
	end if
	if rs("parentid")=0 then
		response.write "<b>"
	end if
	response.write rs("catname")
	if rs("child")>0 then
		response.write "("&rs("child")&")"
	end if
	response.Write("</td><td width=""50%"" class=""row"">")
	if rs("ParentID")>0 then
	'算出相同深度的分类数目,得到该分类在相同深度的分类中所处位置(之上或者之下的分类数)
	'所能提升最大幅度应为For i=1 to 该版之上的版面数
	set trs=conn.execute("select count(*) from cat where ParentID="&rs("ParentID")&" and orders<"&rs("orders")&"")
	uporders=trs(0)
	if isnull(uporders) then uporders=0
	'所能降低最大幅度应为For i=1 to 该版之下的版面数
	set trs=conn.execute("select count(*) from cat where ParentID="&rs("ParentID")&" and orders>"&rs("orders")&"")
	doorders=trs(0)
	if isnull(doorders) then doorders=0
	if uporders>0 then
		response.write "<select name=uporders size=1><option value=0>向上移动</option>"
		for i=1 to uporders
		response.write "<option value="&i&">"&i&"</option>"
		next
		response.write "</select>"
	end if
	if doorders>0 then
		if uporders>0 then response.write "&nbsp;"
		response.write "<select name=doorders size=1><option value=0>向下移动</option>"
		for i=1 to doorders
		response.write "<option value="&i&">"&i&"</option>"
		next
		response.write "</select>"
	end if
	if doorders>0 or uporders>0 then
	response.write "<input type=hidden name=""editID"" value="""&rs("catid")&""">&nbsp;<input type=submit name=Submit value=修改>"
	end if
	end if
	response.Write("</td></tr></form>")
	uporders=0
	doorders=0
	rs.movenext
	loop
	response.Write("</table>")
end if
rs.close
set rs=nothing
end sub

sub updatecatorders()
dim ParentID,orders,ParentStr,child
dim uporders,doorders,oldorders,trs,ii
if not isnumeric(request("editID")) then
	response.write "非法的参数!"
	exit sub
end if
if request("uporders")<>"" and not Cint(request("uporders"))=0 then
	if not isnumeric(request("uporders")) then
	response.write "非法的参数!"
	exit sub
	elseif Cint(request("uporders"))=0 then
	response.write "请选择要提升的数字!"
	exit sub
	end if
	'向上移动
	'要移动的分类信息 shinzeal加入rootid和depth作为更新所有相关分类的依据
	dim rootid,depth
	set rs=conn.execute("select ParentID,orders,ParentStr,child,rootid,depth from cat where catid="&request("editID"))
	ParentID=rs(0)
	orders=rs(1)
	ParentStr=rs(2) & "," & request("editID")
	child=rs(3)
	rootid=rs(4)
	depth=rs(5)
	i=0
	'response.write "select catid,orders from cat where ParentID="&ParentID&" and orders<"&orders&" order by orders desc<br>"
	if child>0 then
	set rs=conn.execute("select count(*) from cat where ParentStr like '%"&ParentStr&"%' and rootid="&rootid)
	oldorders=rs(0)
	else
	oldorders=0
	end if
'shinzeal加入变量shin和shinlast记录更新后分类最大的orders
	dim shin,shinlast
	shin=0
	shinlast=0
	'和该分类同级且排序在其之上的分类-更新其排序,最末者为当前分类排序号
	set rs=conn.execute("select catid,orders,child,ParentStr from cat where ParentID="&ParentID&" and orders<"&orders&" order by orders desc")
	do while not rs.eof
	i=i+1
	if Cint(request("uporders"))>=i then		
		if rs(2)>0 then
		ii=0
		set trs=conn.execute("select catid,orders from cat where ParentStr like '%"&rs(3)&","&rs(0)&"%' order by orders")
		if not (trs.eof and trs.bof) then
		do while not trs.eof
		ii=ii+1
		conn.execute("update cat set orders="&orders&"+"&oldorders&"+"&ii&" where catid="&trs(0))
		shin=orders+oldorders+ii
		if shin>shinlast then shinlast=shin
		trs.movenext
		loop
		end if
		end if
		conn.execute("update cat set orders="&orders&"+"&oldorders&" where catid="&rs(0))
		shin=orders+oldorders
		if shin>shinlast then shinlast=shin
		if Cint(request("uporders"))=i then uporders=rs(1)
	end if
	orders=rs(1)
	rs.movenext
	loop	
	'更新所要排序的分类的序号
	conn.execute("update cat set orders="&uporders&" where catid="&request("editID"))
	'如果有下属分类,则更新其下属分类排序
	if child>0 then
	i=uporders
	set rs=conn.execute("select catid from cat where ParentStr like '%"&ParentStr&"%' and depth>"&depth&" order by orders")
	do while not rs.eof
	i=i+1
	conn.execute("update cat set orders="&i&" where catid="&rs(0))
	shin=i
	if shin>shinlast then shinlast=shin
	rs.movenext
	loop
	end if	
'shinzeal加入更新被提升分类之下所有同级分类的orders,避免和被更新分类的下级分类重复
	dim shin1,shinlast1
	shin1=0
	shinlast1=0
	set rs=conn.execute("select catid,orders,child,ParentStr from cat where ParentID="&ParentID&" and orders>"&uporders&" order by orders")
	do while not rs.eof
		if rs(2)>0 then
		ii=0
		set trs=conn.execute("select catid,orders from cat where ParentStr like '%"&rs(3)&","&rs(0)&"%' order by orders")
		if not (trs.eof and trs.bof) then
		do while not trs.eof
		ii=ii+1
		'response.write "update cat set orders="&orders&"+"&ii&" where catid="&trs(0)&"-a<br>"
		conn.execute("update cat set orders="&orders&"+"&ii&"+"&shinlast&" where catid="&trs(0))
		shin1=orders+oldorders+ii+shinlast
		if shin1>shinlast1 then shinlast1=shin1
		trs.movenext
		loop
		end if
		end if
		'response.write "update cat set orders="&orders&" where catid="&rs(0)&"<br>"
		conn.execute("update cat set orders="&orders&"+"&shinlast&" where catid="&rs(0))
		shin1=orders+oldorders+shinlast
		if shin1>shinlast1 then shinlast1=shin1
	orders=rs(1)
	rs.movenext
	loop
'shinzeal加入更新被提升分类上一级的orders在被更新分类之后的分类orders,防止orders互相交叉
	set rs=conn.execute("select catid,orders,child,ParentStr from cat where rootID="&rootID&" and orders>"&uporders&" and depth<"&depth&" order by orders")
	do while not rs.eof
		if rs(2)>0 then
		ii=0
		set trs=conn.execute("select catid,orders from cat where ParentStr like '%"&rs(3)&","&rs(0)&"%' order by orders")
		if not (trs.eof and trs.bof) then
		do while not trs.eof
		ii=ii+1
		'response.write "update cat set orders="&orders&"+"&ii&" where catid="&trs(0)&"-a<br>"
		conn.execute("update cat set orders="&orders&"+"&ii&"+"&shinlast1&" where catid="&trs(0))
		trs.movenext
		loop
		end if
		end if
		'response.write "update cat set orders="&orders&" where catid="&rs(0)&"<br>"
		conn.execute("update cat set orders="&orders&"+"&shinlast1&" where catid="&rs(0))
	orders=rs(1)
	rs.movenext
	loop
'shinzeal对提升分类的更新结束
	set rs=nothing
	set trs=nothing
elseif request("doorders")<>"" then
	if not isnumeric(request("doorders")) then
	response.write "非法的参数!"
	exit sub
	elseif Cint(request("doorders"))=0 then
	response.write "请选择要下降的数字!"
	exit sub
	end if
'要移动的分类信息 shinzeal加入rootid和depth作为更新所有相关分类的依据
	set rs=conn.execute("select ParentID,orders,ParentStr,child,rootid,depth from cat where catid="&request("editID"))
	ParentID=rs(0)
	orders=rs(1)
	ParentStr=rs(2) & "," & request("editID")
	child=rs(3)
	rootid=rs(4)
	depth=rs(5)
	i=0
	shin=0
	shinlast=0
	set rs=conn.execute("select catid,orders,child,ParentStr from cat where ParentID="&ParentID&" and orders>"&orders&" order by orders")
	do while not rs.eof
	i=i+1
	if Cint(request("doorders"))>=i then
		if rs(2)>0 then
		ii=0
		set trs=conn.execute("select catid,orders from cat where ParentStr like '%"&rs(3)&","&rs(0)&"%' order by orders")
		if not (trs.eof and trs.bof) then
		do while not trs.eof
		ii=ii+1
		'response.write "update cat set orders="&orders&"+"&ii&" where catid="&trs(0)&"-a<br>"
		conn.execute("update cat set orders="&orders&"+"&ii&" where catid="&trs(0))
		shin=orders+ii
		if shin>shinlast then shinlast=shin
		trs.movenext
		loop
		end if
		end if
		'response.write "update cat set orders="&orders&" where catid="&rs(0)&"<br>"
		conn.execute("update cat set orders="&orders&" where catid="&rs(0))
		shin=orders
		if shin>shinlast then shinlast=shin
		if Cint(request("doorders"))=i then doorders=rs(1)
	end if
	orders=rs(1)
	rs.movenext
	loop	
	conn.execute("update cat set orders="&shinlast+1&" where catid="&request("editID"))
	'如果有下属分类,则更新其下属分类排序
	if child>0 then
	i=shinlast+1
	set rs=conn.execute("select catid from cat where ParentStr like '%"&ParentStr&"%' and depth>"&depth&" order by orders")
	do while not rs.eof
	i=i+1
	conn.execute("update cat set orders="&i&" where catid="&rs(0))
	shin=i
	if shin>shinlast then shinlast=shin
	rs.movenext
	loop
	end if
	'shinzeal加入更新被下降分类之下所有同级分类的orders,避免和被更新分类的下级分类重复
	shin1=0
	shinlast1=0
	set rs=conn.execute("select catid,orders,child,ParentStr from cat where ParentID="&ParentID&" and orders>"&doorders&" order by orders")
	do while not rs.eof
		orders=rs(1)
		if rs(2)>0 then
		ii=0
		set trs=conn.execute("select catid,orders from cat where ParentStr like '%"&rs(3)&","&rs(0)&"%' order by orders")
		if not (trs.eof and trs.bof) then
		do while not trs.eof
		ii=ii+1
		conn.execute("update cat set orders="&orders&"+"&ii&"+"&shinlast&" where catid="&trs(0))
		shin1=orders+ii+shinlast
		if shin1>shinlast1 then shinlast1=shin1
		trs.movenext
		loop
		end if
		end if
		conn.execute("update cat set orders="&orders&"+"&shinlast&" where catid="&rs(0))
		shin1=orders+shinlast
		if shin1>shinlast1 then shinlast1=shin1
	rs.movenext
	loop
'shinzeal加入更新被下降分类上一级的orders在被更新分类之后的分类orders,防止orders互相交叉
	set rs=conn.execute("select catid,orders,child,ParentStr from cat where rootID="&rootID&" and orders>"&doorders&" and depth<"&depth&" order by orders")
	do while not rs.eof
		orders=rs(1)
		if rs(2)>0 then
		ii=0
		set trs=conn.execute("select catid,orders from cat where ParentStr like '%"&rs(3)&","&rs(0)&"%' order by orders")
		if not (trs.eof and trs.bof) then
		do while not trs.eof
		ii=ii+1
		'response.write "update cat set orders="&orders&"+"&ii&" where catid="&trs(0)&"-a<br>"
		conn.execute("update cat set orders="&orders&"+"&ii&"+"&shinlast1&" where catid="&trs(0))
		trs.movenext
		loop
		end if
		end if
		'response.write "update cat set orders="&orders&" where catid="&rs(0)&"<br>"
		conn.execute("update cat set orders="&orders&"+"&shinlast1&" where catid="&rs(0))
	rs.movenext
	loop
'shinzeal对下降分类的更新结束
	'response.end
	set rs=nothing
	set trs=nothing
end if
call cache_cat()
response.redirect "admin_cat.asp?action=catorders"
end sub


sub cache_cat()
'cache分类数据
myCache.name="catJumpList"
Dim catJumpList
set rs=conn.execute("select catid,catname,depth from cat order by rootid,orders")
do while not rs.EOF
catJumpList = catJumpList & "<option value=""list.asp?catid="&rs(0)&""" "
catJumpList = catJumpList & ">"
select case rs(2)
case 0
catJumpList = catJumpList & "╋"
case 1
catJumpList = catJumpList & "&nbsp;&nbsp;├"
end select
if rs(2)>1 then
for i=2 to rs(2)
	catJumpList = catJumpList & "&nbsp;&nbsp;│"
next
catJumpList = catJumpList & "&nbsp;&nbsp;├"
end if
catJumpList = catJumpList & rs(1)&"</option>"
rs.MoveNext
loop
myCache.add catJumpList,dateadd("n",9999,now)
set rs=nothing
'end cache
end sub

sub Restorecat()
'按照目前的排序循环i数值更新rootid
'还原所有分类的depth,orders,parentid,parentstr,child为0
i=0
set rs=conn.execute("select catid from cat order by rootid,orders")
do while not rs.eof
i=i+1
conn.execute("update cat set rootid="&i&",depth=0,orders=0,ParentID=0,ParentStr='0',child=0 where catid="&rs(0))
rs.movenext
loop
set rs=nothing
response.write "复位成功,请返回做分类归属设置。"
call cache_cat()
end sub
'=========================================================
'Copyright (C) 2003-2004 AspEase.Com. All rights reserved.
'Web: http://www.aspease.com
'Email: byhucn@126.com,lzz9812@163.com
'=========================================================
'
'FileName: admin_cat.asp
'Version:2.0
'UpdateTime: 2004-10-7 14:54:09
'Script Written by www.aspease.com 
'=========================================================%>

⌨️ 快捷键说明

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