Search.Asp
上传用户:btntkt
上传日期:2021-04-16
资源大小:5296k
文件大小:7k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

DOS

  1. <!--#include file="Inc/SysConfig.Asp"-->
  2. <!--#include file="inc/Page_Cls.Asp"-->
  3. <%
  4. Dim Action,Key,strPageInfo
  5. If Not YxBBs.Founduser Then YxBBs.Error("您还没有注册或者登陆!")
  6. If YxBBs.BoardID >0 Then YxBBs.CheckBoard()
  7. Call YxBBs.Head("论坛搜索")
  8. Key=GetKey("Key")
  9. If len(Key)>20 Then YxBBs.Error("搜索关键字超过了限制!")
  10. If Key<>"" Then
  11. SearchList()
  12. Else
  13. Main()
  14. End If
  15. YxBBs.Footer()
  16. Set YxBBs=Nothing
  17. Sub ListTop()
  18. Dim Temp
  19. Temp=YxBBs.Template.ReadTemplate("各项列表顶部")
  20. Temp=Replace(Temp,"{标题}","搜索关键字 <font color=red><u>"&Key&"</U></font>" )
  21. Response.Write Temp
  22. End Sub
  23. Sub ListBottom()
  24. Dim Temp
  25. Temp=YxBBs.Template.ReadTemplate("各项列表底部")
  26. Temp=Replace(Temp,"{分页}",strPageInfo)
  27. Response.Write Temp
  28. End Sub
  29. Function CheckKey(Keys)
  30. Keys=Replace(Keys,"#","")
  31. Keys=Replace(Keys,"  "," ")
  32. Keys=Replace(Keys,"]","")
  33. Keys=Replace(Keys,"[","[[]")
  34. Keys=Replace(Keys,"%","[%]")
  35. CheckKey=Replace(Keys,"_","[_]")
  36. End Function
  37. Function SplitKey(Col,Key)
  38. Dim KeyNum,Keys
  39. Keys=Split(Key," ")
  40. For KeyNum=0 To Ubound(Keys)
  41. SplitKey=SplitKey&Col&" like '%"&CheckKey(Keys(KeyNum))&"%' Or "
  42. Next
  43. SplitKey="("&Left(SplitKey,Len(SplitKey)-4)&")"
  44. End Function
  45. Sub SearchList()
  46. Dim intPageNow,arr_Rs,i,Pages,TopicImg,Conut,page
  47. Dim SType,STime,SQLwhere
  48. Dim Temp,TopicS,Caption,Content,Facepic,Moodpic,LastRe,RePageUrl,UploadType,RePage,leftn,ii,NoShow,IsSearchInfo
  49. SType=YxBBs.CheckNum(Request.QueryString("SType"))
  50. STime=YxBBs.CheckNum(Request.QueryString("STime"))
  51. If SType=1 Then
  52. Sqlwhere=SplitKey("Name",Key)
  53. ElseIf SType=3 Then
  54. Sqlwhere=SplitKey("Caption",Key)&" or "&SplitKey("Name",Key)
  55. Else
  56. Sqlwhere=SplitKey("Caption",Key)
  57. End If
  58. If STime<>0 Then Sqlwhere=Sqlwhere&" And DATEDIFF('d',[AddTime],'"&YxBBs.NowBbsTime&"')<"&STime
  59. If YxBBs.BoardID >0 Then
  60. Sqlwhere=sqlwhere&" And (BoardID="&YxBBs.BoardID&" or TopType=5)"
  61. End If
  62. Sqlwhere=Sqlwhere&" and SqlTableID="&YxBBs.TB&" and IsDel=False"
  63. IsSearchInfo=False
  64. intPageNow = Request.QueryString("page")
  65. Set Pages = New Cls_PageView
  66. Pages.strTableName = "[YX_Topic]"
  67. Pages.strPageUrl = "?Action="&Action&"&Key="&Key&"&SType="&SType&"&TB="&YxBBs.TB&"&STime="&STime&"&BoardID="&YxBBs.BoardID
  68. Pages.strFieldsList = "TopicID,Face,Caption,Name,TopType,IsGood,AddTime,BoardID,LastTime,Hits,LastReply,UploadType,IsVote,ReplyNum,SqlTableID,IsLock"
  69. Pages.strCondiction = SqlWhere
  70. Pages.strOrderList = "TopicID desc"
  71. Pages.strPrimaryKey = "TopicID"
  72. Pages.intPageSize = Int(YxBBs.BBSSetting(26))
  73. Pages.intPageNow = intPageNow
  74. Pages.strCookiesName = "Search"&SType&STime&YxBBs.BoardID&YxBBs.TB
  75. Pages.Reloadtime=0
  76. Pages.strPageVar = "page"
  77. Pages.InitClass
  78. Arr_Rs = Pages.arrRecordInfo
  79. strPageInfo = Pages.strPageInfo
  80. Set Pages = nothing
  81. If IsArray(Arr_Rs) Then
  82. TopicImg=Split(YxBBs.Template.ReadTemplate("帖子状态图片"),"|")
  83. NoShow=YxBBs.NoShowTopic()
  84. For i = 0 to UBound(Arr_Rs, 2)
  85. If InStr(NoShow,","&Arr_Rs(7,I)&",")=0 Then
  86. IsSearchInfo=True
  87. Moodpic=TopicImg(6)
  88. If Arr_Rs(13,i) > Int(YxBBs.BBSSetting(24)) Then Moodpic=TopicImg(5)
  89. If Arr_Rs(5,i) Then Moodpic=TopicImg(3)
  90. If Arr_Rs(15,i) Then Moodpic=TopicImg(7)
  91. If Arr_Rs(12,i) Then Moodpic=TopicImg(4)
  92. If Arr_Rs(4,i)=5 Then Moodpic=TopicImg(0)
  93. If Arr_Rs(4,i)=4 Then Moodpic=TopicImg(1)
  94. If Arr_Rs(4,i)=3 Then Moodpic=TopicImg(2)
  95. Facepic=""
  96.                                 If Arr_Rs(1,i)<>99 then Facepic="<img src='Images/face/"&Arr_Rs(1,i)&".gIf'>"
  97. UploadType=""
  98. If Arr_Rs(11,i)<>"" Then Facepic="<img title='此帖子含有附件' src='Inc/Editor/images/common.gif' border=0> "
  99. LastRe=split(Arr_Rs(10,i),"|")
  100. RePage=Arr_Rs(13,i)10
  101. If RePage<Arr_Rs(13,i)/10 Then RePage=RePage+1
  102. RePageUrl="Show.Asp?ID="&Arr_Rs(0,i)
  103. leftn=40
  104. If RePage>1 Then leftn=36
  105. Caption=UploadType
  106. Caption=Caption&"<a href="&Repageurl&" title='发布时间:"&Arr_Rs(6,i)&"<br>最后回复:"&YxBBs.Fun.StrLeft(LastRe(1),20)&"'>"& Replace(YxBBs.Fun.StrLeft(Arr_Rs(2,i),leftn),Key,"<font color=red>"&Key&"</font>")&"</a>"
  107. If Repage>1 Then
  108. Caption=Caption&" <a href='"&RePageurl&"&page="&RePage&"'>[<font color=#FF0000>"&RePage&"</font>]</a>"
  109. End If
  110. If Datediff("n",Arr_Rs(8,i),YxBBs.NowbbsTime)<=180 Then Caption=Caption&TopicImg(8)
  111. Temp=YxBBs.Template.ReadTemplate("主题列表")
  112. Temp=Replace(Temp,"{状态}",Moodpic)
  113. Temp=Replace(Temp,"{主题}",Caption)
  114. Temp=Replace(Temp,"{表情}",Facepic)
  115. Temp=Replace(Temp,"{用户名称}","<a href='Profile.Asp?name="&Arr_Rs(3,i)&"' title='查看 "&Arr_Rs(3,i)&" 的资料'>"&Replace(Arr_Rs(3,i),Key,"<font color=red>"&Key&"</font>")&"</a>")
  116. Temp=Replace(Temp,"{回复数}",Arr_Rs(13,i))
  117. Temp=Replace(Temp,"{点击数}",Arr_Rs(9,i))
  118. Temp=Replace(Temp,"{最后时间}","<font title='时间:"&FORMATDATETIME(Arr_Rs(8,i),3)&"'>"&Datepart("yyyy",Arr_Rs(8,i))&"-"&Right(00&Datepart("m",Arr_Rs(8,i)),2)&"-"&Right(00&Datepart("D",Arr_Rs(8,i)),2)&"</font>")
  119. Temp=Replace(Temp,"{回复用户名称}","<a href='Profile.Asp?name="&LastRe(0)&"' title='查看 "&LastRe(0)&" 的资料'>"&LastRe(0)&"</a>")
  120. TopicS=TopicS&Temp
  121. End If
  122. Next
  123. End If
  124. If IsSearchInfo Then
  125. ListTop()
  126. Response.Write(TopicS)
  127. ListBottom()
  128. Else
  129. Caption="论坛搜索"
  130. Content="<div style='margin: 10;line-height:150%'>关键字<font color='red'> "&YxBBs.Fun.HtmlCode(key)&" </font>找不到任何结果!&nbsp;&nbsp;&nbsp;&nbsp;<li><a href=javascript:history.go(-1)>返回上一页</a><li><a href=Search.Asp>重新高级搜索</a><div>"
  131. Call YxBBs.ShowTable(Caption,Content)
  132. End If
  133. End Sub
  134. Sub Main()
  135. Dim Caption,Content
  136. Content="<form method='get' style='margin:0'><tr><td width='30%' height=30 align='right'>搜索关键字:</td><td width='70%'>&nbsp;<input type='text' name='Key' size=52 onkeyup=""ValidateTextboxAdd(this,'BtnSearch')"" onpropertychange=""ValidateTextboxAdd(this,'BtnSearch')""></td></tr>"&_
  137. "<tr><td height='30' align='right'>搜索类型:</td><td width='61%'>&nbsp;<input type='radio' value='1'  name='SType'> 按帖子作者 <input type='radio' name='SType' value='2'> 按帖子主题 <input type='radio' checked name='SType' value='3'>两者均搜</td></tr>"&_
  138. "<tr><td height='30' align='right'>搜索日期范围:</td><td >&nbsp;<select size='1' name='STime'><option selected value='0'>所有日期</option><option value='1'>1天以来</option><option value='2'>2天以来</option><option value='7'>7天以来</option><option value='15'>15天以来</option><option value='30'>30天以来</option></select></td></tr>"&_
  139. "<tr><td height='30' align='right'>搜索数据表范围:</td><td>&nbsp;"&TBList&"</td></tr>"&_
  140. "<tr><td height='30' align='right'>搜索的论坛:</td><td>&nbsp;<select name='BoardID'><option value='0'>搜索全部论坛...</option>"& YxBBs.BoardIDList(0,0)&"</select></td></tr>"&_
  141. "<tr><td height='30' align='center' colspan='2'><input type='submit' value=' 开 始 搜 索 ' ID='BtnSearch' disabled><input type='hidden' value='Topic' name='Action'></td></tr></form>"
  142. Caption="论坛搜索"
  143. Call YxBBs.ShowTable(Caption,Content)
  144. End Sub
  145. Function GetKey(str)
  146. Str=Request(str)
  147. Str=Replace(str,"'","")
  148. Str=Replace(str,chr(34)&chr(34),"")
  149. str=Replace(str,"[","[[]")
  150. GetKey=str
  151. End Function
  152. Function TBList()
  153. Dim AllTable,I,Temp
  154. AllTable=Split(YxBBs.BBSTable(0),",")
  155. For i=0 To uBound(AllTable)
  156. Temp=Temp&"<option value='"&AllTable(i)&"' " 
  157. If AllTable(i)=YxBBs.TB Then Temp=Temp&"selected"
  158. Temp=Temp&">数据表 "&AllTable(i)&"</option>"
  159. next
  160. TBList="<select name='TB'>"&Temp&"</select>"
  161. End Function
  162. %>