📄 query.asp
字号:
'最新50贴
Case 3
' SqlColumn = SqlColumn & " dv_Topic Order By TopicID Desc"
If Request("BoardID")>0 then
SqlColumn = SqlColumn &" "&stable&" where BoardID="&trim(request("BoardID"))&" ORDER BY announceID desc"
Else
SqlColumn = SqlColumn &" "&stable&" ORDER BY announceID desc"
End if
Dvbbs.Stats = template.Strings(12)
Case 4
If keyword<>"" Then
Set Rs=Dvbbs.Execute("Select UserID From Dv_User Where UserName='"&keyword&"'")
If Rs.Eof And Rs.Bof Then
Set Rs=Nothing
Response.redirect "showerr.asp?ErrCodes=<li>"&template.Strings(21)&"&action=OtherErr"
Else
SearchUserID = Rs(0)
End If
End If
Dim HotTopicDay,HotTopicView,MyHotTopic
If Dvbbs.Forum_Setting(13)<>"0" Then
MyHotTopic = Split(Dvbbs.Forum_Setting(13),"|")
If Ubound(MyHotTopic)=1 Then
HotTopicDay = MyHotTopic(0)
HotTopicView = MyHotTopic(1)
Else
HotTopicDay = 10
HotTopicView = 200
End If
Else
HotTopicDay = 10
HotTopicView = 200
End If
Dvbbs.Stats = Replace(Replace(template.Strings(13),"{$daylimited}",HotTopicDay),"{$viewlimited}",HotTopicView)
If IsSqlDataBase=1 Then
searchday=" datediff(d,DateAndTime,"&SqlNowString&") < "&HotTopicDay&" and "
Else
searchday=" datediff('d',DateAndTime,"&SqlNowString&") < "&HotTopicDay&" and "
End If
If keyword<>"" Then keyword = " And PostUserID="&SearchUserID
SqlColumn = SqlColumn & " dv_Topic Where "&searchday&" hits>"&HotTopicView&" "&keyword&" Order By TopicID Desc"
Case 5
If Dvbbs.UserID=0 Then
Dvbbs.AddErrCode(61)
Exit Function
End If
Dim s
s=request("s")
If s="" Or Not IsNumerIc(s) Then s=1
s=clng(s)
If s=1 Then
SqlColumn="select top 200 BoardID,TopicID,Title,Expression,PostUserName,PostUserID,DateAndtime,IsBest,LockTopic from Dv_Topic where topicid in (select top 200 rootid from "&stable&" where ParentID>0 And PostUserID="&Dvbbs.UserID&" order by AnnounceID desc) and Boardid<>444 order by topicid desc"
Dvbbs.Stats = template.Strings(14)
Else
SqlColumn="select top 200 BoardID,TopicID,Title,Expression,PostUserName,PostUserID,DateAndtime,IsBest,LockTopic from dv_topic where postUserID="&Dvbbs.UserID&" and Boardid<>444 ORDER BY topicid desc"
Dvbbs.Stats = template.Strings(15)
End If
Case 6
If keyword<>"" Then
Set Rs=Dvbbs.Execute("Select UserID From Dv_User Where UserName='"&keyword&"'")
If Rs.Eof And Rs.Bof Then
Set Rs=Nothing
Response.redirect "showerr.asp?ErrCodes=<li>"&template.Strings(21)&"&action=OtherErr"
Else
SearchUserID = Rs(0)
End If
End If
If Trim(searchboard)="" Then
If keyword<>"" Then keyword = " Where PostUserID="&SearchUserID
SqlColumn = "select BoardID,RootID,Title,Expression,PostUserName,PostUserID,DateAndtime,PostUserID As IsBest,PostUserID As LockTopic From dv_BestTopic "&keyword&" Order By ID Desc"
Else
If keyword<>"" Then keyword = " And PostUserID="&SearchUserID
SqlColumn = "select BoardID,RootID,Title,Expression,PostUserName,PostUserID,DateAndtime,PostUserID As IsBest,PostUserID As LockTopic From dv_BestTopic Where "&Replace(searchboard,"and","")&" "&keyword&" Order By ID Desc"
End If
Dvbbs.Stats = template.Strings(16)
Case Else
Dvbbs.AddErrCode(61)
Exit Function
End Select
Dvbbs.Nav()
If Dvbbs.BoardID=0 then
Dvbbs.Head_var 0,0,template.Strings(0),"query.asp"
Else
Dvbbs.Head_var 1,Dvbbs.Board_Data(4,0),"",""
End If
If Dvbbs.boardid>0 Then GetBoardPermission
If IsEmpty(Session("QueryLimited")) Then
Session("QueryLimited") = keyword & "|" & stype & "|" & Now()
Else
Dim QueryLimited
QueryLimited = Split(Session("QueryLimited"),"|")
If Ubound(QueryLimited) = 2 Then
If Cstr(Trim(QueryLimited(0))) = Cstr(keyword) And Cstr(Trim(QueryLimited(1))) = Cstr(stype) Then
Session("QueryLimited") = keyword & "|" & stype & "|" & Now()
Else
If DateDiff("s",QueryLimited(2),Now()) < Clng(Dvbbs.Forum_Setting(3)) And Not(Dvbbs.Master Or Dvbbs.BoardMaster Or Dvbbs.SuperBoardMaster) Then
Response.redirect "showerr.asp?ErrCodes=<li>"&Replace(template.Strings(20),"{$timelimited}",Dvbbs.Forum_Setting(3))&"&action=OtherErr"
Else
Session("QueryLimited") = keyword & "|" & stype & "|" & Now()
End If
End If
Else
Session("QueryLimited") = keyword & "|" & stype & "|" & Now()
End If
End If
'Response.Write Session("QueryLimited")
End Function
Function SearchResult()
Dim FirstNum,TotalRec,ThisPageNum
Dim Rs,i,TempData,Board_Data
Dim TempStr,TempStr1,TempStr2,TempStr3
TempStr = template.html(1)
TempStr1 = template.html(2)
TotalRec = -1
If page < 1 Then
FirstNum = 0
Else
FirstNum = page * Dvbbs.Forum_Setting(11) + 1
End If
SQLQueryStr()
If Dvbbs.ErrCodes<>"" Then Exit Function
If Not IsObject(Conn) Then ConnectionDatabase
'Response.Write SqlColumn
'On Error Resume Next
'Set Rs=Dvbbs.Execute(SqlColumn)
Dvbbs.SqlQueryNum = Dvbbs.SqlQueryNum + 1
Set Rs=server.createobject("adodb.recordset")
Rs.Open SqlColumn,Conn,1,1
If Err Then
Dvbbs.AddErrCode(61)
Exit Function
End If
If Not (Rs.Eof And Rs.Bof) Then
If TotalRec = -1 Then
TotalRec = Rs.RecordCount
If TotalRec = -1 Then
For i = 1 to FirstNum
If Not Rs.Eof Then
Rs.MoveNext
Else
Exit For
End If
Next
Else
If FirstNum > TotalRec Then FirstNum = TotalRec - Cint(Dvbbs.Forum_Setting(11))
If FirstNum > 0 and FirstNum <= TotalRec Then Rs.absoluteposition = FirstNum
End If
Else
If FirstNum > TotalRec Then FirstNum = TotalRec - Cint(Dvbbs.Forum_Setting(11))
For i = 1 to FirstNum
Rs.MoveNext
Next
End If
If Not Rs.Eof Then
TempData = Rs.GetRows(Cint(Dvbbs.Forum_Setting(11))+1)
ThisPageNum = Ubound(TempData,2)+1
Else
TotalRec = 0
ThisPageNum = 0
End If
Else
TotalRec = 0
ThisPageNum = 0
End If
If ThisPageNum > TotalRec Then TotalRec = ThisPageNum
Set Rs=Nothing
If TotalRec = 0 Then TempStr = Replace(TempStr,"{$searchresultloop}",template.html(3))
'BoardID=0,RootID=1,Topic=2,Expression=3,UserName=4,PostUserID=5,DateAndTime=6,IsBest=7,LockTopic=8,Body=9,AnnounceID=10
Dim TopicStats
If Dvbbs.BoardID>0 Then TempStr1 = Replace(TempStr1,"{$boardtype}",Dvbbs.BoardType)
TopicStats = Dvbbs.mainpic(2)
For i = 0 To ThisPageNum-1 Step 1
TempStr2 = TempStr1
If TempData(8,i)=1 Then TopicStats=Dvbbs.mainpic(4)
If TempData(7,i)=1 Or stype=6 Then TopicStats=Dvbbs.mainpic(5)
TempStr2 = Replace(TempStr2,"{$statpic}",TopicStats)
TopicStats = Dvbbs.mainpic(2)
TempStr2 = Replace(TempStr2,"{$boardid}",TempData(0,i))
TempStr2 = Replace(TempStr2,"{$userid}",TempData(5,i))
TempStr2 = Replace(TempStr2,"{$dateandtime}",TempData(6,i))
TempStr2 = Replace(TempStr2,"{$username}",Dvbbs.HtmlEncode(TempData(4,i)))
TempStr2 = Replace(TempStr2,"{$expression}",TempData(3,i)&"")
If InStr("," & hidboardid & ",","," & TempData(0,i) & ",") > 0 Then
TempStr2 = Replace(TempStr2,"{$topic}","隐含版面帖子,请点击链接浏览。")
End If
If InStr("," & FobBoardID & ",","," & TempData(0,i) & ",") > 0 Then
TempStr2 = Replace(TempStr2,"{$topic}","认证版面帖子,请点击链接浏览。")
End If
If (TempData(0,i)=444 Or TempData(0,i)=777) Then
TempStr2 = Replace(TempStr2,"{$topic}","帖子已被删除或者在认证中")
End If
'If Dvbbs.BoardID=0 Then
If TempData(0,i)=444 Or TempData(0,i)=777 Then
TempStr2 = Replace(TempStr2,"{$boardtype}","回收站")
Else
If Not InStr((","&Dvbbs.cachedata(27,0)&","),(","&TempData(0,i)&","))>0 Then
TempStr2 = Replace(TempStr2,"{$boardtype}","在错乱的版面")
Else
Dvbbs.Name="BoardInfo_" & TempData(0,i)
If Dvbbs.ObjIsEmpty() Then Dvbbs.ReloadBoardInfo(TempData(0,i))
Board_Data=Dvbbs.Value
TempStr2 = Replace(TempStr2,"{$boardtype}",Board_Data(1,0))
End If
End If
'End If
If InStr(SqlColumn,"Body")>0 Then
TempStr2 = Replace(TempStr2,"{$linkinfo}","&ID=" & TempData(1,i) & "&replyID=" & TempData(10,i) & "&skin=1")
If Trim(TempData(2,i))="" Then
TempStr2 = Replace(TempStr2,"{$topic}","Re:"&cutStr(Replace(Replace(reUBBCode(TempData(9,i)),chr(10),""),chr(13),""),35))
Else
TempStr2 = Replace(TempStr2,"{$topic}",cutStr(TempData(2,i),35))
End If
Else
TempStr2 = Replace(TempStr2,"{$topic}",cutStr(TempData(2,i),35))
TempStr2 = Replace(TempStr2,"{$linkinfo}","&ID=" & TempData(1,i))
End If
TempStr3 = TempStr3 & TempStr2
Next
TempStr = Replace(TempStr,"{$searchresultloop}",TempStr3)
If TotalRec > 0 Then
Dim SearchStr,Temp,TempPage
SearchStr="stype="&stype&"&pSearch="&pSearch&"&nSearch="&nSearch&"&keyword="&keyword&"&SearchDate="&request("SearchDate")&"&BoardID="&Dvbbs.BoardID&"&stable="&stable
TempStr3 = Split(template.html(4),"||")
If TotalRec > Cint(Dvbbs.Forum_Setting(11)) Then
Temp = Page + 2
Else
Temp = Page + 1
End If
If Temp >= SearchMaxPageList Then Temp = SearchMaxPageList
For i = 1 to Temp
If i = page+1 Then
TempPage = TempPage & Replace(TempStr3(1),"{$nowpage}",i)
Else
TempStr1 = Replace(TempStr3(2),"{$rpage}",i-1)
TempStr1 = Replace(TempStr1,"{$rnpage}",i)
TempStr1 = Replace(TempStr1,"{$s}",Request("s"))
TempPage = TempPage & TempStr1
End If
Next
TempStr2 = Replace(TempStr3(0),"{$pagenum}",TempPage)
TempStr2 = Replace(TempStr2,"{$ThisPageNum}",ThisPageNum)
TempStr2 = Replace(TempStr2,"{$pagelistnum}",Dvbbs.Forum_Setting(11))
TempStr2 = Replace(TempStr2,"{$SearchStr}",SearchStr)
TempStr2 = Replace(TempStr2,"{$alertcolor}",Dvbbs.mainsetting(1))
TempStr = Replace(TempStr,"{$pagelist}",TempStr2)
End If
TempStr = Replace(TempStr,"{$pagelist}","")
Response.Write TempStr
End Function
Function reUBBCode(strContent)
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
strContent=replace(strContent," "," ")
re.Pattern="(\[QUOTE\])(.|\n)*(\[\/QUOTE\])"
strContent=re.Replace(strContent,"$2")
re.Pattern="(\[point=*([0-9]*)\])(.|\n)*(\[\/point\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[post=*([0-9]*)\])(.|\n)*(\[\/post\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[power=*([0-9]*)\])(.|\n)*(\[\/power\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[usercp=*([0-9]*)\])(.|\n)*(\[\/usercp\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[money=*([0-9]*)\])(.|\n)*(\[\/money\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[replyview\])(.|\n)*(\[\/replyview\])"
strContent=re.Replace(strContent," ")
re.Pattern="(\[usemoney=*([0-9]*)\])(.|\n)*(\[\/usemoney\])"
strContent=re.Replace(strContent," ")
re.Pattern="\[username=(.[^\[]*)\](.[^\[]*)\[\/username\]"
strContent=re.Replace(strContent," ")
strContent=replace(strContent,"<I></I>","")
set re=Nothing
reUBBCode=strContent
End Function
'截取指定字符
Function cutStr(str,strlen)
'去掉所有HTML标记
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="<(.[^>]*)>"
str=re.Replace(str,"")
set re=Nothing
str = Dvbbs.HTMLEncode(str)
Dim l,t,c,i
l=Len(str)
t=0
For i=1 to l
c=Abs(Asc(Mid(str,i,1)))
If c>255 Then
t=t+2
Else
t=t+1
End If
If t>=strlen Then
cutStr=left(str,i)&"..."
Exit For
Else
cutStr=str
End If
Next
End Function
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -