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

📄 board.asp

📁 网趣系统时尚版8(支付宝)
💻 ASP
📖 第 1 页 / 共 3 页
字号:
		ParentStr=ParentID
	Else
		ParentStr=ParentStr & "," & ParentID
	End If
	YxBBs.execute("Insert into [YX_Board](BoardID,BoardName,Introduce,BoardAdmin,BoardImg,BoardSetting,BoardLock,BoardType,RootID,Depth,ParentID,ParentStr,Orders,Child)Values("&NewBoardID&",'"&BoardName&"','"&Introduce&"','"&BoardAdmin&"','"&BoardImg&"','0,gif|jpg|swf|zip|rar|bmp,30,30720,10,0,0,0,0,0,0',"&BoardLock&","&BoardType&","&RootID&","&Depth+1&","&ParentID&",'"&ParentStr&"',"&Orders+1&",0)")
	If BoardAdmin <> "" Then Call addmaster(BoardAdmin,"none",0)
	If ParentID<>0 then
		If Depth>0 then
			'当上级分类深度大于0的时候要更新其父类(或父类的父类)的版面数和相关排序
			For i=1 to Depth
				'更新其父类版面数
				YxBBs.Execute("update [YX_Board] set Child=Child+1 where BoardID="&parentID)
				'得到其父类的父类的版面ID
				Set rs=YxBBs.Execute("select ParentID from [YX_Board] where BoardID="&parentID)
				If not (rs.eof and rs.bof) then
					ParentID=rs(0)
				End if
				Rs.Close
				'当循环次数大于1并且运行到最后一次循环的时候直接进行更新
				If i=depth then
				YxBBs.Execute("update [YX_Board] set Child=Child+1 where BoardID="&parentID)
				End if
			next
			'更新该版面排序以及大于本需要和同在本分类下的版面排序序号
			YxBBs.Execute("update [YX_Board] set Orders=orders+1 where RootID="&RootID&" And orders>"&orders)
			YxBBs.Execute("update [YX_Board] set Orders="&Orders&"+1 where BoardID="&NewBoardID&"")
		Else
			'当上级分类深度为0的时候只要更新上级分类版面数
			YxBBs.Execute("update [YX_Board] set child=child+1 where Boardid="&ParentID)
			Set rs=YxBBs.Execute("select max(Orders) from [YX_Board]")
			YxBBs.Execute("update [YX_Board] set Orders="&rs(0)&"+1 where BoardID="&NewBoardID )
			Rs.Close
		End if
	End if
	Call Suc("","成功的添加了论坛 <b>"&BoardName&"</b> !","Board.Asp")	
	updateBoardCache
End Sub

Sub EditBoard
	Dim BoardName,BoardLock,BoardType,Introduce,BoardImg,ParentID,BoardAdmin,BoardGrade
	Set Rs=YxBBs.execute("Select ParentID,BoardName,BoardAdmin,BoardGrade,BoardLock,BoardType,Introduce,BoardImg From[YX_Board] Where BoardID="&YxBBs.BoardID&"")
	If Rs.eof Then
		Call GoBack("","该版面不存在,可能已经删除了")
		Exit Sub
	Else
		ParentID=Rs(0)
		BoardName=Rs(1)
		BoardAdmin=Rs(2)
		BoardGrade=Rs(3)
		BoardLock=Rs(4)
		BoardType=Rs(5)
		Introduce=Rs(6)
		BoardImg=Rs(7)
	End IF
	Rs.Close%><form method=POST style="margin:0" action="?Action=SaveEditBoard">
	<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
	  <tr bgcolor="#CCCCCC">
	    <td height="25" colspan="2" >编辑论坛</td>
	  </tr>
	<tr bgcolor="#DEDEDE"><td width="35%" height="40"><b>论坛名称:</b><br>
	  论坛版面的名称</td><td height="65%"><input name="BoardID" value="<%=YxBBs.BoardID%>" type="hidden"><input name="boardname" type=text value="<%=BoardName%>" size=30></td></tr>
	<tr bgcolor="#DEDEDE"><td height="40"><b>标志图片:</b><br>
	  论坛版面Logo地址,可以不填</td><td><input type=text name="BoardImg" value="<%=BoardImg%>" size=30></td></tr>
	<tr bgcolor="#DEDEDE"><td height="40"><b>论坛介绍:</b><br>
	  论坛版面描述</td><td><textarea rows="3" name="Introduce"><%=Introduce%></textarea></td></tr>
	<tr bgcolor="#DEDEDE"><td height="40"><b>论坛版主:</b><br>
	  添加多版主请用@@分隔,如:Name@@Name</td><td><input type=text name="BoardAdmin" size=30 value="<%=BoardAdmin%>"><input type="hidden" name="OldBoardAdmin" size=30 value="<%=BoardAdmin%>"></td></tr>
	<tr bgcolor="#DEDEDE"><td height="40"><b>属于分类或论坛:</b><br>
	  选择要属于那个分类或那个论坛</td><td><select size="1" name="ParentID"><%=YxBBs.BoardIDList(ParentID,20)%></select></td></tr>
	<tr bgcolor="#DEDEDE"><td height="40"><b>限制用户等级:</b><br>
	  指定等级以上用户才可进入论坛</td><td>
	<select size="1" name="BoardGrade">
	<option value="0" selected>0级:游客</option>
	<%
	Dim UG
	set UG=Conn.execute("Select GradeNum,GradeName from YX_UserGrade order by GradeNum asc")
	while not UG.Eof
		If UG(0)=BoardGrade Then
			Response.Write "<option value="&UG(0)&" selected>"&UG(0)&"级:"&UG(1)&"</option>"
		Else
			Response.Write "<option value="&UG(0)&">"&UG(0)&"级:"&UG(1)&"</option>"
		End If
	UG.MoveNext
	wend
	set UG=nothing
	%>
	</select>*</td></tr>
	<tr><td bgcolor=#d7d7d7><b>是否认证版面:</b><br>
	  认证版只有版主和人证会员</td><td bgcolor=#d7d7d7><input type="radio" value="1" name="BoardType" <%if BoardType=1 then response.write "Checked"%>>是&nbsp; <input type="radio" value="0" name="BoardType" <%if BoardType=0 then response.write "Checked"%>>否</td></tr>
	<tr><td bgcolor=#d7d7d7><b>锁定版面:</b><br>
	  锁定之后不可以发布帖子</td><td bgcolor=#d7d7d7><input type="radio" value="1" name="BoardLock" <%if BoardLock=1 then response.write "Checked"%>>是&nbsp; <input type="radio" value="0" name="BoardLock" <%if BoardLock=0 then response.write "Checked"%>>否</td></tr>
	<tr bgcolor="#CCCCCC"><td colspan="2"  align="center"><input type="submit" value=" 提 交 ">&nbsp;&nbsp;<input type="reset" value=" 重 置 "></td></tr></table>
	</form>
	<%
End Sub

Sub SaveEditBoard
	Dim BoardID,BoardName,Introduce,BoardAdmin,OldBoardAdmin,BoardGrade,BoardLock,BoardType,BoardImg,ParentID,RootID,Depth,Child,Orders,ParentStr,I
	Dim NewParentID,BoardNum,P_Rs
	BoardID=YxBBs.Fun.GetStr("BoardID")
	BoardName=YxBBs.Fun.GetStr("BoardName")
	Introduce=YxBBs.Fun.GetStr("Introduce")
	BoardAdmin=YxBBs.Fun.GetStr("BoardAdmin")
	BoardGrade=YxBBs.Fun.GetStr("BoardGrade")
	OldBoardAdmin=YxBBs.Fun.GetStr("OldBoardAdmin")
	BoardLock=YxBBs.Fun.GetStr("BoardLock")
	BoardType=YxBBs.Fun.GetStr("BoardType")
	BoardImg=YxBBs.Fun.GetStr("BoardImg")
	NewParentID=YxBBs.Fun.GetStr("ParentID")
	If Not isnumeric(NewParentID) or BoardName="" Or Introduce="" Then
		Call GoBack("",""):Exit Sub
	ElseIF BoardID=NewParentID Then
		Call GoBack("","所属论坛不能指定自己!"):Exit Sub
	End If
	Set Rs=YxBBs.execute("Select RootID,Depth,Child,Orders,ParentID,ParentStr From[YX_Board] where BoardID="&BoardID)
	IF Rs.Eof or Rs.Bof Then
		Call GoBack("系统出错!","该版面不存在,可能已经删除了!")
		Exit Sub
	End If
	RootID=Rs(0)
	Depth=Rs(1)
	Child=Rs(2)
	Orders=Rs(3)
	ParentID=Rs(4)
	ParentStr=Rs(5)
	Rs.Close
	If ParentID=0 then
		Call GoBack("系统出错!","分类不能设置"):Exit Sub
	ElseIf Int(NewParentID)<>Int(ParentID) Then
		'判断所指定的论坛是否其下属论坛
		Set Rs=YxBBs.Execute("select BoardID from [YX_board] where ParentStr like '%"&ParentStr&","&BoardID&"%' and BoardID="&NewParentID)
		if not (Rs.eof and Rs.bof) then
			Call GoBack("","您不能指定该版面的下属子论坛作为所属论坛")
			Exit sub
		End if
		Rs.Close
		'获得新选的父级
		Set P_rs=YxBBs.Execute("select * from [YX_board] where Boardid="&NewParentID)
			If P_rs("Depth")+1> MaxDepth Or (Child>0 And P_Rs("Depth")+2>MaxDepth) Then
			P_rs.Close:Set P_rs=Nothing
			Call GoBack("","本论坛限制了最多只能有" & MaxDepth & "级论坛.")
			Exit Sub
		End If
	End if
	YxBBs.Execute("Update [YX_Board] Set BoardName='"&BoardName&"',Introduce='"&Introduce&"',BoardAdmin='"&BoardAdmin&"',BoardGrade="&BoardGrade&",BoardLock="&BoardLock&",BoardType="&BoardType&",BoardImg='"&BoardImg&"' where BoardID="&BoardID&"")
	If BoardAdmin <> OldBoardAdmin Then Call addmaster(BoardAdmin,OldBoardAdmin,1)
	If Int(NewParentID)<>Int(ParentID) Then
	'将一个分论坛移动到其他分论坛下
	'获得所指定的论坛的相关信息
	'得到其下属版面数
	ParentStr=ParentStr & ","
	BoardNum=YxBBs.Execute("select count(*) from [YX_Board] where ParentStr like '%"&ParentStr & BoardID&"%'")(0)
	If Isnull(BoardNum) Then BoardNum=1
	'在获得移动过来的版面数后更新排序在指定论坛之后的论坛排序数据
	YxBBs.Execute("update [YX_Board] set orders=Orders + "&BoardNum&"+1  where RootID="&P_rs("RootID")&" And orders>"&P_rs("orders")&"")
	'更新当前版面数据
	If P_rs("parentstr")="0" Then
		YxBBs.Execute("update [YX_Board] set Depth="&P_Rs("Depth")&"+1,orders="&P_Rs("orders")&"+1,rootid="&P_rs("Rootid")&",ParentID="&NewParentID&",ParentStr='" & P_Rs("BoardID") & "' Where BoardID="&BoardID)
	Else
		YxBBs.Execute("update [YX_Board] set Depth="&P_Rs("Depth")&"+1,orders="&P_Rs("orders")&"+1,rootid="&P_rs("Rootid")&",ParentID="&NewParentID&",ParentStr='" & P_Rs("ParentStr") & ","& P_Rs("BoardID") &"' Where BoardID="&BoardID)
	End If
	Dim TempParentStr
	i=1
	'更新下属,同时获得移动总数i
	'如果有则更新下属版面数据
	'深度为原有深度加上当前所属论坛的深度
	Set Rs=YxBBs.Execute("select * from [YX_Board] where ParentStr like '%"&ParentStr & BoardID&"%' order by orders")
	Do while not rs.eof
	i=i+1
	If P_rs("parentstr")="0" Then'如果其父级为类,那么其下属的版面数据
		TempParentStr=P_rs("boardid") & "," & Replace(rs("parentstr"),ParentStr,"")
	Else
		TempParentStr=P_rs("parentstr") & "," & P_rs("boardID") & "," & replace(Rs("Parentstr"),ParentStr,"")
	End If
	YxBBs.Execute("update [YX_Board] set depth=depth+"&P_rs("depth")&"-"&depth&"+1,orders="&P_rs("orders")&"+"&I&",Rootid="&P_rs("Rootid")&",ParentStr='"&TempParentStr&"' where BoardID="&Rs("BoardID"))
	Rs.movenext
	Loop
	Rs.Close
	Dim TempParentID,II
	TempParentID=NewParentID
	If RootID=P_rs("RootID") then'在同一分类下移动
		'更新所指向的上级论坛版面数,i为本次移动过来的版面数
		'更新其父类版面数
		YxBBs.Execute("update [YX_Board] set Child=child+"&i&" where (not ParentID=0) and BoardID="&TempParentID)
		For II=1 to P_Rs("depth")
			'得到其父类的父类的版面ID
			Set Rs=YxBBs.Execute("Select ParentID from [YX_Board] where (not ParentID=0) and BoardID="&TempParentID)
			If Not (rs.eof and rs.bof) then
				TempParentid=Rs(0)
				'更新其父类的父类版面数
			YxBBs.Execute("update [YX_Board] set Child=child+"&i&" where (not ParentID=0) and BoardID="&TempParentID)
			''''YxBBs.Execute("update [YX_Board] set Child=child+"&i&" where (not ParentID=0) and boardid in ())
			End if
		Next
		'更新其原父类版面数
		YxBBs.Execute("update [YX_Board] set Child=child-"&i&" where (not ParentID=0) and BoardID="&ParentID)
		'更新其原来所属论坛数据
		For II=1 to Depth
			'得到其原父类的父类的版面ID
			Set rs=YxBBs.Execute("select ParentID from [YX_Board] where (not ParentID=0) and BoardID="&ParentID)
			if not (rs.eof and rs.bof) then
				ParentID=rs(0)
				'更新其原父类的父类版面数
				YxBBs.Execute("update [YX_Board] set child=child-"&i&" where (not ParentID=0) and  boardid="&ParentID)
			End IF
		Next
	Else
	'更新所指向的上级论坛版面数,i为本次移动过来的版面数
	'更新其父类版面数
		YxBBs.Execute("update [YX_Board] set Child=child+"&i&" where BoardID="&TempParentID)
		For II=1 to P_Rs("depth")
			'得到其父类的父类的版面ID
			Set Rs=YxBBs.Execute("Select ParentID from [YX_Board] where BoardID="&TempParentID)
			If Not (rs.eof and rs.bof) then
				TempParentid=Rs(0)
				'更新其父类的父类版面数
			YxBBs.Execute("update [YX_Board] set Child=child+"&i&" where  BoardID="&TempParentID)
			End if
		Next
	'更新其原父类版面数
	YxBBs.Execute("update [YX_Board] set Child=child-"&i&" where BoardID="&ParentID)
	'更新其原父类的其它版面排序
	YxBBs.Execute("Update [YX_Board] Set Orders=Orders-"&i&" where RootID="&RootID&" and Orders>"&Orders)
	'更新其原来所属论坛数据
		For II=1 to Depth
			'得到其原父类的父类的版面ID
			Set rs=YxBBs.Execute("select ParentID from [YX_Board] where BoardID="&ParentID)
			if not (rs.eof and rs.bof) then
				ParentID=rs(0)
				'更新其原父类的父类版面数
				YxBBs.Execute("update [YX_Board] set child=child-"&i&" where boardid="&ParentID)
			End IF
		Next
	End if
	P_rs.Close:Set P_rs=Nothing
  End If
	Call Suc("","论坛修改成功 !","Board.Asp")	
	UpdateBoardCache
End Sub

Sub DelBoard
	Dim AllTable,I,II,Depth,ParentID,RootID,Orders
	Set Rs=YxBBs.Execute("Select Depth,ParentID,RootID,Orders,Child From[YX_Board] where BoardID="&YxBBs.BoardID)
	If Rs.Eof Then 
		Call Goback("系统出错","不存在,论坛可能已经删除了 !")
		Exit Sub
	ElseIf Rs(4)>0 Then
		Call Goback("系统出错","该论坛含有属下论坛,不能删除 !")
		Exit sub
	Else
		Depth=Rs(0)
		ParentID=Rs(1)
		RootID=Rs(2)
		Orders=Rs(3)
	End If
	Rs.Close
	AllTable=Split(YxBBs.BBSTable(0),",")
	For i=0 To uBound(AllTable)
		YxBBs.Execute("Delete from [YX_Bbs"&AllTable(i)&"] where BoardID="&YxBBs.BoardID&"")
	Next

	Set Rs=YxBBs.Execute("Select TopicID From[YX_Topic] where BoardID="&YxBBs.BoardID&" And IsVote ")
	Do While Not Rs.Eof
		YxBBs.Execute("Delete from [YX_TopicVote] where TopicID="&Rs(0))
		YxBBs.Execute("Delete from [YX_TopicVoteUser] where TopicID="&Rs(0))
	Rs.MoveNext
	Loop
	Rs.Close
	'删除主题记录
	YxBBs.Execute("Delete From[YX_Topic] where BoardID="&YxBBs.BoardID)
	YxBBs.Execute("Delete From[YX_Board] where BoardID="&YxBBs.BoardID)
	'更新其父类的版面数
	YxBBs.Execute("update [YX_Board] set Child=child-1 where BoardID="&ParentID)
	'更新其父类的其它版面排序
	YxBBs.Execute("Update [YX_Board] Set Orders=Orders-1 where RootID="&RootID&" and Orders>"&Orders)
	'更新其所属论坛数据
		For II=1 to Depth
			'得到其父类的父类的版面ID
			Set rs=YxBBs.Execute("select ParentID from [YX_Board] where BoardID="&ParentID)
			if not (rs.eof and rs.bof) then
				ParentID=rs(0)
				'更新其父类的父类版面数
				YxBBs.Execute("update [YX_Board] set child=child-1 where boardid="&ParentID)
			End IF
			Rs.Close
		Next
	Call Suc("","成功的删除论坛版面 (包括该论坛的所有帖子)!","Board.Asp")	
	UpdateBoardCache
End Sub

Sub ClassOrders
	Dim BoardID
	Set Rs=YxBBs.Execute("Select BoardID,BoardName,RootID from[YX_Board] where Depth=0 order by RootID")
	If Rs.Eof Then
		Call GoBack("","论坛没有分类!请先<a href=?Action=AddClass> 添加分类</a>")
		Exit Sub
	End If
	%><form method=POST style="margin:0" action="?Action=SaveClassOrders">
	<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
	  <tr  bgcolor="#4D65A4">
	    <td height="25" colspan="2" bgcolor="#CCCCCC" >分类排序</td>
	  </tr>
	<tr><td height="25" colspan="2" align="center" bgcolor="#DEDEDE">排序方式按从小到大排序,请用数字填写,排序数字不能相同。</td>
	</tr>
	<%
	Do while not rs.eof
	Response.Write"<tr><td height='25'>&nbsp;"&Rs(1)&"</td><td><input name='BoardID' type='hidden' value='"&Rs(0)&"'><input name='RootID' type='hidden' value='"&Rs(2)&"'><input type=text name='NewRootID' value='"&Rs(2)&"' size=4 ></td></tr>"
	Rs.MoveNext
	Loop
	%>
	<tr bgcolor="#4D65A4"><td colspan="2"  align="center" bgcolor="#CCCCCC"><input type="submit" value=" 修 改 ">&nbsp;&nbsp;<input type="reset" value=" 重 置 "></td></tr></table></form>
	<%Rs.Close
End Sub

Sub SaveClassOrders
	Dim BoardID,RootID,NewRootID,Temp,I
	Temp=","
	For i=1 to Request.form("BoardID").count
		BoardID = Request.form("BoardID")(i)
		RootID = Request.form("RootID")(i)
		NewRootID = Request.form("NewRootID")(i)
		If InStr(Temp,","&NewRootID&",")>0 Then 
			Call GoBack("排序错误","各分类排序的数字不能一样!")
			Exit Sub
		End If
		Temp=Temp&NewRootID&","
		IF Not IsNumeric(BoardID) or Not isnumeric(NewRootID) Then
			Call GoBack("排序错误","请用数字填写!")
			Exit Sub
		End IF
	Next
	For i=1 to Request.form("BoardID").count
		BoardID = Request.form("BoardID")(i)
		RootID = Request.form("RootID")(i)
		NewRootID = Request.form("NewRootID")(i)
		If RootID<>NewRootID Then

⌨️ 快捷键说明

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