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

📄 board.asp

📁 网趣系统时尚版8(支付宝)
💻 ASP
📖 第 1 页 / 共 3 页
字号:
			YxBBs.Execute("Update [YX_Board]Set RootID="&NewRootID&" where BoardID="&BoardID)
			Temp=BoardID
			YxBBs.Execute("Update [YX_Board] Set RootID="&NewRootID&" where ParentStr like '%"&Temp&"%' And RootID="&RootID&"")
		End If
	Next
	Call Suc("","排序成功!","?")	
	UpdateBoardCache
End Sub

Sub Addmaster(s,o,n)
	Dim Arr,Oarr,i,Sql
	Dim GradeNum,GradeName,Gradepic
	'Set Rs = YxBBs.Execute("SELECT GradeName,GradePic FROM YX_UserGrade WHERE ClassID = 3 ORDER BY UserMinPostNum DESC")
	Set Rs=Conn.Execute("Select GradeNum,GradeName,GradePic FROM YX_UserGrade WHERE ClassID = 3 ORDER BY UserMinPostNum DESC")
	If Not (Rs.Eof And Rs.Bof) Then
		GradeNum = Rs(0)
		GradeName = Rs(1)
		Gradepic = Rs(2)
	End If
	Randomize
	Arr = Split(s,"@@")
	Oarr = Split(o,"@@")
	Set Rs = Server.Createobject("Adodb.Recordset")
	For i = 0 To Ubound(Arr)
		Sql = "SELECT * FROM [YX_User] WHERE Name = '" & Arr(i) & "'"
		Rs.Open Sql,Conn,1,3
		If Rs.Eof And Rs.Bof Then
			Call GoBack("",Arr(i) &"这个用户还没有注册!")
		Else
			If Rs("ClassID") = 5 Then
				Rs("GradeNum") = GradeNum
				Rs("GradeName") = GradeName
				Rs("Gradepic") = Gradepic
				Rs("ClassID") = 3
				Rs.Update
			End If
		End If
		Rs.Close
	Next
	'判断原版主在其他版面是否还担任版主,如没有担任则撤换该用户职位。
	If n = 1 Then
		Dim Iboardmaster
		Dim UserGrade, Article
		Iboardmaster = False
		For i = 0 To Ubound(Oarr)
			Set Rs = YxBBs.Execute("SELECT BoardAdmin FROM YX_Board")
			Do While Not Rs.Eof
				If InStr("|" & Trim(Rs(0)) & "|","|" & Trim(Oarr(i)) & "|") > 0 Then
					Iboardmaster = True
					Exit Do
				End If
				Rs.Movenext
			Loop
			If Not Iboardmaster Then
				Set Rs = YxBBs.Execute("SELECT ID,ClassID,EssayNum FROM [YX_User] WHERE Name='" & Trim(Oarr(i)) & "' Or ClassID=3")
				If Not (Rs.Eof And Rs.Bof) Then
					'If Rs(1) > 2 Then
						If Not Isnumeric(Rs(2)) Or Rs(2) = "" Then
							Article = 0
						Else
							Article = Cstr(Rs(2))
						End If
						'取对应注册会员的等级
						Set UserGrade = YxBBs.Execute("SELECT TOP 1 GradeNum,GradeName,GradePic FROM YX_UserGrade WHERE UserMinPostNum <= " & Article & " AND NOT UserMinPostNum = -1 AND ClassID = 5 ORDER BY UserMinPostNum DESC")
						If Not (UserGrade.Eof And UserGrade.Bof) Then
							YxBBs.Execute("UPDATE [YX_User] Set GradeNum="&UserGrade(0)&",GradePic='"&UserGrade(2)&"',GradeName='"&UserGrade(1)&"',ClassID=5 WHERE ID="&Rs(0))
						End If
						UserGrade.Close:Set UserGrade = Nothing
					'End If
				End If
			End If
			Iboardmaster = False
		Next
	End If
	Set Rs = Nothing
End Sub

Sub BoardUnite
	%><form method=POST style="margin:0" action="?Action=SaveBoardUnite">
	<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
	<tr bgcolor="#4D65A4"><td height="25" bgcolor="#CCCCCC">论坛合并</td>
	</tr>
	<tr><td height="40" bgcolor="#DEDEDE">将论坛: 
	  <select size="1" name="BoardID"><option value='0'>请选择原论坛</option><%=YxBBs.BoardIDList(0,0)%></select> 合并到论坛: <select size="1" name="NewBoardID"><option value='0'>请选择目标论坛</option><%=YxBBs.BoardIDList(0,0)%></select> 中 <input type="submit" onclick=checkclick('操作后将不能恢复!您确定要合并吗?') value=" 论坛合并 "></td></tr>
	<tr bgcolor="#E8F4EF"><td height="40" bgcolor="#CCCCCC" ><b>注意事项:</b><font color=red>此操作不可恢复,请慎重操作!</font><br>
	分类不能操作,不能和其属下的论坛合并。<br>
	合并后原论坛(包括属下论坛)将被删除,所有帖子(包括属下论坛的帖子)将转移到指定的目标论坛中 </td></tr></table></form>
	<%
End Sub

Sub SaveBoardUnite
	Dim BoardID,NewBoardID,TempParentStr,TempParentID,Rs1
	Dim I,AllTable
	Dim ParentStr,Depth,ParentID,Child,RootID
	BoardID=YxBBs.Fun.Getstr("BoardID")
	NewBoardID=YxBBs.Fun.Getstr("NewBoardID")
	IF BoardID="" Or NewBoardID="" Then
		Call GoBack("","请先指定论坛后再进行合并!")
		Exit Sub
	ElseIf BoardID=NewBoardID Then
		Call Goback("","同一个论坛不用合并了!")
		Exit sub
	End If

	Set Rs=YxBBs.Execute("Select ParentStr,BoardID,Depth,ParentID,Child,RootID from YX_board where BoardID="&BoardID)
	If Rs(2)="0" then
		Call Goback("系统错误","分类不能做合并操作!")
		Exit Sub
	End If
	ParentStr=Rs(0) & "," & Rs(1)
	ParentID=Rs(3)
	TempParentStr=rs(1)
	DepTh=rs(2)
	Child=rs(4)+1
	RootID=rs(5)
	Rs.Close
	TempParentID=ParentID
	'判断是否合并到下属论坛
	Set Rs=YxBBs.Execute("Select BoardID From [YX_Board] where BoardID="&NewBoardID&" And ParentStr like '%"&ParentStr&"%'")
	If Not (rs.eof and rs.bof) then
		Call Goback("","不能将论坛合并到其下属论坛中!")
		Exit Sub
	End if
	Rs.Close
	'得到全部下属论坛ID
	i=0
	Set Rs=YxBBs.Execute("Select BoardID from [YX_Board] where RootID="&RootID&" And ParentStr like '%"&ParentStr&"%'")
	do while not rs.eof
		If i=0 then
			TempParentStr=Rs(0)
		Else
			TempParentStr=TempParentStr & "," & Rs(0)
		End if
		i=i+1
		Rs.movenext
	loop
	If i>0 then
		ParentStr=TempParentStr & "," & BoardID
	Else
		ParentStr=BoardID
	End if
	'更新其原来所属论坛版面数
	YxBBs.Execute("update [YX_Board] set Child=Child-"&child&" where BoardID="&TempParentID)
	'更新其原来所属论坛数据,排序相当于剪枝而不需考虑
	For I=1 to 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-"&Child&" where boardid="&TempParentID)
		End if
	Next
	'更新论坛帖子数据
	AllTable=Split(YxBBs.BBSTable(0),",")
	For i=0 To uBound(AllTable)
		YxBBs.Execute("update [YX_BBS"&AllTable(i)&"] set BoardID="&NewBoardID&" where BoardID in ("&ParentStr&")")
	Next
	YxBBs.Execute("update [YX_Topic] set BoardID="&NewBoardID&" where BoardID in ("&ParentStr&")")
	'删除被合并论坛
	Set Rs=YxBBs.Execute("Select Sum(EssayNum),sum(TopicNum),sum(TodayNum) from [YX_Board] where RootID="&RootID&" And BoardID in ("&ParentStr&")")
	YxBBs.Execute("Delete from [YX_Board] where RootID="&RootID&" And BoardID in ("&ParentStr&")")
	'更新新论坛帖子计数
	YxBBs.Execute("update [YX_Board] set EssayNum=EssayNum+"&rs(0)&",TopicNum=TopicNum+"&rs(1)&",TodayNum=TodayNum+"&rs(2)&" where BoardID ="&NewBoardID&"")
	'更新上级版块
	set Rs1=YxBBs.Execute("select Depth,ParentStr,Boardid from [YX_Board] where BoardID="&NewBoardID)
	If Rs1(0)>1 Then
	ParentStr=Rs1(0)
	YxBBs.Execute("update [YX_Board] set EssayNum=EssayNum+"&rs(0)&",TopicNum=TopicNum+"&rs(1)&",TodayNum=TodayNum+"&rs(2)&" where boardid in ("&ParentStr&")")
	End If
	Rs1.Close:Set Rs1=Nothing
	Rs.Close
	Call Suc("","合并成功!已经将原论坛(包括属下)的所有帖子合并到目标论坛。","?")
	UpdateBoardCache
End Sub

Sub ClearData
	Set Rs=YxBBs.execute("Select BoardName,TopicNum,EssayNum From[YX_Board] where BoardID="&YxBBs.BoardID&"")
	IF Rs.Eof Then
		Call GoBack("","论坛版面不存在,可能经被删除了")
		Exit Sub
	End If%>
	<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
	<tr bgcolor="#CCCCCC"><td height="25" colspan="2"><%=Rs("BoardName")%> 数据清理</td>
	</tr>
	<tr bgcolor="#DEDEDE"><td height="40"><b>帖子信息</b><br>
	  版面主题数:<%=Rs("TopicNum")%><br>版面总帖数:<%=Rs("EssayNum")%><br>精华主题数:<%=YxBBs.Execute("Select Count(TopicID) From[YX_Topic] where IsGood and BoardID="&YxBBs.BoardID&"")(0)%><br></td><td><b>注意事项</b><br>
	    <font color=red>此操作不可恢复!精华帖子不会被删除!</Font><br>如果您的论坛数据众多,执行此操作将消耗大量的服务器资源。<br>执行过程请耐心等候,最好选择夜间在线人少的时候更新。</td></tr>
<tr bgcolor="#CCCCCC"><td height="40" colspan="2" ><form method=POST style="margin:0" action="?Action=StartClearData">清除 <b><%=Rs(0)%></b> 在 <input name="BoardID" value="<%=YxBBs.BoardID%>" type="hidden"><select name="SqlTableID"><option value="0">所有数据表</option><%=SqlTableList%></select> 中 <input type=text name="ClearDate" value="365" size=5> 天前的帖子。 <input type="submit" value=" 执行清理 ">
</form></td></tr></tbody></table>
	<%Rs.Close
End Sub

Sub StartClearData
	Dim SqlTableID,ClearDate,BoardID,AllTable,i
	SqlTableID=YxBBs.Fun.GetStr("SqlTableID")
	ClearDate=YxBBs.Fun.GetStr("ClearDate")
	BoardID=YxBBs.Fun.GetStr("BoardID")
	If Not isnumeric(ClearDate) or Not isNumeric(SqlTableID) or Not isNumeric(BoardID)  Then
		Call GoBack("","请用数字填写!")
		Exit Sub
	End If	
	IF Int(SqlTableID)=0 Then
		AllTable=Split(YxBBs.BBSTable(0),",")
	Else
		AllTable=Split(SqlTableID,",")
	End if
	For i=0 to uBound(AllTable)
		Set Rs=YxBBs.Execute("Select TopicID,isVote From[YX_Topic] where BoardID="&BoardID&" And IsGood=False And  DATEDIFF('d',[LastTime],'"&YxBBs.NowBbsTime&"')>"&ClearDate&" ")
		Do While Not Rs.Eof
		YxBBs.Execute("Delete from [YX_Bbs"&AllTable(i)&"] where BoardID="&BoardID&" And (TopicId="&RS(0)&" Or ReplyTopicId="&RS(0)&")")
		IF Rs(1) Then'删除投票
			YxBBs.Execute("Delete from [YX_TopicVote] where TopicID="&RS(0)&"")
			YxBBs.Execute("Delete from [YX_TopicVoteUser] where TopicID="&RS(0)&"")
		End If
		Rs.movenext
		Loop
		Rs.Close
		YxBBs.Execute("Delete From[YX_Topic] where BoardID="&BoardID&" And SqlTableID="&AllTable(i)&" And IsGood=False And  DATEDIFF('d',[LastTime],'"&YxBBs.NowBbsTime&"')>"&ClearDate&" ")
	Next
	Call Suc("","成功的清理了论坛数据!","?")
End Sub

Sub PassUser
	Set Rs=YxBBs.execute("Select PassUser,BoardName From [YX_Board] where BoardID="&YxBBs.BoardID&" And ParentID<>0")
	IF Rs.eof Then
		Call GoBack("","此论坛的类型不是认证论坛,不能设置认证用户。")
		Exit Sub
	End If%>
	<form method=POST style='margin:0' action="?Action=SavePassUser">
	<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="30%" height="28"><b>所在论坛:</b> </td>
	<td width="70%"><input name="BoardID" value="<%=YxBBs.BoardID%>" type="hidden"><%=Rs("BoardName")%></td></tr>
	<tr bgcolor="#DEDEDE"><td height="28"><b>通过认证的用户:</b><br>
	  各用户之间用“|”隔开<Br>请不要使用回车键Enter</td><td height="28"><textarea name="PassUser" rows="3"><%=Rs("PassUser")%></textarea></td></tr>
	<tr bgcolor="#CCCCCC"><td colspan="2" align="center"><input type="submit" value=" 提 交 "> &nbsp;&nbsp;<input type="reset" name="Submit" value=" 重 置 "></td></tr></tbody></table>
	</table></form>
	<%Rs.Close
End Sub

Sub SavePassUser
	Dim PassUsers,BoardID
	BoardID=YxBBs.Fun.GetStr("BoardID")
	PassUsers=Trim(Replace(Request.Form("PassUser"),"'",""))
	PassUsers=Replace(PassUsers,chr(10), "")
	PassUsers=Replace(PassUsers,chr(13), "")
	YxBBs.Execute("Update [YX_Board] Set PassUser='"&PassUsers&"' where BoardID="&BoardID&" And ParentID<>0")
	Cache.Name="BoardInfo"
	Cache.clean()
	Call Suc("","成功的更新了该论坛的认证会员!","?")
End Sub

Sub BoardUpdate
	%>
	<table width="98%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
	<tr><td bgcolor="#DEDEDE"><div align="center"><b><span id=YxBBsT name=YxBBsT>数据版面正在整理,请稍等</span></b></div>
	  <table width="400" border="0" align="center" cellpadding="1" cellspacing="1">
	<tr><td bgcolor=#d7d7d7>
	<table width="400" border="0" cellspacing="0" cellpadding="1">
	<tr> 
	<td bgcolor=ffffff height=9><img src="../images/hr1.gif" width=0 height=16 id=YxBBsimg name=YxBBsimg align=absmiddle></td>
	</tr></table>
	</td></tr></table>
	<div align="center"><span id=YxBBstxt name=YxBBstxt style="font-size:9pt">0</span><span style="font-size:9pt">%</span></div></td></tr></table><br>
	<%Response.Flush
	Dim BoardNum,EssayNum,TopicNum,TodayNum,ParentStr,LastReply,LastCaption
	Dim AllTable,I,II,III,SQL
	BoardNum=YxBBs.Execute("Select Count(BoardID) from[YX_Board] Where ParentID<>0")(0)
	II=0
	Set Rs=YxBBs.Execute("Select BoardID,BoardName,Child,ParentStr,RootID from[YX_Board] Where ParentID<>0  Order by Child,RootID,Orders Desc")
	If Not Rs.EOF Then 
	SQL=Rs.GetRows()
	Rs.Close
	For i=0 to UBound(SQL,2)
	EssayNum=0
	TopicNum=0
	TodayNum=0
	LastReply=""
	LastCaption="无"
	AllTable=Split(YxBBs.BBSTable(0),",")
	For III=0 To uBound(AllTable)
		EssayNum=EssayNum+YxBBs.Execute("Select Count(*) From[YX_Bbs"&AllTable(III)&"] where BoardID="&SQL(0,i)&" And IsDel=False")(0)
		TodayNum=TodayNum+YxBBs.Execute("Select Count(*) From[YX_Bbs"&AllTable(III)&"] where BoardID="&SQL(0,i)&" And IsDel=False And DATEDIFF('d',[LastTime],'"&YxBBs.NowBbsTime&"')<1")(0)
	Next
	TopicNum=YxBBs.Execute("Select Count(TopicID) From[YX_Topic] where BoardID="&SQL(0,i)&" and IsDel=False")(0)
	Set Rs=YxBBs.execute("Select top 1 TopicID,Name,Caption,AddTime,Face,SqlTableID,BoardID From [YX_Topic] where IsDel=False And BoardID="&SQL(0,i)&" order by TopicID desc")
	If Not Rs.eof then
		LastCaption=replace(YxBBs.Fun.StrLeft(Rs("Caption"),20),"'","&#39;")
		LastReply=Rs("Name")&"|"&LastCaption&"|"&Rs("AddTime")&"|"&Rs("Face")&"|"&Rs("TopicID")&"|"&Rs("BoardID")&"|"&Rs("SqlTableID")&""
	End If
	Rs.Close
	YxBBs.Execute("update [YX_Board] Set EssayNum="&EssayNum&",TodayNum="&TodayNum&",TopicNum="&TopicNum&",LastReply='"&LastReply&"' where BoardID="&SQL(0,i)&"")
	'如果有上级论坛,那么更新上级论坛
	If SQL(2,I)>0 Then
		ParentStr=SQL(3,i) & "," & SQL(0,i)
		Set Rs=YxBBs.Execute("Select Sum(EssayNum),Sum(TopicNum),Sum(TodayNum) From [YX_Board] Where ParentStr = '"&ParentStr&"'")
		If Not IsNull(Rs(0)) Then EssayNum = Rs(0) + EssayNum
		If Not IsNull(Rs(1)) Then TopicNum = Rs(1) + TopicNum
		If Not IsNull(Rs(2)) Then TodayNum = Rs(2) + TodayNum
		Rs.Close
		Set Rs=YxBBs.execute("Select top 1 TopicID,Name,Caption,AddTime,Face,SqlTableID,BoardID From [YX_Topic] where IsDel=False And BoardID In ("&ParentStr&") Order by LastTime Desc")
		If Not Rs.eof then
			LastCaption=replace(YxBBs.Fun.StrLeft(Rs("Caption"),20),"'","&#39;")
			LastReply=Rs("Name")&"|"&LastCaption&"|"&Rs("AddTime")&"|"&Rs("Face")&"|"&Rs("TopicID")&"|"&Rs("BoardID")&"|"&Rs("SqlTableID")&""
		End If
		Rs.Close
		YxBBs.Execute("update [YX_Board] Set EssayNum="&EssayNum&",TodayNum="&TodayNum&",TopicNum="&TopicNum&",LastReply='"&LastReply&"' where BoardID="&SQL(0,i)&"")
	End IF
	Call Table("论坛 <Font color=blue>"&SQL(1,i)&"</Font> 整理成功","总帖数"&EssayNum&" | 主题数:"&TopicNum&" | 今日帖:"&TodayNum&" | 最新主题:"&LastCaption&"")
	II=II+1
	Response.Write "<script>YxBBsimg.width=" & Fix((ii/BoardNum) * 400) & ";" & VbCrLf
	Response.Write "YxBBstxt.innerHTML=""" & FormatNumber(ii/BoardNum*100,4,-1) & """;" & VbCrLf
	Response.Write "</script>" & VbCrLf
	Response.Flush
	Next
	End If
	Response.Write "<script>YxBBsimg.width=400;YxBBstxt.innerHTML=""100"";YxBBsT.innerHTML=""<font color=red>成功完成整理!</font>"";</script>"
	updateBoardCache
End Sub

Function SqlTableList()
	Dim AllTable,I
	AllTable=Split(YxBBs.BBSTable(0),",")
	For i=0 To uBound(AllTable)
	SqlTableList=SqlTableList&"<option value='"&AllTable(I)&"'>数据表"&AllTable(I)&"</option>"
	Next
End Function


Sub Table(Str1,Str2)
	Response.Write("<table width='98%' border='1' align='center' cellpadding='3' cellspacing='2' bordercolor='#999999' bordercolordark='#FFFFFF' bgcolor='#DEF0FE'><tr><td><Div style='margin:5;line-height: 150%'>"&Str1&"<br>"&Str2&"</Div></td></tr></table>")
End Sub
%>

⌨️ 快捷键说明

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