您没有管理本页面的权限。"
dvbbs_error()
else
if Request("action") = "unite" then
call unite()
else
call boardinfo()
end if
Footer()
end if
sub boardinfo()
%>
合并论坛数据
<%
end sub
Sub Unite()
Dim Newboard
Dim Oldboard
Dim ParentStr, iParentStr
Dim Depth, iParentID, Child
Dim ParentID, RootID
If Clng(Request("newboard")) = Clng(Request("oldboard")) Then
Errmsg = "请不要在相同版面内进行操作。"
dvbbs_error()
Exit Sub
End If
Newboard = Clng(Request("newboard"))
Oldboard = Clng(Request("oldboard"))
'将本论坛及其下属版面的帖子都转移至目标论坛,并删除本论坛及其下属版面
'得到当前版面下属论坛
set rs=Dvbbs.Execute("select ParentStr,Boardid,depth,ParentID,child,RootID from dv_board where boardid="&oldboard)
if rs(0)="0" then
ParentStr=rs(1)
iParentID=rs(1)
ParentID=0
else
ParentStr=rs(0) & "," & Rs(1)
iParentID=rs(3)
ParentID=rs(3)
end if
iParentStr=rs(1)
depth=rs(2)
child=rs(4)+1
RootID=rs(5)
i=0
If ParentID=0 Then
set rs=Dvbbs.Execute("select Boardid from dv_board where boardid="&newboard&" and RootID="&RootID)
Else
set rs=Dvbbs.Execute("select Boardid from dv_board where boardid="&newboard&" and ParentStr like '%"&ParentStr&"%'")
End If
if not (rs.eof and rs.bof) then
response.write "不能将一个版面合并到其下属论坛中"
exit sub
end if
'得到当前版面下属论坛ID
i=0
set rs=Dvbbs.Execute("select Boardid from dv_board where RootID="&RootID&" And ParentStr like '%"&ParentStr&"%'")
if not (rs.eof and rs.bof) then
do while not rs.eof
if i=0 then
iParentStr=rs(0)
else
iParentStr=iParentStr & "," & rs(0)
end if
i=i+1
rs.movenext
loop
end if
if i>0 then
ParentStr=iParentStr & "," & oldboard
else
ParentStr=oldboard
end if
'更新其原来所属论坛版面数
if depth>0 then
Dvbbs.Execute("update dv_board set child=child-"&child&" where boardid="&iparentid)
'更新其原来所属论坛数据,排序相当于剪枝而不需考虑
for i=1 to depth
'得到其父类的父类的版面ID
set rs=Dvbbs.Execute("select parentid from dv_board where boardid="&iparentid)
if not (rs.eof and rs.bof) then
iparentid=rs(0)
Dvbbs.Execute("update dv_board set child=child-"&child&" where boardid="&iparentid)
end if
next
end if
'更新论坛帖子数据
For i=0 to ubound(AllPostTable)
Dvbbs.Execute("update "&AllPostTable(i)&" set boardid="&newboard&" where boardid in ("&ParentStr&")")
'更新回收站部分内容
Dvbbs.Execute("Update "&AllPostTable(i)&" Set LockTopic="&newboard&" Where BoardID=444 And LockTopic In ("&ParentStr&")")
Next
Dvbbs.Execute("update dv_topic set boardid="&newboard&" where boardid in ("&ParentStr&")")
Dvbbs.Execute("update dv_besttopic set boardid="&newboard&" where boardid in ("&ParentStr&")")
'更新回收站部分内容
Dvbbs.Execute("Update Dv_Topic Set LockTopic="&newboard&" Where BoardID=444 And LockTopic In ("&ParentStr&")")
'shinzeal加入更新上传文件数据
Dvbbs.Execute("update DV_Upfile set F_boardid="&newboard&" where F_boardid in ("&ParentStr&")")
'删除被合并论坛
set rs=Dvbbs.Execute("select sum(postnum),sum(topicnum),sum(todayNum) from dv_board where RootID="&RootID&" And boardid in ("&ParentStr&")")
Dvbbs.Execute("delete from dv_board where RootID="&RootID&" And boardid in ("&ParentStr&")")
'删除被合并论坛的自定义用户权限
Dvbbs.Execute("DELETE FROM Dv_UserAccess WHERE NOT Uc_BoardID IN (SELECT BoardID FROM Dv_Board)")
'更新新论坛帖子计数
dim trs
set trs=Dvbbs.Execute("select ParentStr,boardid from dv_board where boardid="&newboard)
if trs(0)="0" then
ParentStr=trs(1)
else
ParentStr=trs(0)
end if
'更新合并后版面帖子数信息
Dvbbs.Execute("UPDATE Dv_Board SET Postnum = Postnum + " & Rs(0) & ", Topicnum = Topicnum + " & Rs(1) & ", Todaynum = Todaynum + " & Rs(2) & " WHERE Boardid = " & NewBoard)
Response.Write "合并成功,已经将被合并论坛所有数据转入您所合并的论坛,请更新一下论坛数据。"
set rs=nothing
set trs=nothing
MakXMLBoardList 1,1
LoadBoardNews_Paper
ReloadSetup()
End Sub
%>