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

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.web.*"%>
  9. <%@ page import="cn.js.fan.util.*"%>
  10. <%@ page import="com.redmoon.forum.*"%>
  11. <%@ page import="com.redmoon.forum.ui.*"%>
  12. <%@ page import="java.util.*"%>
  13. <%@ page import="cn.js.fan.web.Global"%>
  14. <%@ page import="com.redmoon.forum.person.*"%>
  15. <%@ taglib uri="/WEB-INF/tlds/LabelTag.tld" prefix="lt" %>
  16. <%
  17. String skincode = UserSet.getSkin(request);
  18. if (skincode.equals(""))
  19. skincode = UserSet.defaultSkin;
  20. SkinMgr skm = new SkinMgr();
  21. Skin skin = skm.getSkin(skincode);
  22. if (skin==null)
  23. skin = skm.getSkin(UserSet.defaultSkin);
  24. String skinPath = skin.getPath();
  25. %>
  26. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  27. <title><lt:Label res="res.label.forum.search" key="search_result"/> - <%=Global.AppName%></title>
  28. <META http-equiv=Content-Type content="text/html; charset=utf-8">
  29. <link href="<%=skinPath%>/skin.css" rel="stylesheet" type="text/css">
  30. <STYLE>
  31. TABLE {
  32. BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 1px
  33. }
  34. TD {
  35. BORDER-RIGHT: 0px; BORDER-TOP: 0px
  36. }
  37. body {
  38. margin-top: 0px;
  39. }
  40. </STYLE>
  41. <SCRIPT>
  42. // 展开帖子
  43. function loadThreadFollow(b_id,t_id,getstr){
  44. var targetImg2 =eval("document.all.followImg" + t_id);
  45. var targetTR2 =eval("document.all.follow" + t_id);
  46. if (targetImg2.src.indexOf("nofollow")!=-1){return false;}
  47. if ("object"==typeof(targetImg2)){
  48. if (targetTR2.style.display!="")
  49. {
  50. targetTR2.style.display="";
  51. targetImg2.src="images/minus.gif";
  52. if (targetImg2.loaded=="no"){
  53. document.frames["hiddenframe"].location.replace("listtree.jsp?id="+b_id+getstr);
  54. }
  55. }else{
  56. targetTR2.style.display="none";
  57. targetImg2.src="images/plus.gif";
  58. }
  59. }
  60. }
  61. function form1_onsubmit()
  62. {
  63. if (form1.selboard.value=="")
  64. {
  65. alert("<lt:Label res="res.label.forum.search" key="alert_board"/>");
  66. return false;
  67. }
  68. }
  69. </SCRIPT>
  70. <script src="../inc/common.js"></script>
  71. <META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
  72. <BODY>
  73. <jsp:useBean id="StrUtil" scope="page" class="cn.js.fan.util.StrUtil"/>
  74. <jsp:useBean id="privilege" scope="page" class="com.redmoon.forum.Privilege"/>
  75. <jsp:useBean id="Topic" scope="page" class="com.redmoon.forum.MsgMgr" />
  76. <%
  77. if (!privilege.isMasterLogin(request)) {
  78. out.print(SkinUtil.makeErrMsg(request, SkinUtil.LoadString(request, SkinUtil.PVG_INVALID)));
  79. return;
  80. }
  81. String op = ParamUtil.get(request, "op");
  82. String action = ParamUtil.get(request, "action");
  83. String checkStatus = ParamUtil.get(request, "checkStatus");
  84. if (checkStatus.equals(""))
  85. checkStatus = "1";
  86. MsgMgr mm = new MsgMgr();
  87. if (op.equals("del")) {
  88. String strIds = ParamUtil.get(request, "ids");
  89. String[] idsary = StrUtil.split(strIds, ",");
  90. if (idsary!=null) {
  91. int len = idsary.length;
  92. for (int i=0; i<len; i++) {
  93. mm.delTopic(application, request, Long.parseLong(idsary[i]));
  94. }
  95. }
  96. out.print(StrUtil.Alert_Redirect(SkinUtil.LoadString(request, "info_op_success"), "topic_m.jsp?checkStatus=" + checkStatus));
  97. }
  98. if (op.equals("check")) {
  99. String strIds = ParamUtil.get(request, "ids");
  100. String[] idsary = StrUtil.split(strIds, ",");
  101. if (idsary!=null) {
  102. int len = idsary.length;
  103. for (int i=0; i<len; i++) {
  104. mm.checkMsg(request, Long.parseLong(idsary[i]), MsgDb.CHECK_STATUS_PASS);
  105. }
  106. }
  107. out.print(StrUtil.Alert_Redirect(SkinUtil.LoadString(request, "info_op_success"), "topic_m.jsp?checkStatus=" + checkStatus));
  108. }
  109. if (op.equals("resume")) {
  110. String strIds = ParamUtil.get(request, "ids");
  111. String[] idsary = StrUtil.split(strIds, ",");
  112. if (idsary!=null) {
  113. int len = idsary.length;
  114. for (int i=0; i<len; i++) {
  115. mm.checkMsg(request, Long.parseLong(idsary[i]), MsgDb.CHECK_STATUS_PASS);
  116. }
  117. }
  118. out.print(StrUtil.Alert_Redirect(SkinUtil.LoadString(request, "info_op_success"), "topic_m.jsp?checkStatus=" + checkStatus));
  119. }
  120. String querystring = StrUtil.getNullString(request.getQueryString());
  121. String privurl = request.getRequestURL()+"?"+StrUtil.UrlEncode(querystring,"utf-8");
  122. String boardcode = ParamUtil.get(request, "boardcode");
  123. String boardname = ParamUtil.get(request, "boardname");
  124. String timelimit = request.getParameter("timelimit");
  125. if (timelimit==null)
  126. timelimit = "all";
  127. String selboard = ParamUtil.get(request, "selboard");
  128. String searchtype = ParamUtil.get(request, "searchtype");
  129. String searchwhat = ParamUtil.get(request, "searchwhat");
  130. if (selboard.equals(""))
  131. selboard = "allboard";
  132. String selauthor = ParamUtil.get(request, "selauthor");
  133. %>
  134. <CENTER>
  135.   <TABLE borderColor=#edeced height=25 cellSpacing=0 cellPadding=1 rules=rows 
  136. width="98%" align=center bgColor=#ffffff border=1 class="table_normal">
  137.   <TBODY>
  138.   <TR>
  139.         <TD>&nbsp;<a>
  140.           <lt:Label res="res.label.forum.topic_m" key="top_manage"/>
  141.         </a>&nbsp;</TD>
  142.         <TD align=right>
  143.   </TD></TR></TBODY></TABLE>
  144.   <TABLE width="98%" height=207 align="center" cellPadding=0 cellSpacing=0 
  145. borderColor=#666666 id=AutoNumber1 
  146. style="PADDING-RIGHT: 0px; BORDER-TOP: 1px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: 1px; PADDING-TOP: 0px; BORDER-BOTTOM: 1px; BORDER-COLLAPSE: collapse; BORDER-RIGHT-WIDTH: 1px">
  147.     <FORM name=form1 action="topic_m.jsp" method=post onSubmit="return form1_onsubmit()">
  148.       <TBODY>
  149.         <TR>
  150.           <TD height=22 
  151.     colSpan=2 background="<%=skinPath%>/images/bg1.gif" 
  152.     ><P align=center><SPAN class="text_title">
  153.             <lt:Label res="res.label.forum.search" key="input_keywards"/>
  154.           </SPAN> </P></TD>
  155.         </TR>
  156.         <TR bgColor=#f5f5f5>
  157.           <TD height=24 align="right" 
  158.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid"><lt:Label res="res.label.forum.search" key="search_content"/>
  159.             &nbsp;&nbsp;</TD>
  160.           <TD 
  161.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" 
  162.     vAlign=top height=24>&nbsp;
  163.               <input size=40 name=searchwhat value="<%=searchwhat%>">
  164.               <input name=boardcode value="<%=boardcode%>" type=hidden>
  165.               <input name=boardname value="<%=boardname%>" type=hidden>          <input name=action value="<%=action%>" type=hidden></TD>
  166.         </TR>
  167.         <TR bgColor=#f5f5f5>
  168.           <TD 
  169.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" height=22><P align=right><SPAN style="FONT-SIZE: 9pt">
  170.             <lt:Label res="res.label.forum.search" key="search_keywords"/>
  171.               </SPAN>
  172.                   <INPUT type=radio value=bykey name=searchtype checked>
  173.             &nbsp; </P></TD>
  174.           <TD 
  175.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" 
  176.     vAlign=top height=22>&nbsp;
  177.               <SELECT size=1 name=searchxm2>
  178.                 <OPTION value=topic selected>
  179.                 <lt:Label res="res.label.forum.search" key="search_topic_keywards"/>
  180.                 </OPTION>
  181.               </SELECT>
  182.           </TD>
  183.         </TR>
  184.         <TR bgColor=#f5f5f5>
  185.           <TD 
  186.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" 
  187.     width=210 height=24><P align=right><FONT style="FONT-SIZE: 9pt">
  188.             <lt:Label res="res.label.forum.search" key="search_author"/>
  189.             </FONT>
  190.                   <INPUT type=radio value=byauthor name=searchtype <%=searchtype.equals("byauthor")?"checked":""%>>
  191.               &nbsp; </P></TD>
  192.           <TD 
  193.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" 
  194.     vAlign=top height=24>&nbsp;
  195.               <SELECT size=1 name=selauthor>
  196.                 <OPTION value=topicname selected>
  197.                   <lt:Label res="res.label.forum.search" key="topic_author"/>
  198.                 </OPTION>
  199.                 <OPTION value=replyname>
  200.                   <lt:Label res="res.label.forum.search" key="reply_author"/>
  201.                 </OPTION>
  202.               </SELECT>          </TD>
  203.         </TR>
  204.         <TR bgColor=#f5f5f5>
  205.           <TD 
  206.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" 
  207.     width=210 height=23><P align=right><FONT style="FONT-SIZE: 9pt" 
  208.       color=#000000>
  209.             <lt:Label res="res.label.forum.search" key="scope_date"/>
  210.             &nbsp;</FONT>&nbsp; </P></TD>
  211.           <TD 
  212.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" 
  213.     vAlign=top height=23>&nbsp;
  214.               <SELECT size=1 name=timelimit>
  215.                 <OPTION value="all">
  216.                   <lt:Label res="res.label.forum.search" key="all_date"/>
  217.                 </OPTION>
  218.                 <OPTION value=1>
  219.                   <lt:Label res="res.label.forum.search" key="after_yestoday"/>
  220.                 </OPTION>
  221.                 <OPTION value=5 selected>
  222.                   <lt:Label res="res.label.forum.search" key="after_five_today"/>
  223.                 </OPTION>
  224.                 <OPTION value=10>
  225.                   <lt:Label res="res.label.forum.search" key="after_ten_today"/>
  226.                 </OPTION>
  227.                 <OPTION value=30>
  228.                   <lt:Label res="res.label.forum.search" key="after_30_today"/>
  229.                 </OPTION>
  230.               </SELECT>
  231.   <script>
  232.   form1.timelimit.value = "<%=timelimit%>";
  233.   </script></TD>
  234.         </TR>
  235.         <TR bgColor=#f5f5f5>
  236.           <TD 
  237.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" 
  238.     width=210 height=23><P align=right><FONT style="FONT-SIZE: 9pt" 
  239.       color=#000000><lt:Label res="res.label.forum.topic_m" key="check_status"/>
  240.           </FONT>&nbsp;&nbsp; </P></TD>
  241.           <TD 
  242.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" 
  243.     vAlign=top height=23>&nbsp;
  244.               <SELECT size=1 name="checkStatus">
  245.                 <OPTION value="<%=MsgDb.CHECK_STATUS_PASS%>" selected>
  246.                   <lt:Label res="res.label.forum.topic_m" key="check_pass"/>
  247.                 </OPTION>
  248.                 <OPTION value="<%=MsgDb.CHECK_STATUS_NOT%>">
  249.                   <lt:Label res="res.label.forum.topic_m" key="check_not"/>
  250.                 </OPTION>
  251.                 <OPTION value="<%=MsgDb.CHECK_STATUS_DUSTBIN%>">
  252.                   <lt:Label res="res.label.forum.topic_m" key="check_dustbin"/>
  253.                 </OPTION>
  254.               </SELECT>
  255.   <script>
  256.   form1.checkStatus.value = "<%=checkStatus%>";
  257.   </script>          </TD>
  258.         </TR>
  259.         <TR bgColor=#f5f5f5>
  260.           <TD 
  261.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" 
  262.     align=right width=210 bgColor=#f5f5f5 height=26><FONT 
  263.       style="FONT-SIZE: 9pt" color=#000000>
  264.             <lt:Label res="res.label.forum.search" key="sel_board"/>
  265.             &nbsp;&nbsp;</FONT></TD>
  266.           <TD 
  267.     style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" 
  268.     vAlign=center height=26>&nbsp;
  269.               <select name="selboard">
  270.                 <option value="allboard" selected>
  271.                   <lt:Label res="res.label.forum.search" key="all_board"/>
  272.                 </option>
  273. <%
  274. LeafChildrenCacheMgr dlcm = new LeafChildrenCacheMgr("root");
  275. java.util.Vector vt = dlcm.getChildren();
  276. Iterator ir = vt.iterator();
  277. while (ir.hasNext()) {
  278. Leaf leaf = (Leaf) ir.next();
  279. String parentCode = leaf.getCode();
  280. %>
  281.                 <option style="BACKGROUND-COLOR: #f8f8f8" value="">╋ <%=leaf.getName()%></option>
  282.                 <%
  283. LeafChildrenCacheMgr dl = new LeafChildrenCacheMgr(parentCode);
  284. java.util.Vector v = dl.getChildren();
  285. Iterator ir1 = v.iterator();
  286. while (ir1.hasNext()) {
  287. Leaf lf = (Leaf) ir1.next();
  288. %>
  289.                 <option value="<%=lf.getCode()%>"> ├『<%=lf.getName()%>』</option>
  290.                 <%}
  291. }%>
  292.               </select>
  293.               <script language=javascript>
  294. <!--
  295. var v = "<%=selboard%>";
  296. if (v!="")
  297. form1.selboard.value = v;
  298. //-->
  299. </script>
  300.             &nbsp;
  301.             <INPUT type=submit value=<lt:Label res="res.label.forum.search" key="begin_search"/> name=submit1>          </TD>
  302.         </TR>
  303.         <TR bgColor=#f5f5f5>
  304.           <TD style="BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid" 
  305.     colSpan=2 height=22></TD>
  306.         </TR>
  307.     </FORM>
  308.     </TBODY>
  309. </TABLE>
  310.   <BR>
  311.   <%
  312. String sql = "";
  313. String myboardname = "", myboardcode = "";
  314. if (searchtype.equals("byauthor")) {
  315. UserDb ud = new UserDb();
  316. String nicks = ud.getNicksLike(searchwhat);
  317. if ( selauthor.equals("topicname"))
  318. sql = "select id from sq_thread where name in (" + nicks + ")";
  319. else if ( selauthor.equals("replyname"))
  320. sql = "select id from sq_thread where id in (select rootid from sq_message where name in (" + nicks + ")) and replyid<>-1";
  321. else
  322. sql = "select id from sq_thread where name in (" + nicks + ")";
  323. }
  324. else if (searchtype.equals("bykey"))
  325. {
  326. sql = "select id from sq_message where replyid=-1 and title like " + StrUtil.sqlstr("%"+searchwhat+"%");
  327. }
  328. else
  329. sql = "select id from sq_thread";
  330. String sb="";
  331. if (selboard.equals("allboard")) {
  332. if (searchtype.equals(""))
  333. sb = " where check_status=" + checkStatus;
  334. else
  335. sb += " and check_status=" + checkStatus;
  336. }
  337. else
  338. sb = " and boardcode=" + StrUtil.sqlstr(selboard) + " and check_status=" + checkStatus;;
  339. sql += sb;
  340. String t1 = "";
  341. if (!timelimit.equals("all"))
  342. {
  343. // tl = " and TO_DAYS(NOW()) - TO_DAYS(lydate) <=" + timelimit;
  344. long cur = System.currentTimeMillis();
  345. long dlt = Integer.parseInt(timelimit)*24*60*60000;
  346. long afterDay = cur - dlt;
  347. t1 = " and lydate>" + StrUtil.sqlstr("" + afterDay);
  348. }
  349. else
  350. t1 = "";
  351. sql += t1;
  352. String orderby = "";
  353. if (selboard.equals("allboard"))
  354. orderby = " ORDER BY lydate desc";
  355. else
  356. orderby = " ORDER BY msg_level desc,lydate desc";
  357. sql += orderby;
  358. int pagesize = 10;
  359. Paginator paginator = new Paginator(request);
  360. int curpage = paginator.getCurPage();
  361. PageConn pageconn = new PageConn(Global.defaultDB, curpage, pagesize);
  362. ResultIterator ri = pageconn.getResultIterator(sql);
  363. paginator.init(pageconn.getTotal(), pagesize);
  364. ResultRecord rr = null;
  365. //设置当前页数和总页数
  366. int totalpages = paginator.getTotalPages();
  367. if (totalpages==0)
  368. {
  369. curpage = 1;
  370. totalpages = 1;
  371. }
  372. %>
  373.   <TABLE borderColor=#edeced cellSpacing=0 cellPadding=1 width="98%" align=center 
  374. border=1>
  375.   <TBODY>
  376.   <TR height=25 class="td_title">
  377.     <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>
  378.     <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>
  379.     <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>
  380.     <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>
  381.     <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>
  382.         <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>
  383.   </TR>
  384.   </TBODY></TABLE>
  385. <%
  386. String topic = "",name="",lydate="",expression="";
  387. int id = -1;
  388. int i = 0,recount=0,hit=0,type=0;
  389. MsgDb md = new MsgDb();
  390. Leaf myleaf = new Leaf();
  391. Directory dir = new Directory();
  392. com.redmoon.forum.person.UserMgr um = new com.redmoon.forum.person.UserMgr();
  393. while (ri.hasNext()) {
  394.     rr = (ResultRecord)ri.next(); 
  395.   i++;
  396.   id = rr.getInt("id");
  397.   md = md.getMsgDb(id);
  398.   topic = md.getTitle();
  399.   name = md.getName();
  400.   lydate = com.redmoon.forum.ForumSkin.formatDate(request, md.getAddDate());
  401.   recount = md.getRecount();
  402.   hit = md.getHit();
  403.   expression = "" + md.getExpression();
  404.   type = md.getType();
  405.   myboardcode = md.getboardcode();
  406.   myleaf = dir.getLeaf(myboardcode);
  407.   myboardname = "";
  408.   if (myleaf!=null)
  409.   myboardname = myleaf.getName();
  410.   %>
  411.   <table bordercolor=#edeced cellspacing=0 cellpadding=1 width="98%" align=center border=1>
  412.     <tbody> 
  413.     <tr>
  414.       <td width=30 height="22" align=middle noWrap bgcolor=#f8f8f8><input name="ids" value="<%=id%>" type="checkbox"></td>
  415.       <td noWrap align=left width=50 bgcolor=#f8f8f8><%=md.getId()%></td> 
  416.         <td noWrap align=middle width=30 bgcolor=#f8f8f8> 
  417.       <%if (recount>20){ %>
  418.           <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_hot"/>" src="<%=skinPath%>/images/f_hot.gif"> 
  419.           <%}
  420.   else if (recount>0) {%>
  421.           <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_reply"/>" src="<%=skinPath%>/images/f_new.gif"> 
  422.           <%}
  423.   else {%>
  424.           <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_no_reply"/>" src="<%=skinPath%>/images/f_norm.gif"> 
  425.           <%}%>     </td>
  426.         <td align=middle width=17 bgcolor=#ffffff> 
  427.           <% String urlboardname = StrUtil.UrlEncode(myboardname,"utf-8"); %>
  428.    <a href="showtopic_tree.jsp?boardcode=<%=myboardcode%>&hit=<%=(hit+1)%>&rootid=<%=id%>" target=_blank> 
  429.           <% if (type==1) { %>
  430.           <IMG height=15 alt="" src="images/f_poll.gif" width=17 border=0>
  431.   <%}else { %>
  432.   <img src="images/brow/<%=expression%>.gif" border=0>
  433.   <%}%>
  434.   </a></td>
  435.         <td onMouseOver="this.style.backgroundColor='#ffffff'" onMouseOut="this.style.backgroundColor=''" align=left bgcolor=#f8f8f8> 
  436.         <%
  437. if (recount==0) {
  438. %>
  439.           <img id=followImg<%=id%> title="<lt:Label res="res.label.forum.listtopic" key="no_reply"/>" src="<%=skinPath%>/images/minus.gif" loaded="no"> 
  440.           <% }else { %>
  441.           <img id=followImg<%=id%> title=<lt:Label res="res.label.forum.listtopic" key="extend_reply"/> style="CURSOR: hand" onClick=loadThreadFollow(<%=id%>,<%=id%>,"&boardcode=<%=myboardcode%>&hit=<%=hit+1%>&boardname=<%=urlboardname%>") src="<%=skinPath%>/images/plus.gif" loaded="no"> 
  442.           <% } %>
  443.           <a target="_blank" href="showtopic_tree.jsp?boardcode=<%=myboardcode%>&hit=<%=(hit+1)%>&rootid=<%=id%>"><%=StrUtil.toHtml(topic)%></a>
  444.           <%
  445. // 计算共有多少页回贴
  446. int allpages = (int)Math.ceil((double)recount/pagesize);
  447. if (allpages>1)
  448. {
  449.   out.print("[");
  450. for (int m=1; m<=allpages; m++)
  451. { %>
  452.           <a target="_blank" href="showtopic.jsp?boardcode=<%=myboardcode%>&hit=<%=(hit+1)%>&boardname=<%=urlboardname%>&rootid=<%=id%>&CPages=<%=m%>"><%=m%></a> 
  453.           <% }
  454.    out.print("]");
  455.  }%>        </td>
  456.       <td align=middle width=91 bgcolor=#ffffff> 
  457.   <%if (privilege.getUser(request).equals(name)) { %>
  458.           <IMG height=14 src="<%=skinPath%>/images/my.gif" width=14>
  459.   <%}%>
  460.   <a href="../userinfo.jsp?username=<%=name%>"><%=um.getUser(name).getNick()%></a>      </td>
  461.         <td align=middle width=55 bgcolor=#f8f8f8><font color=red>[<%=recount%>]</font></td>
  462.         <td align=middle width=55 bgcolor=#ffffff><%=hit%></td>
  463.       <td align=left width=80 bgcolor=#f8f8f8> 
  464.         <table cellspacing=0 cellpadding=2 width="100%" align=center border=0>
  465.           <tbody> 
  466.           <tr> 
  467.             <td width="10%">&nbsp;</td>
  468.             <td><%=lydate%></td>
  469.           </tr>
  470.           </tbody> 
  471.         </table>      </td>
  472.       <td align=middle width=91 bgcolor=#ffffff>&nbsp;&nbsp;
  473.         <%if (!myboardcode.equals(Leaf.CODE_BLOG)) {%>
  474.         <a target=_blank href="listtopic.jsp?boardcode=<%=StrUtil.UrlEncode(myboardcode)%>"><%=myboardname%></a>&nbsp;
  475.         <%}else{%>
  476.         <a target=_blank href="../blog/myblog.jsp?userName=<%=StrUtil.UrlEncode(md.getName())%>"><%=myboardname%></a>
  477.         <%}%></td>
  478.     </tr>
  479.     <tr id=follow<%=id%> style="DISPLAY: none">
  480.       <td noWrap align=middle width=30 bgcolor=#f8f8f8>&nbsp;</td>
  481.       <td noWrap align=middle width=30 bgcolor=#f8f8f8>&nbsp;</td> 
  482.       <td noWrap align=middle width=30 bgcolor=#f8f8f8>&nbsp;</td>
  483.       <td align=middle width=17 bgcolor=#ffffff>&nbsp;</td>
  484.       <td onMouseOver="this.style.backgroundColor='#ffffff'" 
  485.     onMouseOut="this.style.backgroundColor=''" align=left bgcolor=#f8f8f8 colspan="6">
  486.  <div id=followDIV<%=id%> 
  487.       style="WIDTH: 100%;BACKGROUND-COLOR: lightyellow" 
  488.       onClick=loadThreadFollow(<%=id%>,<%=id%>,"&hit=<%=hit+1%>&boardname=<%=urlboardname%>")><span style="WIDTH: 100%;">
  489.    <lt:Label res="res.label.forum.listtopic" key="wait"/>
  490.  </span></div></td>
  491.     </tr>
  492.     <tr> 
  493.       <td 
  494.     style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px" 
  495.     colspan=7>      </td>
  496.     </tr>
  497.     </tbody> 
  498.   </table>
  499. <%}%>
  500. <table width="98%" border="0" cellspacing="1" cellpadding="3" align="center" class="9black">
  501.     <tr> 
  502.       <td width="51%" height="23" align="left">
  503.   <input value="<lt:Label res="res.label.forum.topic_m" key="sel_all"/>" type="button" onClick="selAllCheckBox('ids')">&nbsp;&nbsp;
  504.   <input value="<lt:Label res="res.label.forum.topic_m" key="clear_all"/>" type="button" onClick="clearAllCheckBox('ids')">&nbsp;&nbsp;
  505.   <%if (!action.equals("sel")) {%>
  506.   <input value="<lt:Label key="op_del"/>" type="button" onClick="doDel()">
  507.   <%}else{%>
  508.   <input type="button" value="<lt:Label key="ok"/>" onClick="sel()">
  509.   <%}%>
  510.   &nbsp;
  511.   <input name="button" type="button" onClick="doCheck()" value="<lt:Label res="res.label.forum.topic_m" key="check_pass"/>">
  512.   &nbsp;
  513.   <input name="button" type="button" onClick="doResume()" value="<lt:Label res="res.label.forum.topic_m" key="resume"/>">   
  514.   </td>
  515.       <td width="49%" align="right"><%
  516.   String querystr = "&searchtype="+searchtype+"&searchwhat="+StrUtil.UrlEncode(searchwhat,"utf-8");
  517.   querystr += "&selboard="+StrUtil.UrlEncode(selboard,"utf-8");
  518.   querystr += "&selauthor="+StrUtil.UrlEncode(selauthor,"utf-8")+"&timelimit="+timelimit + "&action=" + action;
  519.   querystr += "&checkStatus=" + checkStatus;
  520.     out.print(paginator.getCurPageBlock(request, "?boardcode=" + boardcode + querystr));
  521.   %></td>
  522.     </tr>
  523. </table>     
  524. <iframe width=0 height=0 src="" id="hiddenframe"></iframe>
  525. </CENTER>
  526. </BODY>
  527. <script>
  528. function doDel() {
  529. var ids = getCheckboxValue("ids");
  530. if (ids=="") {
  531. alert("<lt:Label res="res.label.forum.topic_m" key="need_id"/>");
  532. return;
  533. }
  534. window.location.href = "topic_m.jsp?op=del&checkStatus=<%=checkStatus%>&ids=" + ids;
  535. }
  536. function doCheck() {
  537. var ids = getCheckboxValue("ids");
  538. if (ids=="") {
  539. alert("<lt:Label res="res.label.forum.topic_m" key="need_id"/>");
  540. return;
  541. }
  542. window.location.href = "topic_m.jsp?op=check&checkStatus=<%=checkStatus%>&ids=" + ids;
  543. }
  544. function doResume() {
  545. var ids = getCheckboxValue("ids");
  546. if (ids=="") {
  547. alert("<lt:Label res="res.label.forum.topic_m" key="need_id"/>");
  548. return;
  549. }
  550. window.location.href = "topic_m.jsp?op=resume&checkStatus=<%=checkStatus%>&ids=" + ids;
  551. }
  552. function sel() {
  553. var ids = getCheckboxValue("ids");
  554. window.opener.selTopic(ids);
  555. window.close();
  556. }
  557. function selAllCheckBox(checkboxname){
  558. var checkboxboxs = document.all.item(checkboxname);
  559. if (checkboxboxs!=null)
  560. {
  561. // 如果只有一个元素
  562. if (checkboxboxs.length==null) {
  563. checkboxboxs.checked = true;
  564. }
  565. for (i=0; i<checkboxboxs.length; i++)
  566. {
  567. checkboxboxs[i].checked = true;
  568. }
  569. }
  570. }
  571. function clearAllCheckBox(checkboxname) {
  572. var checkboxboxs = document.all.item(checkboxname);
  573. if (checkboxboxs!=null)
  574. {
  575. // 如果只有一个元素
  576. if (checkboxboxs.length==null) {
  577. checkboxboxs.checked = false;
  578. }
  579. for (i=0; i<checkboxboxs.length; i++)
  580. {
  581. checkboxboxs[i].checked = false;
  582. }
  583. }
  584. }
  585. </script>
  586. </HTML>