search_do.jsp
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:16k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html;charset=utf-8"%>
  2. <%@ page import="org.jdom.*"%>
  3. <%@ page import="org.jdom.output.*"%>
  4. <%@ page import="org.jdom.input.*"%>
  5. <%@ page import="java.util.Iterator"%>
  6. <%@ page import="com.redmoon.forum.OnlineInfo"%>
  7. <%@ page import="cn.js.fan.db.*"%>
  8. <%@ page import="cn.js.fan.util.*"%>
  9. <%@ page import="com.redmoon.forum.*"%>
  10. <%@ page import="java.util.*"%>
  11. <%@ page import="cn.js.fan.web.Global"%>
  12. <%@ page import="com.redmoon.forum.person.*"%>
  13. <%@ taglib uri="/WEB-INF/tlds/LabelTag.tld" prefix="lt" %>
  14. <%
  15. String skincode = UserSet.getSkin(request);
  16. if (skincode.equals(""))
  17. skincode = UserSet.defaultSkin;
  18. SkinMgr skm = new SkinMgr();
  19. Skin skin = skm.getSkin(skincode);
  20. if (skin==null)
  21. skin = skm.getSkin(UserSet.defaultSkin);
  22. String skinPath = skin.getPath();
  23. %>
  24. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  25. <title><lt:Label res="res.label.forum.search" key="search_result"/> - <%=Global.AppName%></title>
  26. <META http-equiv=Content-Type content="text/html; charset=utf-8">
  27. <%@ include file="../inc/nocache.jsp"%>
  28. <link href="<%=skinPath%>/skin.css" rel="stylesheet" type="text/css">
  29. <STYLE>
  30. TABLE {
  31. BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 1px
  32. }
  33. TD {
  34. BORDER-RIGHT: 0px; BORDER-TOP: 0px
  35. }
  36. body {
  37. margin-top: 0px;
  38. }
  39. </STYLE>
  40. <SCRIPT>
  41. // 展开帖子
  42. function loadThreadFollow(b_id,t_id,getstr){
  43. var targetImg2 =eval("document.all.followImg" + t_id);
  44. var targetTR2 =eval("document.all.follow" + t_id);
  45. if (targetImg2.src.indexOf("nofollow")!=-1){return false;}
  46. if ("object"==typeof(targetImg2)){
  47. if (targetTR2.style.display!="")
  48. {
  49. targetTR2.style.display="";
  50. targetImg2.src="images/minus.gif";
  51. if (targetImg2.loaded=="no"){
  52. document.frames["hiddenframe"].location.replace("listtree.jsp?id="+b_id+getstr);
  53. }
  54. }else{
  55. targetTR2.style.display="none";
  56. targetImg2.src="images/plus.gif";
  57. }
  58. }
  59. }
  60. </SCRIPT>
  61. <META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
  62. <BODY>
  63. <%@ include file="inc/header.jsp"%>
  64. <jsp:useBean id="StrUtil" scope="page" class="cn.js.fan.util.StrUtil"/>
  65. <jsp:useBean id="privilege" scope="page" class="com.redmoon.forum.Privilege"/>
  66. <jsp:useBean id="Topic" scope="page" class="com.redmoon.forum.MsgMgr" />
  67. <%
  68. if (!privilege.isUserLogin(request)) {
  69. response.sendRedirect("../door.jsp");
  70. return;
  71. }
  72. String querystring = StrUtil.getNullString(request.getQueryString());
  73. String privurl = request.getRequestURL()+"?"+StrUtil.UrlEncode(querystring,"utf-8");
  74. String boardcode = ParamUtil.get(request, "boardcode");
  75. String boardname = ParamUtil.get(request, "boardname");
  76. String timelimit = request.getParameter("timelimit");
  77. if (timelimit==null)
  78. timelimit = "all";
  79. %>
  80. <CENTER>
  81.   <TABLE borderColor=#edeced height=25 cellSpacing=0 cellPadding=1 rules=rows 
  82. width="98%" align=center bgColor=#ffffff border=1 class="table_normal">
  83.   <TBODY>
  84.   <TR>
  85.         <TD>&nbsp;<img src="images/userinfo.gif" width="9" height="9">&nbsp;<a>
  86.           <lt:Label res="res.label.forum.inc.position" key="cur_position"/>
  87.         </a>&nbsp;<a href="<%=request.getContextPath()%>/forum/index.jsp"><lt:Label res="res.label.forum.inc.position" key="forum_home"/></a>&nbsp;&nbsp;<B>&raquo;</B> 
  88.         <lt:Label res="res.label.forum.listtopic" key="search_result"/> &nbsp;</TD>
  89.     <TD align=right>
  90.   </TD></TR></TBODY></TABLE><BR>
  91.   <%
  92. String sql = "";
  93. String searchtype = StrUtil.getNullString(request.getParameter("searchtype"));
  94. String searchwhat = ParamUtil.get(request, "searchwhat");
  95. String selboard = ParamUtil.get(request, "selboard");
  96. if (selboard.equals(""))
  97. selboard = "allboard";
  98. String selauthor = ParamUtil.get(request, "selauthor");
  99. String myboardname = "", myboardcode = "";
  100. if (searchtype.equals("byauthor")) {
  101. UserDb ud = new UserDb();
  102. String nicks = ud.getNicksLike(searchwhat);
  103. if ( selauthor.equals("topicname"))
  104. sql = "select id from sq_thread where name in (" + nicks + ")";
  105. else if ( selauthor.equals("replyname"))
  106. sql = "select id from sq_thread where id in (select rootid from sq_message where name in (" + nicks + ")) and replyid<>-1";
  107. else
  108. sql = "select id from sq_thread where name in (" + nicks + ")";
  109. }
  110. else if (searchtype.equals("bykey"))
  111. {
  112. sql = "select id from sq_message where replyid=-1 and title like " + StrUtil.sqlstr("%"+searchwhat+"%");
  113. }
  114. else // 最新贴子
  115. sql = "select id from sq_thread where check_status=" + MsgDb.CHECK_STATUS_PASS;
  116. String sb="";
  117. if (selboard.equals("allboard")) {
  118. if (!searchtype.equals(""))
  119. sb = " and check_status=" + MsgDb.CHECK_STATUS_PASS;
  120. }
  121. else
  122. sb = " and boardcode=" + StrUtil.sqlstr(selboard) + " and check_status=" + MsgDb.CHECK_STATUS_PASS;
  123. sql += sb;
  124. String t1 = "";
  125. if (!timelimit.equals("all")) {
  126. long cur = System.currentTimeMillis();
  127. long dlt = Integer.parseInt(timelimit)*24*60*60000;
  128. long afterDay = cur - dlt;
  129. t1 = " and lydate>" + StrUtil.sqlstr("" + afterDay);
  130. }
  131. else
  132. t1 = "";
  133. sql += t1;
  134. String orderby = "";
  135. if (selboard.equals("allboard"))
  136. orderby = " ORDER BY lydate desc";
  137. else
  138. orderby = " ORDER BY msg_level desc,lydate desc";
  139. sql += orderby;
  140. int pagesize = 10;
  141. Paginator paginator = new Paginator(request);
  142. int curpage = paginator.getCurPage();
  143. PageConn pageconn = new PageConn(Global.defaultDB, curpage, pagesize);
  144. ResultIterator ri = pageconn.getResultIterator(sql);
  145. paginator.init(pageconn.getTotal(), pagesize);
  146. ResultRecord rr = null;
  147. // 设置当前页数和总页数
  148. int totalpages = paginator.getTotalPages();
  149. if (totalpages==0) {
  150. curpage = 1;
  151. totalpages = 1;
  152. }
  153. %>
  154. <TABLE borderColor=#edeced cellSpacing=0 cellPadding=1 width="98%" align=center border=1>
  155.   <TBODY>
  156.   <TR height=25>
  157.     <TD height="26" colSpan=3 align=middle noWrap background="<%=skinPath%>/images/bg1.gif" class="text_title"><lt:Label res="res.label.forum.listtopic" key="topis_list"/></TD>
  158.     <TD width=91 height="26" align=middle noWrap background="<%=skinPath%>/images/bg1.gif" class="text_title"><lt:Label res="res.label.forum.listtopic" key="author"/></TD>
  159.     <TD width=55 height="26" align=middle noWrap background="<%=skinPath%>/images/bg1.gif" class="text_title"><lt:Label res="res.label.forum.listtopic" key="reply"/></TD>
  160.     <TD width=55 height="26" align=middle noWrap background="<%=skinPath%>/images/bg1.gif" class="text_title"><lt:Label res="res.label.forum.listtopic" key="hit"/></TD>
  161.     <TD width=80 height="26" align=middle noWrap background="<%=skinPath%>/images/bg1.gif" class="text_title"><lt:Label res="res.label.forum.listtopic" key="reply_date"/></TD>
  162.         <TD width=91 height="26" align=middle noWrap background="<%=skinPath%>/images/bg1.gif" class="text_title"><lt:Label res="res.label.forum.mytopic" key="board"/></TD>
  163.   </TR>
  164.   </TBODY></TABLE>
  165. <%
  166. String topic = "",name="",lydate="",expression="";
  167. int id = -1;
  168. int i = 0,recount=0,hit=0,type=0;
  169. MsgDb md = new MsgDb();
  170. Leaf myleaf = new Leaf();
  171. Directory dir = new Directory();
  172. UserMgr um = new UserMgr();
  173. while (ri.hasNext()) {
  174.     rr = (ResultRecord)ri.next(); 
  175.   i++;
  176.   id = rr.getInt("id");
  177.   md = md.getMsgDb(id);
  178.   topic = md.getTitle();
  179.   name = md.getName();
  180.   lydate = com.redmoon.forum.ForumSkin.formatDateTime(request, md.getAddDate());
  181.   recount = md.getRecount();
  182.   hit = md.getHit();
  183.   expression = "" + md.getExpression();
  184.   type = md.getType();
  185.   myboardcode = md.getboardcode();
  186.   myleaf = dir.getLeaf(myboardcode);
  187.   myboardname = "";
  188.   if (myleaf!=null)
  189.   myboardname = myleaf.getName();
  190.   %>
  191.   <table bordercolor=#edeced cellspacing=0 cellpadding=1 width="98%" align=center border=1>
  192.     <tbody> 
  193.     <tr> 
  194.         <td noWrap align=middle width=30 bgcolor=#f8f8f8> 
  195.       <%if (recount>20){ %>
  196.           <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_hot"/>" src="images/f_hot.gif"> 
  197.           <%}
  198.   else if (recount>0) {%>
  199.           <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_reply"/>" src="images/f_new.gif"> 
  200.           <%}
  201.   else {%>
  202.           <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_no_reply"/>" src="images/f_norm.gif"> 
  203.           <%}%>
  204.     </td>
  205.         <td align=middle width=17 bgcolor=#ffffff> 
  206.           <% String urlboardname = StrUtil.UrlEncode(myboardname,"utf-8"); %>
  207.    <a href="showtopic_tree.jsp?boardcode=<%=myboardcode%>&hit=<%=(hit+1)%>&rootid=<%=id%>" target=_blank> 
  208.           <% if (type==1) { %>
  209.           <IMG height=15 alt="" src="images/f_poll.gif" width=17 border=0>
  210.   <%}else { %>
  211.   <img src="images/brow/<%=expression%>.gif" border=0>
  212.   <%}%>
  213.   </a></td>
  214.         <td onMouseOver="this.style.backgroundColor='#ffffff'" onMouseOut="this.style.backgroundColor=''" align=left bgcolor=#f8f8f8> 
  215.         <%
  216. if (recount==0) {
  217. %>
  218.           <img id=followImg<%=id%> title="<lt:Label res="res.label.forum.listtopic" key="no_reply"/>" src="images/minus.gif" loaded="no"> 
  219.           <% }else { %>
  220.           <img id=followImg<%=id%> title=<lt:Label res="res.label.forum.listtopic" key="extend_reply"/> style="CURSOR: hand" 
  221.       onClick=loadThreadFollow(<%=id%>,<%=id%>,"&boardcode=<%=myboardcode%>&hit=<%=hit+1%>&boardname=<%=urlboardname%>") src="images/plus.gif" loaded="no"> 
  222.           <% } %>
  223.           <a href="showtopic_tree.jsp?boardcode=<%=myboardcode%>&hit=<%=(hit+1)%>&rootid=<%=id%>"><%=topic%></a>
  224.           <%
  225. // 计算共有多少页回贴
  226. int allpages = (int)Math.ceil((double)recount/pagesize);
  227. if (allpages>1)
  228. {
  229.   out.print("[");
  230. for (int m=1; m<=allpages; m++)
  231. { %>
  232.           <a href="showtopic.jsp?boardcode=<%=myboardcode%>&hit=<%=(hit+1)%>&boardname=<%=urlboardname%>&rootid=<%=id%>&CPages=<%=m%>"><%=m%></a> 
  233.           <% }
  234.    out.print("]");
  235.  }%>
  236.         </td>
  237.       <td align=middle width=91 bgcolor=#ffffff> 
  238.      <% if (privilege.getUser(request).equals(name)) { %>
  239.           <IMG height=14 src="images/my.gif" width=14>
  240.   <% } %>
  241.   <a href="../userinfo.jsp?username=<%=name%>"><%=um.getUser(name).getNick()%></a> 
  242.       </td>
  243.         <td align=middle width=55 bgcolor=#f8f8f8><font color=red>[<%=recount%>]</font></td>
  244.         <td align=middle width=55 bgcolor=#ffffff><%=hit%></td>
  245.       <td align=left width=80 bgcolor=#f8f8f8> 
  246.         <table cellspacing=0 cellpadding=2 width="100%" align=center border=0>
  247.           <tbody> 
  248.           <tr> 
  249.             <td width="10%">&nbsp;</td>
  250.             <td><%=lydate%></td>
  251.           </tr>
  252.           </tbody> 
  253.         </table>
  254.       </td>
  255.       <td align=middle width=91 bgcolor=#ffffff>&nbsp;
  256.   <%if (!myboardcode.equals(Leaf.CODE_BLOG)) {%>
  257.   <a href="listtopic.jsp?boardcode=<%=StrUtil.UrlEncode(myboardcode)%>"><%=myboardname%></a>&nbsp;
  258.   <%}else{%>
  259.   <a href="../blog/myblog.jsp?userName=<%=StrUtil.UrlEncode(md.getName())%>"><%=myboardname%></a>
  260.   <%}%>
  261.   </td>
  262.     </tr>
  263.     <tr id=follow<%=id%> style="DISPLAY: none"> 
  264.       <td noWrap align=middle width=30 bgcolor=#f8f8f8>&nbsp;</td>
  265.       <td align=middle width=17 bgcolor=#ffffff>&nbsp;</td>
  266.       <td onMouseOver="this.style.backgroundColor='#ffffff'" 
  267.     onMouseOut="this.style.backgroundColor=''" align=left bgcolor=#f8f8f8 colspan="6">
  268.  <div id=followDIV<%=id%> 
  269.       style="WIDTH: 100%;BACKGROUND-COLOR: lightyellow" 
  270.       onClick=loadThreadFollow(<%=id%>,<%=id%>,"&hit=<%=hit+1%>&boardname=<%=urlboardname%>")><span style="WIDTH: 100%;">
  271.    <lt:Label res="res.label.forum.listtopic" key="wait"/>
  272.  </span></div>
  273. </td>
  274.     </tr>
  275.     <tr> 
  276.       <td 
  277.     style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px" 
  278.     colspan=5> 
  279.       </td>
  280.     </tr>
  281.     </tbody> 
  282.   </table>
  283. <%}%>
  284. <table width="98%" border="0" cellspacing="1" cellpadding="3" align="center" class="9black">
  285.     <tr> 
  286.       <td width="13%" height="23"><select name="selboard" onChange="if(this.options[this.selectedIndex].value!=''){location='listtopic.jsp?' + this.options[this.selectedIndex].value;}">
  287.         <option value="" selected>
  288.           <lt:Label res="res.label.forum.listtopic" key="sel_board"/>
  289.           </option>
  290.         <%
  291. LeafChildrenCacheMgr dlcm = new LeafChildrenCacheMgr("root");
  292. java.util.Vector vt = dlcm.getChildren();
  293. Iterator ir = vt.iterator();
  294. while (ir.hasNext()) {
  295. Leaf leaf = (Leaf) ir.next();
  296. String parentCode = leaf.getCode();
  297. if (leaf.getIsHome()) {
  298. %>
  299.         <option style="BACKGROUND-COLOR: #f8f8f8" value="">╋ <%=leaf.getName()%></option>
  300.         <%
  301. LeafChildrenCacheMgr dl = new LeafChildrenCacheMgr(parentCode);
  302. java.util.Vector v = dl.getChildren();
  303. Iterator ir1 = v.iterator();
  304. while (ir1.hasNext()) {
  305. Leaf lf = (Leaf) ir1.next();
  306. %>
  307.         <option value="boardcode=<%=StrUtil.UrlEncode(lf.getCode(),"utf-8")%>"> ├『<%=lf.getName()%>』</option>
  308.         <%}
  309. }
  310. }%>
  311.       </select>
  312.   <%if (!boardcode.equals("")) {%>
  313.  <script language=javascript>
  314. <!--
  315. var v = "boardcode=<%=StrUtil.UrlEncode(boardcode,"utf-8")%>";
  316. selboard.value = v;
  317. //-->
  318. </script>
  319.   <%}%>
  320.   </td>
  321.       <td height="23" align="right" valign="baseline"> 
  322.   <%
  323.   String querystr = "&searchtype="+searchtype+"&searchwhat="+StrUtil.UrlEncode(searchwhat,"utf-8");
  324.   querystr += "&selboard="+StrUtil.UrlEncode(selboard,"utf-8");
  325.   querystr += "&selauthor="+StrUtil.UrlEncode(selauthor,"utf-8")+"&timelimit="+timelimit;
  326.     out.print(paginator.getCurPageBlock(request, "search_do.jsp?boardcode=" + boardcode + "&boardname=" + StrUtil.UrlEncode(boardname,"utf-8") + querystr));
  327.   %>   </td>
  328.     </tr>
  329. </table>            
  330.   <TABLE cellSpacing=0 cellPadding=0 width="98%" border=0>
  331.   <TBODY>
  332.   <TR>
  333.     <TD><TABLE width="100%" border=0 align="center" 
  334.       cellPadding=0 cellSpacing=4 borderColor=#111111 style="BORDER-COLLAPSE: collapse">
  335.       <TBODY>
  336.         <TR>
  337.           <TD noWrap width=200><IMG height=12 alt="" 
  338.             src="<%=skinPath%>/images/f_new.gif" width=18 border=0>&nbsp;
  339.               <lt:Label res="res.label.forum.listtopic" key="topic_reply"/></TD>
  340.           <TD noWrap width=100><IMG height=12 alt="" 
  341.             src="<%=skinPath%>/images/f_hot.gif" width=18 border=0>&nbsp;
  342.               <lt:Label res="res.label.forum.listtopic" key="topic_hot"/>
  343.           </TD>
  344.           <TD noWrap width=100><IMG height=15 alt="" 
  345.             src="<%=skinPath%>/images/f_locked.gif" width=17 border=0>&nbsp;
  346.               <lt:Label res="res.label.forum.listtopic" key="topic_lock"/></TD>
  347.           <TD noWrap width=150><IMG src="images/topicgood.gif">
  348.               <lt:Label res="res.label.forum.listtopic" key="topic_elite"/></TD>
  349.           <TD noWrap width=150><IMG height=15 alt="" src="images/top_forum.gif" width=15 border=0>&nbsp;
  350.               <lt:Label res="res.label.forum.listtopic" key="topic_all_top"/></TD>
  351.         </TR>
  352.         <TR>
  353.           <TD noWrap width=200><IMG height=12 alt="" 
  354.             src="<%=skinPath%>/images/f_norm.gif" width=18 border=0>&nbsp;
  355.               <lt:Label res="res.label.forum.listtopic" key="topic_no_reply"/></TD>
  356.           <TD noWrap width=100><IMG height=15 alt="" 
  357.             src="<%=skinPath%>/images/f_poll.gif" width=17 border=0>&nbsp;
  358.               <lt:Label res="res.label.forum.listtopic" key="topic_vote"/></TD>
  359.           <TD noWrap width=100><IMG height=15 alt="" 
  360.             src="<%=skinPath%>/images/f_top.gif" width=15 border=0>&nbsp;
  361.               <lt:Label res="res.label.forum.listtopic" key="topic_top"/></TD>
  362.           <TD noWrap width=150><IMG height=14 src="<%=skinPath%>/images/my.gif" 
  363.             width=14>
  364.               <lt:Label res="res.label.forum.listtopic" key="topic_my"/></TD>
  365.           <TD noWrap width=150>&nbsp;</TD>
  366.         </TR>
  367.       </TBODY>
  368.     </TABLE></TD>
  369.     </TR></TBODY></TABLE>
  370. </CENTER>
  371. <%@ include file="inc/footer.jsp"%>
  372. </BODY></HTML>