📄 query.asp
字号:
<!--#include file="conn.asp"-->
<!-- #include file="inc/const.asp" -->
<!-- #include file="inc/dv_clsother.asp" -->
<!-- #include file="inc/Dv_LoadCache.asp" -->
<%
If Dvbbs.BoardID < 0 Then
Response.Write "参数错误"
Response.End
End If
Dim action,ReportText
action=Request("action")
If Not Dvbbs.Master Then action=""
If Dvbbs.Forum_Setting(3)="0" Then
Dvbbs.Forum_Setting(3)="120"
End If
Dim XMLDOM
Dvbbs.LoadTemplates("query")
If Cint(Dvbbs.GroupSetting(14))=0 Then Dvbbs.AddErrCode(60)
If request("stype")="" Then
If action="" Then
Dvbbs.stats=template.Strings(0)
Dvbbs.nav()
If DVbbs.BoardID=0 then
Dvbbs.Head_var 0,0,template.Strings(0),"query.asp"
Else
Dvbbs.Head_var 1,Dvbbs.BoardNode.attributes.getNamedItem("depth").text,"",""
End If
Dvbbs.ShowErr()
Queryform()
ElseIf action="batch" Then
Dvbbs.stats=template.Strings(22)
Dvbbs.nav()
If DVbbs.BoardID=0 then
Dvbbs.Head_var 0,0,template.Strings(0),"query.asp"
Else
Dvbbs.Head_var 1,Dvbbs.BoardNode.attributes.getNamedItem("depth").text,"",""
End If
Dobatch()
End If
Else
Dvbbs.Stats=template.Strings(1)
Dim stype,pSearch,nSearch,keyword,stable,page,searchday,searchboard,page_count,Pcount
Dim totalrec,endpage,ordername
Dim SqlColumn
Dim SearchMaxPageList
If Dvbbs.Forum_Setting(12)<>"0" Then
If IsNumeric(Dvbbs.Forum_Setting(12)) Then
If Clng(Dvbbs.Forum_Setting(12)) Mod Cint(Dvbbs.Forum_Setting(11))=0 Then
SearchMaxPageList = Clng(Dvbbs.Forum_Setting(12)) \ Cint(Dvbbs.Forum_Setting(11))
Else
SearchMaxPageList = Clng(Dvbbs.Forum_Setting(12)) \ Cint(Dvbbs.Forum_Setting(11))+1
End If
Else
SearchMaxPageList = 50
End If
Else
SearchMaxPageList = 50
End If
CheckRequestInfo()
Dvbbs.ShowErr()
SearchResult()
Dvbbs.ShowErr()
End If
Set XMLDOM=Nothing
Dvbbs.ActiveOnline
Dvbbs.footer()
'进行批量操作
Sub Dobatch()
If Not Dvbbs.Master Then
Response.redirect "showerr.asp?ErrCodes=<li>"&template.Strings(27)&"&action=OtherErr"
Exit Sub
End If
Dim announceid
announceid=Request("announceid")
If announceid="" Then
Response.redirect "showerr.asp?ErrCodes=<li>"&template.Strings(23)&"&action=OtherErr"
Exit Sub
ElseIf Not IsNumeric(replace(replace(replace(announceid,",","")," ",""),"_","")) Then
Response.redirect "showerr.asp?ErrCodes=<li>"&template.Strings(24)&"&action=OtherErr"
Exit Sub
End If
If Request("maction")="" Then
Response.redirect "showerr.asp?ErrCodes=<li>"&template.Strings(25)&"&action=OtherErr"
Exit Sub
ElseIf Request("maction")="move"Then
If Request("newboard")="" Or Not IsNumeric(Request("newboard")) Then
Response.redirect "showerr.asp?ErrCodes=<li>"&template.Strings(26)&"&action=OtherErr"
Exit Sub
Else
Set BoardNode=GetBoard_info(Request("newboard"))
If BoardNode.attributes.getNamedItem("nopost").text="1" Then
Response.redirect "showerr.asp?ErrCodes=<li>目标版面不允许发贴.无法移动&action=OtherErr"
Exit Sub
End If
End If
End If
Dim Rs,SQL,RootID,postid,i,j,posttable,SQL1,k
j=0
k=0
Dim topic,topicusername,topicuserID,datetimestr
Dim Forum_user,BoardNode,UpdateCount,boardid,Setupreload,BordidList
Setupreload=False
announceid=split(announceid,",")
ReportText="批量操作信息:<br>"
BordidList=","
For i=0 to UBound(announceid)
RootID=split(announceid(i),"_")(0)
postid=split(announceid(i),"_")(1)
SQL="select posttable From Dv_topic Where topicID ="&RootID&""
Set Rs=Dvbbs.execute(SQL)
If Not Rs.EOF Then
posttable=Rs(0)
Set rs=Nothing
If PostID="" Or IsNull(PostID) Then
SQL="select * From ["&posttable&"] where RootID="&RootID&" And ParentID=0"
Else
SQL="select * From ["&posttable&"] where announceid="&postid
End If
Set Rs=Dvbbs.execute(SQL)
If Not Rs.EOF Then
postid = Rs("announceID")
If Rs("BoardID")<>444 And Rs("BoardID")<>777 Then
boardid=Rs("BoardID")
Set BoardNode=GetBoard_info(boardid)
Forum_user = Split(BoardNode.attributes.getNamedItem("board_user").text,",")
Select Case Request("maction")
Case "isbest"
If Rs("ParentID")=0 Then
ReportText=ReportText&"精华主题《"& rs("Topic") &"》(ID"& Rs(0)&").<br>"
Else
ReportText=ReportText&"精华跟贴(ID"& Rs(0)&").<br>"
End If
Dvbbs.Execute("Update "& posttable &" Set isbest=1 where announceID="&postid)
Dvbbs.Execute("Update Dv_topic Set isbest=1 where topicID="&RootID)
topic=rs("topic")
topicusername=rs("username")
topicuserID=rs("postuserID")
If topic="" Then topic=left(replace(rs("body"),chr(10),","),26)
datetimestr=replace(replace(rs("dateandtime"),"上午",""),"下午","")
Dvbbs.Execute("Insert Into Dv_bestTopic (title,boardID,AnnounceID,rootID,postusername,postuserID,dateandtime,expression) values ('"&Dvbbs.CheckStr(topic)&"',"&rs("boardID")&","&rs("AnnounceID")&","&rs("rootID")&",'"&Dvbbs.CheckStr(topicusername)&"',"&rs("postuserID")&",'"&datetimestr&"','"&rs("expression")&"')")
Dvbbs.Execute("update [Dv_user] set userWealth=userWealth+"& Forum_user(15) &",userCP=userCP+"& Forum_user(16) &",userEP=userEP+"& Forum_user(17) &",userIsBest=userisBest+1 where userid="& topicuserID)
Case "dele"
If Rs("ParentID")=0 Then
ReportText=ReportText&"删除主题《"& rs("Topic") &"》(ID"& Rs(0)&").<br>"
Set Rs=Dvbbs.Execute("Select istop From Dv_Topic Where topicid="&RootID)
If Rs(0)=0 Then
Set Rs = Server.CreateObject("adodb.recordset")
SQL="select * From ["&posttable&"] where RootID="&RootID&" Order by ParentID"
rs.open sql,conn,1,3
UpdateCount=0
Do While not rs.eof
UpdateCount=UpdateCount+1
Rs("BoardID")=444
Rs("locktopic")=BoardID
If Rs("isbest")=1 Then
Rs("isbest")=0
Dvbbs.Execute("Delete From [Dv_BestTopic] Where Announceid="&Rs("Announceid"))
Dvbbs.Execute("update [Dv_user] set userWealth=userWealth-"& Forum_user(15) &",userCP=userCP-"& Forum_user(16) &",userEP=userEP-"& Forum_user(17) &",userIsBest=userisBest-1 where userid="& rs("postuserID"))
End If
If Rs("ParentID")=0 Then
Dvbbs.Execute("update [Dv_user] set userWealth=userWealth-"& Forum_user(3) &",userCP=userCP-"& Forum_user(8) &",userEP=userEP-"& Forum_user(13) &",UserTopic=UserTopic-1 where userid="& rs("postuserID"))
Else
Dvbbs.Execute("update [Dv_user] set userWealth=userWealth-"& Forum_user(3) &",userCP=userCP-"& Forum_user(8) &",userEP=userEP-"& Forum_user(13) &",UserPost=UserPost-1 where userid="& rs("postuserID"))
End If
Rs.Update
Rs.MoveNext
Loop
Rs.close
Dvbbs.Execute("Update Dv_topic Set isbest=0,BoardID=444,LockTopic="&BoardID&" where topicID="&RootID)
Dvbbs.Execute("Update Dv_Board Set TopicNum=TopicNum-1,PostNum=PostNum-"&UpdateCount&" where BoardID="&boardID)
Dvbbs.Execute("Update Dv_setup Set Forum_TopicNum=Forum_TopicNum-1,Forum_PostNum=Forum_PostNum-"&UpdateCount)
Setupreload=True
If InStr(BordidList,","&BoardId &",")=0 Then
BordidList=BordidList&BoardID&","
End If
Else
ReportText=ReportText&"该主题为固顶主题,请解除固顶后操作.<br>"
End If
Else
If Rs("isbest")=1 Then
Dvbbs.Execute("Delete [Dv_BestTopic] Where Announceid="&Rs("Announceid"))
Dvbbs.Execute("update [Dv_user] set userWealth=userWealth-"& Forum_user(15) &",userCP=userCP-"& Forum_user(16) &",userEP=userEP-"& Forum_user(17) &",userIsBest=userisBest-1 where userid="& rs("postuserID"))
End If
Dvbbs.Execute("Update "& posttable &" Set isbest=0,boardid=444,LockTopic="&BoardID&" where announceID="&postid)
UpdateCount=1
Dvbbs.Execute("update [Dv_user] set userWealth=userWealth-"& Forum_user(3) &",userCP=userCP-"& Forum_user(8) &",userEP=userEP-"& Forum_user(13) &",UserPost=UserPost-1 where userid="& rs("postuserID"))
Dvbbs.Execute("Update Dv_topic Set Child=Child-1 where topicID="&RootID)
Dvbbs.Execute("Update Dv_Board Set TopicNum=TopicNum-1,PostNum=PostNum-"&UpdateCount&" where BoardID="&boardID)
Dvbbs.Execute("Update Dv_setup Set Forum_TopicNum=Forum_TopicNum-1,Forum_PostNum=Forum_PostNum-"&UpdateCount)
Setupreload=True
ReportText=ReportText&"删除跟贴(ID"& Rs(0)&").<br>"
If InStr(BordidList,","&BoardId &",")=0 Then
BordidList=BordidList&BoardID&","
End If
End If
Case "move"
If boardid<>Clng(Request("newboard")) Then
If Rs("ParentID")=0 Then
ReportText=ReportText&"成功移动主题《"& rs("Topic") &"》(ID"& Rs(0)&").<br>"
SQL="update ["&posttable&"] Set BoardID="&Request("newboard")&" where RootID="&RootID&" and BoardID<>444 and BoardID<>777"
Dvbbs.Execute(SQL)
SQL="select Count(*) From ["&posttable&"] where RootID="&RootID&" and BoardID<>444 and BoardID<>777"
Set Rs=Dvbbs.Execute(SQL)
UpdateCount=Rs(0)
Dvbbs.Execute("Update Dv_topic Set BoardID="&Request("newboard")&",mode=0 where topicID="&RootID)
Dvbbs.Execute("Update Dv_Board Set TopicNum=TopicNum-1,PostNum=PostNum-"&UpdateCount&" where BoardID="&boardID)
Dvbbs.Execute("Update Dv_Board Set TopicNum=TopicNum+1,PostNum=PostNum+"&UpdateCount&" where BoardID="&Request("newboard"))
If InStr(BordidList,","&BoardId &",")=0 Then
BordidList=BordidList&BoardID&","
End If
If InStr(BordidList,","&Request("newboard") &",")=0 Then
BordidList=BordidList&Request("newboard")&","
End If
Else
ReportText=ReportText&"该贴(ID"& Rs(0)&")不是主题,无法移动,操作:跳过.<br>"
End If
Else
ReportText=ReportText&"该贴(ID"& Rs(0)&")已经在目标版面了,无须移动,操作:跳过.<br>"
End If
Case "lock"
If Rs("ParentID")=0 Then
ReportText=ReportText&"成功锁定主题《"& rs("Topic") &"》(ID"& Rs(0)&").<br>"
Dvbbs.Execute("update dv_Topic Set LockTopic=1 Where TopicID=" & RootID)
Else
ReportText=ReportText&"该贴(ID"& Rs(0)&")不是主题,无法锁定,操作:跳过.<br>"
End If
End Select
Else
ReportText=ReportText&"贴子被删除或在待审核中,跳过操作"
End If
End If
End If
Next
SQL="insert into Dv_Log (L_AnnounceID,L_BoardID,L_ToUser,L_UserName,L_Content,L_IP,l_type) Values (0,0,'More','"&Dvbbs.Membername&"','"&Dvbbs.Checkstr(Request("maction"))&"','"&Dvbbs.UserTrueIP&"',3)"
Dvbbs.Execute(SQL)
Dvbbs.Dvbbs_suc(ReportText)
If Setupreload Then ReloadSetup
If Len(BordidList)>1 Then
BordidList=Left(BordidList,Len(BordidList)-1)
BordidList=Right(BordidList,Len(BordidList)-1)
End If
If Len(BordidList)>1 Then
Dvbbs.ReloadBoardInfo(BordidList)
End If
End Sub
Function GetBoard_info(BoardID)
Dim Nodelist,node
'------------------------------------
Set node = Dvbbs.BoardXML.selectSingleNode("//*[@boardid='"&BoardID&"']")
If Not (node Is Nothing) Then
Set GetBoard_info=Node
End If
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -