admin_soft_class.asp

来自「适适合做个人、学校、公司、政府等站点 一个灵活性很好的网站原代码」· ASP 代码 · 共 1,312 行 · 第 1/4 页

ASP
1,312
字号
    end sub
%>

<% 
sub OrderN() 
	dim sqlClass,rsClass,i,iCount,trs,UpMoveNum,DownMoveNum 
	sqlClass="select * From SoftClass order by RootID,OrderID" 
	set rsClass=server.CreateObject("adodb.recordset") 
	rsClass.open sqlClass,Conn,1,1 
%>
<table width="690" border="0" align=center cellpadding="3" cellspacing="1" bgcolor="#DEDFDE">
	<tr bgcolor="#F7F7F7">
	  <td colspan="4" align="center" class="title"><strong>N 级 栏 目 排 序</strong></td> 
  </tr> 
  <% 
do while not rsClass.eof 
%> 
  <tr bgcolor="#FFFFFF" class="tdbg" style="padding: 0px 2px;" onmouseover="this.style.backgroundColor='#F7F8F8'" onmouseout="this.style.backgroundColor=''"> 
      <td width="300">
<%
	for i=1 to rsClass("Depth")
	  	response.write "&nbsp;&nbsp;&nbsp;"
	next
	if rsClass("Child")>0 then
		response.write "<img src='Images/tree_folder4.gif' width='15' height='15' valign='abvmiddle'>"
	else 
	  	response.write "<img src='Images/tree_folder3.gif' width='15' height='15' valign='abvmiddle'>"
	end if
	if rsClass("ParentID")=0 then
		response.write "<b>"
	end if
	response.write rsClass("ClassName")
	if rsClass("Child")>0 then 
		response.write "(" & rsClass("Child") & ")"
	end if 
%>
</td> 
<% 
	if rsClass("ParentID")>0 then   '如果不是一级栏目,则算出相同深度的栏目数目,得到该栏目在相同深度的栏目中所处位置(之上或者之下的栏目数) 
		'所能提升最大幅度应为For i=1 to 该版之上的版面数 
		set trs=Conn.execute("select count(ClassID) From SoftClass where ParentID="&rsClass("ParentID")&" and OrderID<"&rsClass("OrderID")&"") 
		UpMoveNum=trs(0) 
		if isnull(UpMoveNum) then UpMoveNum=0 
		if UpMoveNum>0 then 
  			response.write "<form action='Admin_Soft_Class.asp?Action=UpOrderN' method='post'><td width='150'>" 
			response.write "<select name=MoveNum size=1 class='input_submit'><option value=0>向上移动</option>" 
			for i=1 to UpMoveNum 
				response.write "<option value="&i&">"&i&"</option>" 
			next 
			response.write "</select>" 
			response.write "<input type=hidden name=ClassID value="&rsClass("ClassID")&">&nbsp;<input type=submit name=Submit value=修&nbsp;改 class='input_submit'>" 
			response.write "</td></form>" 
		else 
			response.write "<td width='150'>&nbsp;</td>" 
		end if 
		trs.close 
		'所能降低最大幅度应为For i=1 to 该版之下的版面数 
		set trs=Conn.execute("select count(ClassID) From SoftClass where ParentID="&rsClass("ParentID")&" and orderID>"&rsClass("orderID")&"") 
		DownMoveNum=trs(0) 
		if isnull(DownMoveNum) then DownMoveNum=0 
		if DownMoveNum>0 then 
  			response.write "<form action='Admin_Soft_Class.asp?Action=DownOrderN' method='post'><td width='150'>" 
			response.write "<select name=MoveNum size=1 class='input_submit'><option value=0>向下移动</option>" 
			for i=1 to DownMoveNum 
				response.write "<option value="&i&">"&i&"</option>" 
			next 
			response.write "</select>" 
			response.write "<input type=hidden name=ClassID value="&rsClass("ClassID")&">&nbsp;<input type=submit name=Submit value=修&nbsp;改 class='input_submit'>" 
			response.write "</td></form>" 
		else 
			response.write "<td width='150'>&nbsp;</td>"
		end if 
		trs.close
	else 
		response.write "<td colspan=2>&nbsp;</td>"
	end if 
%> 
      <td>&nbsp;</td>
  </tr> 
<% 
	UpMoveNum=0
	DownMoveNum=0
	rsClass.movenext
    loop 
%> 
</table> 
<% 
	rsClass.close
	set rsClass=nothing
    end sub 
%>
<%
    sub SaveAdd()
	dim ClassID,ClassName,IsElite,ShowOnTop,Setting,Readme,ClassMaster,ClassPicUrl,LinkUrl,PrevOrderID
	dim sql,rs,trs
	dim RootID,ParentDepth,ParentPath,ParentStr,ParentName,MaxClassID,MaxRootID
	dim PrevID,NextID,Child

	ClassName=trim(request("ClassName"))'栏目名称
	Setting=trim(request("Setting"))'栏目设置
	if ClassName="" then'栏目名称
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>栏目名称不能为空!</li>"
	end if
	if FoundErr=True then
		exit sub
	end if

	set rs = Conn.execute("select Max(ClassID) From SoftClass")'ClassID栏目ID
	MaxClassID=rs(0)
	if isnull(MaxClassID) then
		MaxClassID=0
	end if
	rs.close
	ClassID=MaxClassID+1
	set rs=Conn.execute("select max(rootid) From SoftClass")'rootid根栏目ID
	MaxRootID=rs(0)
	if isnull(MaxRootID) then
		MaxRootID=0
	end if
	rs.close
	RootID=MaxRootID+1
	
	if ParentID>0 then
		sql="select * From SoftClass where ClassID=" & ParentID & ""'ParentID父栏目ID
		rs.open sql,Conn,1,1
		if rs.bof and rs.eof then
			FoundErr=True
			ErrMsg=ErrMsg & "<br><li>所属栏目已经被删除!</li>"
		end if
		if FoundErr=True then
			rs.close
			set rs=nothing
			exit sub
		else	
			RootID=rs("RootID")'根栏目ID
			ParentName=rs("ClassName")'栏目名称
			ParentDepth=rs("Depth")'栏目层数
			ParentPath=rs("ParentPath")'栏目路径
			Child=rs("Child")'子栏目数
			ParentPath=ParentPath & "," & ParentID     '得到此栏目的父级栏目路径
			PrevOrderID=rs("OrderID")'排序ID
			if Child>0 then		
				dim rsPrevOrderID
				'得到与本栏目同级的最后一个栏目的OrderID排序ID
				set rsPrevOrderID=Conn.execute("select Max(OrderID) From SoftClass where ParentID=" & ParentID)
				PrevOrderID=rsPrevOrderID(0)
				set trs=Conn.execute("select ClassID from SoftClass where ParentID=" & ParentID & " and OrderID=" & PrevOrderID)
				PrevID=trs(0)
				
				'得到同一父栏目但比本栏目级数大的子栏目的最大OrderID排序ID,如果比前一个值大,则改用这个值。
				set rsPrevOrderID=Conn.execute("select Max(OrderID) From SoftClass where ParentPath like '" & ParentPath & ",%'")
				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
			end if

		end if
		rs.close
	else
		if MaxRootID>0 then
			set trs=Conn.execute("select ClassID from SoftClass where RootID=" & MaxRootID & " and Depth=0")
			PrevID=trs(0)
			trs.close
		else
			PrevID=0
		end if
		PrevOrderID=0
		ParentPath="0"
	end if

	sql="Select * From SoftClass Where ParentID=" & ParentID & " AND ClassName='" & ClassName & "'"
	set rs=server.CreateObject("adodb.recordset")
	rs.open sql,Conn,1,1
	if not(rs.bof and rs.eof) then
		FoundErr=True
		if ParentID=0 then
			ErrMsg=ErrMsg & "<br><li>已经存在一级栏目:" & ClassName & "</li>"
		else
			ErrMsg=ErrMsg & "<br><li>“" & ParentName & "”中已经存在子栏目“" & ClassName & "”!</li>"
		end if
		rs.close
		set rs=nothing
		exit sub
	end if
	rs.close

	sql="Select top 1 * From SoftClass"
	rs.open sql,Conn,1,3
    rs.addnew
	rs("ClassID")=ClassID'栏目ID
   	rs("ClassName")=ClassName'栏目名称
	rs("RootID")=RootID'根栏目ID

	rs("ParentID")=ParentID'父栏目ID
	if ParentID>0 then
		rs("Depth")=ParentDepth+1'Depth栏目层数
	else
		rs("Depth")=0
	end if
	rs("ParentPath")=ParentPath'栏目路径
	rs("OrderID")=PrevOrderID'排序ID
	rs("Child")=0'子栏目数
	rs("PrevID")=PrevID'同级的上一个栏目ID
	rs("NextID")=0'同级的下一个栏目ID
	rs.update
	rs.Close
    set rs=Nothing
	
	'更新与本栏目同一父栏目的上一个栏目的“NextID”字段值
	if PrevID>0 then'PrevID同级的上一个栏目ID
		Conn.execute("update SoftClass set NextID=" & ClassID & " where ClassID=" & PrevID)
	end if
	
	if ParentID>0 then'父栏目ID
		'更新其父类的子栏目数
		Conn.execute("update SoftClass set child=child+1 where ClassID="&ParentID)
		
		'更新该栏目排序以及大于本需要和同在本分类下的栏目排序序号
		Conn.execute("update SoftClass set OrderID=OrderID+1 where rootid=" & rootid & " and OrderID>" & PrevOrderID)
		Conn.execute("update SoftClass set OrderID=" & PrevOrderID & "+1 where ClassID=" & ClassID)
	end if
	Response.Write "<p align=center>资源栏目添加成功,3秒后自动返回下载栏目管理页!<script>window.setTimeout(""location.href='Admin_Soft_Class.asp'"",3000);</script></p>"
    end sub
%>
<%
    sub DeleteClass()
	dim sql,rs,PrevID,NextID,ClassID
	ClassID=trim(Request("ClassID"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>参数不足!</li>"
		exit sub
	else
		ClassID=CLng(ClassID)
	end if
	
	sql="select ClassID,RootID,Depth,ParentID,Child,PrevID,NextID From SoftClass where ClassID="&ClassID
	set rs=server.CreateObject ("Adodb.recordset")
	rs.open sql,Conn,1,3
	if rs.bof and rs.eof then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>栏目不存在,或者已经被删除</li>"
	else
		if rs("Child")>0 then
			FoundErr=True
			ErrMsg=ErrMsg & "<br><li>该栏目含有子栏目,请删除其子栏目后再进行删除本栏目的操作</li>"
		end if
	end if
	if FoundErr=True then
		rs.close
		set rs=nothing
		exit sub
	end if
	PrevID=rs("PrevID")
	NextID=rs("NextID")
	if rs("Depth")>0 then
		Conn.execute("update SoftClass set child=child-1 where ClassID=" & rs("ParentID"))'child子栏目数,Depth栏目层数
	end if
	rs.delete
	rs.update
	rs.close
	set rs=nothing
	
	'删除栏目分类下所有下载演示图片
	Dim sSavePathFileName,aSavePathFileName,i
        set rs=server.createobject("adodb.recordset")
	Sql = "SELECT S_SoftPic,S_SoftClassID FROM SoftData WHERE S_SoftClassID ="& ClassID
	Rs.Open Sql, Conn, 0, 1
	If Not Rs.Eof Then
		Do While Not Rs.Eof
			Call DoDelFile(Rs("S_SoftPic"))
			Rs.MoveNext
		Loop
	End If
	oRs.Close
	
	
	'删除本栏目的所有软件
	Conn.execute("delete from SoftData where S_SoftClassID=" & ClassID)
	
	'修改上一栏目的NextID和下一栏目的PrevID
	if PrevID>0 then
		Conn.execute "update SoftClass set NextID=" & NextID & " where ClassID=" & PrevID
	end if
	if NextID>0 then
		Conn.execute "update SoftClass set PrevID=" & PrevID & " where ClassID=" & NextID
	end if
	Response.Write "<p align=center>资源栏目删除成功,3秒后自动返回下载栏目管理页!<script>window.setTimeout(""location.href='Admin_Soft_Class.asp'"",3000);</script></p>"
    end sub
    ' 删除指定的文件
    Sub DoDelFile(sPathFile)
	On Error Resume Next
	Dim oFSO
	Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
	oFSO.DeleteFile(Server.MapPath(sPathFile))
	Set oFSO = Nothing
    End Sub
%>
<%
    sub SaveModify()
	dim ClassID,ClassName,sql,rsClass,i
	dim rParentID
	dim trs,rs
	dim ParentID,RootID,Depth,Child,ParentPath,ParentName,iParentID,iParentPath,PrevOrderID,PrevID,NextID
	ClassID=trim(request("ClassID"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>参数不足!</li>"
		exit sub
	else
		ClassID=CLng(ClassID)
	end if
	sql="select * From SoftClass where ClassID=" & ClassID
	set rsClass=server.CreateObject ("Adodb.recordset")
	rsClass.open sql,Conn,1,3
	if rsClass.bof and rsClass.eof then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>找不到指定的栏目!</li>"
		rsClass.close
		set rsClass=nothing
		exit sub

⌨️ 快捷键说明

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