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

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html;charset=utf-8"%>
  2. <%@ page import="com.redmoon.forum.err.*"%>
  3. <%@ page import="com.redmoon.forum.person.*"%>
  4. <%@ page import="com.redmoon.forum.ui.*"%>
  5. <%@ page import="org.jdom.*"%>
  6. <%@ page import="java.util.*"%>
  7. <%@ page import="org.jdom.output.*"%>
  8. <%@ page import="org.jdom.input.*"%>
  9. <%@ page import="com.redmoon.forum.*"%>
  10. <%@ page import="cn.js.fan.db.*"%>
  11. <%@ page import="cn.js.fan.util.*"%>
  12. <%@ page import="cn.js.fan.web.*"%>
  13. <%@ page import="com.redmoon.forum.plugin.*"%>
  14. <%@ page import="com.redmoon.forum.plugin.base.*"%>
  15. <%@ page import="cn.js.fan.security.*"%>
  16. <%@ page import="cn.js.fan.module.pvg.*" %>
  17. <%@ taglib uri="/WEB-INF/tlds/LabelTag.tld" prefix="lt" %>
  18. <%@ taglib uri="/WEB-INF/tlds/AdTag.tld" prefix="ad"%>
  19. <jsp:useBean id="StrUtil" scope="page" class="cn.js.fan.util.StrUtil"/>
  20. <jsp:useBean id="privilege" scope="page" class="com.redmoon.forum.Privilege"/>
  21. <%
  22. long pageBeginTime =  System.currentTimeMillis();
  23. String boardcode = ParamUtil.get(request, "boardcode");
  24. if (boardcode.equals("")) {
  25. out.print(StrUtil.Alert_Back(cn.js.fan.web.SkinUtil.LoadString(request, "res.label.forum.listtopic", "need_board")));
  26. return;
  27. }
  28. Leaf curleaf = new Leaf();
  29. curleaf = curleaf.getLeaf(boardcode);
  30. if (curleaf==null || !curleaf.isLoaded()) {
  31. out.print(StrUtil.makeErrMsg(cn.js.fan.web.SkinUtil.LoadString(request, "res.label.forum.listtopic", "no_board")));
  32. return;
  33. }
  34. try {
  35. privilege.checkCanEnterBoard(request, boardcode);
  36. }
  37. catch (ErrMsgException e) {
  38. response.sendRedirect("../info.jsp?info=" + StrUtil.UrlEncode(e.getMessage()));
  39. // e.printStackTrace();
  40. return;
  41. }
  42. String boardname = curleaf.getName();
  43. String strThreadType = ParamUtil.get(request, "threadType");
  44. int threadType = ThreadTypeDb.THREAD_TYPE_NONE;
  45. if (StrUtil.isNumeric(strThreadType)) {
  46. threadType = Integer.parseInt(strThreadType);
  47. }
  48. UserSession.setBoardCode(request, boardcode);
  49. // 取得皮肤路径
  50. String skincode = curleaf.getSkin();
  51. if (skincode.equals("") || skincode.equals(UserSet.defaultSkin)) {
  52. skincode = UserSet.getSkin(request);
  53. if (skincode==null || skincode.equals(""))
  54. skincode = UserSet.defaultSkin;
  55. }
  56. SkinMgr skm = new SkinMgr();
  57. Skin skin = skm.getSkin(skincode);
  58. String skinPath = skin.getPath();
  59. String op = StrUtil.getNullString(request.getParameter("op"));
  60. //seo
  61. com.redmoon.forum.util.SeoConfig scfg = new com.redmoon.forum.util.SeoConfig();
  62. String seoTitle = scfg.getProperty("seotitle");
  63. String seoKeywords = scfg.getProperty("seokeywords");
  64. String seoDescription = scfg.getProperty("seodescription");
  65. String seoHead = scfg.getProperty("seohead");
  66. %>
  67. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  68. <HTML><HEAD><TITLE><%=boardname%> - <%=Global.AppName%> <%=seoTitle%></TITLE>
  69. <%=seoHead%>
  70. <META http-equiv=Content-Type content="text/html; charset=utf-8">
  71. <META name="keywords" content="<%=seoKeywords%>">
  72. <META name="description" content="<%=seoDescription%>">
  73. <style>
  74. <!--
  75. #navDiv {
  76.       float:left;
  77.       width:100%;
  78.       line-height:normal;
  79.       }
  80. #navDiv td {
  81.       float:left;
  82.       background:url("images/tag_l.gif") no-repeat left top;
  83.       margin:0;
  84.       padding:0 0 0 5px;
  85.       text-decoration:none;
  86.   height:100%;
  87. }
  88. #navDiv span {
  89.       float:left;
  90.       display:block;
  91.       background:url("images/tag_r.gif") no-repeat right top;
  92.       padding:5px 5px 5px 0px;
  93.       color:#FFF;
  94.   height:100%;
  95.   text-align: center;
  96.   vertical-align: middle;
  97. }
  98. #navDiv span {float:none;}
  99. #navDiv a {
  100. color:#FFF;
  101. }
  102. #navDiv .td_hover {
  103.       background-position:0% -42px;
  104. }
  105. #navDiv .td_hover span {
  106.       background-position:100% -42px;
  107. }
  108. #navDiv .header {
  109.       background-position:0% -42px;
  110.   
  111. }
  112. #navDiv .header span {
  113.       background-position:100% -42px;
  114. }
  115. -->
  116. </style>
  117. <LINK href="<%=skinPath%>/skin.css" type=text/css rel=stylesheet>
  118. <SCRIPT>
  119. function openWin(url,width,height)
  120. {
  121.   var newwin = window.open(url,"_blank","toolbar=no,location=no,directories=no,status=no,menubar=no,top=50,left=120,width="+width+",height="+height);
  122. }
  123. function loadonline(boardcode){
  124. var targetImg = eval("document.all.followImg000");
  125. var targetDiv = eval("document.all.followDIV000");
  126. if (targetImg.src.indexOf("nofollow")!=-1){return false;}
  127. if ("object"==typeof(targetImg)){
  128. if (targetDiv.style.display!='block')
  129. {
  130. targetDiv.style.display="block";
  131. targetImg.src="images/minus.gif";
  132. advance.innerText="<lt:Label res="res.label.forum.listtopic" key="close_online"/>";
  133. if (targetImg.loaded=="no")
  134. document.frames["hiddenframe"].location.replace("online.jsp?boardcode="+boardcode);
  135. }
  136. else
  137. {
  138. targetDiv.style.display="none";
  139. targetImg.src="images/plus.gif";
  140. advance.innerText="<lt:Label res="res.label.forum.listtopic" key="show_online"/>"
  141. }
  142. }
  143. }
  144. // 展开帖子
  145. function loadThreadFollow(b_id,t_id,getstr){
  146. var targetImg2 =eval("document.all.followImg" + t_id);
  147. var targetTR2 =eval("document.all.follow" + t_id);
  148. if (targetImg2.src.indexOf("nofollow")!=-1){return false;}
  149. if ("object"==typeof(targetImg2)){
  150. if (targetTR2.style.display!="")
  151. {
  152. targetTR2.style.display="";
  153. targetImg2.src="<%=skinPath%>/images/minus.gif";
  154. }else{
  155. targetTR2.style.display="none";
  156. targetImg2.src="<%=skinPath%>/images/plus.gif";
  157. }
  158. }
  159. }
  160. </SCRIPT>
  161. <META content="MSHTML 6.00.2600.0" name=GENERATOR>
  162. <style type="text/css">
  163. <!--
  164. #navDiv {      float:left;
  165.       width:100%;
  166.       line-height:normal;
  167. }
  168. -->
  169. </style>
  170. </HEAD>
  171. <BODY leftmargin="0" topMargin=0>
  172. <%@ include file="inc/header.jsp"%>
  173. <%@ include file="inc/position.jsp"%>
  174. <%@ include file="../inc/inc.jsp"%>
  175. <ad:AdTag type="<%=AdDb.TYPE_TEXT%>" boardCode="<%=boardcode%>"></ad:AdTag>
  176. <jsp:useBean id="Topic" scope="page" class="com.redmoon.forum.MsgMgr" />
  177. <jsp:useBean id="userservice" scope="page" class="com.redmoon.forum.person.userservice" />
  178. <%
  179. String querystring = StrUtil.getNullString(request.getQueryString());
  180. String privurl=request.getRequestURL()+"?"+StrUtil.UrlEncode(querystring,"utf-8");
  181. // 登记访客
  182. try {
  183. privilege.enrolGuest(request,response);
  184. }
  185. catch (UserArrestedException e) {
  186. response.sendRedirect("info.jsp?info=" + StrUtil.UrlEncode(e.getMessage()));
  187. return;
  188. }
  189. // 刷新在位时间
  190. userservice.refreshStayTime(request,response);
  191. String timelimit = request.getParameter("timelimit");
  192. if (timelimit==null)
  193. timelimit = "all";
  194. String brule = StrUtil.getNullString(curleaf.getBoardRule());
  195. if (!brule.equals("")) {%>
  196. <TABLE bordercolor="<%=skin.getTableBorderClr()%>" height=25 cellSpacing=0 cellPadding=2 rules=rows 
  197. width="98%" align=center bgColor=#ffffff border=1 class="table_normal">
  198.   <TBODY>
  199.     <TR>
  200.       <TD><lt:Label res="res.label.forum.listtopic" key="rule"/>
  201.   <%=brule%>
  202.   </TD>
  203.     </TR>
  204.   </TBODY>
  205. </TABLE>
  206. <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  207. <tr><td height="5"></td></tr>
  208. </table>
  209. <%}%>
  210. <%
  211. PluginMgr pm = new PluginMgr();
  212. Vector vplugin = pm.getAllPluginUnitOfBoard(boardcode);
  213. if (vplugin.size()>0) {
  214. Iterator irplugin = vplugin.iterator();
  215. while (irplugin.hasNext()) {
  216. PluginUnit pu = (PluginUnit)irplugin.next();
  217. IPluginUI ipu = pu.getUI(request, response, out);
  218. IPluginViewListThread pv = ipu.getViewListThread(boardcode);
  219. String rule = pv.render(UIListThread.POS_RULE);
  220. if (!rule.equals("") && pv.IsPluginBoard()) {
  221. %>
  222. <TABLE bordercolor="<%=skin.getTableBorderClr()%>" height=25 cellSpacing=0 cellPadding=2 rules=rows width="98%" align=center bgColor=#ffffff border=1 class="table_normal">
  223.   <TBODY>
  224.     <TR>
  225.       <TD>
  226. <!--plugin rule--><%out.print(pu.getName(request) + ":&nbsp;" + rule + "<BR>");%>
  227.   </TD>
  228.     </TR>
  229.   </TBODY>
  230. </TABLE>
  231. <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  232. <tr><td height="5"></td></tr>
  233. </table>
  234. <% }
  235. }
  236. }%>
  237. <%if (curleaf.getChildCount()>0) {
  238. if (curleaf.getDisplayStyle()==Leaf.DISPLAY_STYLE_VERTICAL) {
  239. %>
  240.   <br>
  241.   <table bordercolor="<%=skin.getTableBorderClr()%>" cellspacing=0 cellpadding=0 width="98%" align=center border=1 class="table_normal">
  242.     <tbody>
  243.       <tr align="left">
  244.         <td height="26" colspan="4" nowrap background="<%=skinPath%>/images/bg1.gif"><span class="text_title">&nbsp; <%=boardname%> </span></td>
  245.       </tr>
  246.       <%
  247. PluginMgr pmnote = new PluginMgr();
  248.    MsgDb md = new MsgDb();
  249. LeafChildrenCacheMgr lccm = new LeafChildrenCacheMgr(boardcode);
  250. java.util.Vector v3 = lccm.getChildren();
  251. Iterator ir3 = v3.iterator();
  252. while (ir3.hasNext()) {
  253. Leaf lf = (Leaf) ir3.next();
  254. md = md.getMsgDb(lf.getAddId());
  255. %>
  256.       <tr>
  257.         <td width="49" align="center"><%if (lf.isLocked()) {%>
  258.           <img alt="<lt:Label res="res.label.forum.index" key="board_lock"/>" src="<%=skinPath%>/images/board_lock.gif">
  259.           <%}else{%>
  260.           <%if (lf.getTodayCount()>0) {%>
  261.           <img alt="<lt:Label res="res.label.forum.index" key="board_new"/>" src="<%=skinPath%>/images/board_new.gif">
  262.           <%}else{%>
  263.           <img alt="<lt:Label res="res.label.forum.index" key="board_nonew"/>" src="<%=skinPath%>/images/board_nonew.gif">
  264.           <%}%>
  265.         <%}%></td>
  266.         <td><table width="100%" height="65" border="0" cellpadding="0" cellspacing="0" >
  267.             <tr>
  268.               <td width="47%" height="23">『 <a href="<%=ForumPage.getListTopicPage(request, lf.getCode())%>"><%=lf.getName()%></a> 』
  269.                   <%
  270. Vector vplugin1 = pmnote.getAllPluginUnitOfBoard(lf.getCode());
  271. if (vplugin1.size()>0) {
  272. out.print("<font color=#aaaaaa>");
  273. Iterator irpluginnote = vplugin1.iterator();
  274. while (irpluginnote.hasNext()) {
  275. PluginUnit pu = (PluginUnit)irpluginnote.next();
  276. out.print(pu.getName(request) + "&nbsp;");
  277. }
  278. out.print("</font>");
  279. }
  280. %>
  281.               </td>
  282.               <td width="23%" rowspan="2" align="right" valign="middle"><%
  283.   String logo = StrUtil.getNullString(lf.getLogo());
  284.   if (!logo.equals("")) {
  285.   %>
  286.                   <img src="images/board_logo/<%=logo%>" align="absmiddle">&nbsp;&nbsp;
  287.                   <%}%>
  288.               </td>
  289.               <td width="30%" rowspan="2"><table width="100%" border="0" cellpadding="0" >
  290.                 <tr>
  291.                   <td><lt:Label res="res.label.forum.listtopic" key="topic"/><a href="<%=ForumPage.getShowTopicPage(request, md.getId())%>"><%=md.getTitle()%></a></td>
  292.                 </tr>
  293.                 <tr>
  294.                   <td><lt:Label res="res.label.forum.listtopic" key="post"/>
  295.                     <%if (md.isLoaded()) {%>
  296.                       <a href="../userinfo.jsp?username=<%=StrUtil.UrlEncode(md.getName())%>"><%=md.getName()%></a>
  297.                       <%}%>
  298.                   </td>
  299.                 </tr>
  300.                 <tr>
  301.                   <td><lt:Label res="res.label.forum.listtopic" key="date"/><%=DateUtil.format(md.getAddDate(), "yy-MM-dd HH:mm")%>&nbsp;<img src="images/lastpost.gif" width="11" height="10"></td>
  302.                 </tr>
  303.               </table></td>
  304.             </tr>
  305.             <tr>
  306.               <td><img src="images/readme.gif" width="10" height="10">&nbsp;<%=lf.getDescription()%> </td>
  307.             </tr>
  308.             <tr>
  309.               <td height="23" colspan="2" bgcolor="#EEEEEE">&nbsp;<lt:Label res="res.label.forum.listtopic" key="manager"/>
  310.                   <%
  311.   MsgMgr mm = new MsgMgr();
  312.   Vector managers = mm.getBoardManagers(lf.getCode());
  313.   Iterator irmgr = managers.iterator();
  314.   while (irmgr.hasNext()) {
  315.    UserDb user = (UserDb) irmgr.next();
  316.   %>
  317.                   <a href="../userinfo.jsp?username=<%=StrUtil.UrlEncode(user.getName())%>"><%=user.getName()%></a>&nbsp;
  318.                   <%}%>
  319.               </td>
  320.               <td height="23" valign="center" bgcolor="#EEEEEE">&nbsp;<img alt="<lt:Label res="res.label.forum.listtopic" key="today_post"/>" src="images/Forum_today.gif" width="25" height="10" align="absmiddle">&nbsp;&nbsp;<%=lf.getTodayCount()%>&nbsp;&nbsp;<img alt="<lt:Label res="res.label.forum.listtopic" key="topic_count"/>" src="images/Forum_topic.gif" width="25" height="10" align="absmiddle">&nbsp;&nbsp;<%=lf.getTopicCount()%>&nbsp;&nbsp;<img src="images/Forum_post.gif" alt="<lt:Label res="res.label.forum.listtopic" key="post_count"/>" width="25" height="10" align="absmiddle">&nbsp;<%=lf.getPostCount()%></td>
  321.             </tr>
  322.         </table></td>
  323.       </tr>
  324.       <%}%>
  325.     </tbody>
  326. </table>
  327.   <br>
  328. <%}else{%>
  329.   <br>
  330.   <table bordercolor="<%=skin.getTableBorderClr()%>" cellspacing=0 cellpadding=0 width="98%" align=center border=1 class="table_normal">
  331.     <tbody>
  332.       <%
  333. PluginMgr pmnote = new PluginMgr();
  334.    MsgDb md = new MsgDb();
  335. LeafChildrenCacheMgr lccm = new LeafChildrenCacheMgr(boardcode);
  336. java.util.Vector v3 = lccm.getChildren();
  337. Iterator ir3 = v3.iterator();
  338. int colCount = 4;
  339. int curCol = 0;
  340. while (ir3.hasNext()) {
  341. Leaf lf = (Leaf) ir3.next();
  342. md = md.getMsgDb(lf.getAddId());
  343. if (curCol==0)
  344. out.print("<tr>");
  345. %>
  346.         <td><table width="100%" height="65" border="0" cellpadding="0" cellspacing="0" >
  347.             <tr>
  348.               <td width="47%" height="22" align="center">『 <a href="<%=ForumPage.getListTopicPage(request, lf.getCode())%>"><%=lf.getName()%></a> 』
  349. <%
  350. Vector vplugin1 = pmnote.getAllPluginUnitOfBoard(lf.getCode());
  351. if (vplugin1.size()>0) {
  352. out.print("<font color=#aaaaaa>");
  353. Iterator irpluginnote = vplugin1.iterator();
  354. while (irpluginnote.hasNext()) {
  355. PluginUnit pu = (PluginUnit)irpluginnote.next();
  356. out.print(pu.getName(request) + "&nbsp;");
  357. }
  358. out.print("</font>");
  359. }
  360. %>              </td>
  361.             </tr>
  362.             <tr>
  363.               <td align="center" style="padding:5px">
  364.       <%
  365.   String logo = StrUtil.getNullString(lf.getLogo());
  366.   if (!logo.equals("")) {
  367.   %>
  368.                 <img src="images/board_logo/<%=logo%>" align="absmiddle" alt="<%=lf.getDescription()%>">&nbsp;&nbsp;
  369.               <%}%></td>
  370.             </tr>
  371.             <tr>
  372.               <td height="23" align="center" bgcolor="#EEEEEE">              &nbsp;<img alt="<lt:Label res="res.label.forum.listtopic" key="today_post"/>" src="images/Forum_today.gif" width="25" height="10" align="absmiddle">&nbsp;&nbsp;<%=lf.getTodayCount()%>&nbsp;&nbsp;<img alt="<lt:Label res="res.label.forum.listtopic" key="topic_count"/>" src="images/Forum_topic.gif" width="25" height="10" align="absmiddle">&nbsp;&nbsp;<%=lf.getTopicCount()%>&nbsp;&nbsp;<img src="images/Forum_post.gif" alt="<lt:Label res="res.label.forum.listtopic" key="post_count"/>" width="25" height="10" align="absmiddle">&nbsp;<%=lf.getPostCount()%></td>
  373.             </tr>
  374.         </table></td>
  375.       <%
  376.    curCol++;
  377.    if (curCol==colCount) {
  378.     out.print("</tr>");
  379. curCol = 0;
  380. }
  381.   }
  382.   int tds = colCount - curCol;
  383.   if (curCol!=0 && tds!=0) {
  384.    for (int k=0; k<tds; k++) {
  385. out.print("<td>&nbsp;</td>");
  386. }
  387. out.print("</tr>");
  388.   }
  389.   %>
  390.     </tbody>
  391. </table>
  392.   <br>  
  393.   <%}
  394. }%>
  395.   <TABLE cellSpacing=0 cellPadding=2 width="98%" align=center border=0>
  396.     <TBODY>
  397.       <TR> 
  398.         <TD width="50%"><%
  399. String addpage = "addtopic_new.jsp";
  400. if (curleaf.getWebeditAllowType()==Leaf.WEBEDIT_ALLOW_TYPE_REDMOON_FIRST)
  401. addpage = "addtopic_we.jsp";
  402. %>
  403. <A href="<%=addpage%>?boardcode=<%=boardcode%>&threadType=<%=threadType%>&privurl=<%=privurl%>"> 
  404.           <IMG src="<%=skinPath%>/images/post_<%=SkinUtil.getLocale(request)%>.gif" border=0 width=99 height=25 alt="<lt:Label res="res.label.forum.listtopic" key="post_btn"/>"></A>
  405. <a href="<%=addpage%>?isvote=1&boardcode=<%=boardcode%>&threadType=<%=threadType%>&privurl=<%=privurl%>"><img src="<%=skinPath%>/images/votenew_<%=SkinUtil.getLocale(request)%>.gif" border=0 width=99 height=25 alt="<lt:Label res="res.label.forum.listtopic" key="vote_btn"/>"></a>
  406. <%
  407. if (vplugin.size()>0) {
  408. Iterator irplugin = vplugin.iterator();
  409. while (irplugin.hasNext()) {
  410. PluginUnit pu = (PluginUnit)irplugin.next();
  411. IPluginUI ipu = pu.getUI(request, response, out);
  412. IPluginViewListThread pv = ipu.getViewListThread(boardcode);
  413. if (pv.IsPluginBoard() && pu.getType().equals(pu.TYPE_TOPIC) && !pu.getButton().equals("")) {%>
  414. <a href="<%=addpage%>?pluginCode=<%=pu.getCode()%>&boardcode=<%=StrUtil.UrlEncode(boardcode)%>&threadType=<%=threadType%>&privurl=<%=privurl%>"><img src="<%=skinPath + "/" + pu.getButton()%>_<%=SkinUtil.getLocale(request)%>.gif" border="0"></a>
  415. <%}
  416. }
  417. }
  418. %>
  419. <%
  420. Vector vplugin2 = curleaf.getAllPlugin2();
  421. Iterator irplugin2 = vplugin2.iterator();
  422. while (irplugin2.hasNext()) {
  423. com.redmoon.forum.plugin2.Plugin2Unit p2u = (com.redmoon.forum.plugin2.Plugin2Unit)irplugin2.next();
  424. %>
  425. <a href="<%=addpage%>?plugin2Code=<%=p2u.getCode()%>&boardcode=<%=StrUtil.UrlEncode(boardcode)%>&threadType=<%=threadType%>&privurl=<%=privurl%>"><img src="<%=skinPath + "/images/" + p2u.getButton()%>_<%=SkinUtil.getLocale(request)%>.gif" border="0"></a>
  426. <%}%>     </TD>
  427.         <TD align="right">
  428. <%
  429. int msgcount = 0;
  430. if (privilege.isUserLogin(request)) {
  431. %>
  432. <jsp:useBean id="Msg" scope="page" class="com.redmoon.forum.message.MessageMgr"/>
  433. <%
  434. msgcount = Msg.getNewMsgCount(request);
  435. %>
  436. <%if (msgcount>0) {%>
  437. <script language=javascript>
  438. openWin("../message/message.jsp",320,260);
  439. </script>
  440. <%
  441. }
  442. }
  443. %>
  444. <%if (msgcount>0) {%>
  445. <a href="javascript:openWin('../message/message.jsp',320,260)"><font color="#CC0000"><img src="images/brow/17.gif" border="0" align="absmiddle">&nbsp; <%=msgcount%>
  446. <lt:Label res="res.label.forum.listtopic" key="new_short_msg"/>
  447. </font></a>
  448. <%}%>&nbsp;<a href="<%=ForumPage.getListTopicPage(request, boardcode)%>" title="<lt:Label res="res.label.forum.showtopic" key="flat_view"/>"><img border=0 src="images/flatview.gif"></a>&nbsp;<a href="listtopic.jsp?op=showelite&boardcode=<%=boardcode%>">
  449. <lt:Label res="res.label.forum.listtopic" key="elite"/>
  450. </a>
  451.           <SELECT onChange="if(this.options[this.selectedIndex].value!=''){location=this.options[this.selectedIndex].value;}" 
  452.       name=select2>
  453.   <OPTION selected><lt:Label res="res.label.forum.listtopic" key="manager"/></OPTION>
  454.   <OPTION>-------</OPTION>
  455.   <%
  456.   String username = privilege.getUser(request);
  457.   // 置用户所在版块
  458.   if (username!=null && !username.equals("")) {
  459.    OnlineUserDb ou = new OnlineUserDb();
  460. ou = ou.getOnlineUserDb(username);
  461. ou.setUserInBoard(boardcode);
  462.   }
  463.   
  464.   MsgMgr mm = new MsgMgr();
  465.   Vector managers = mm.getBoardManagers(boardcode);
  466.   Iterator irmgr = managers.iterator();
  467.   boolean isUserBoardManager = false;
  468.   while (irmgr.hasNext()) {
  469.    UserDb user = (UserDb) irmgr.next();
  470. if (user.getName().equals(username))
  471. isUserBoardManager = true;
  472.   %>
  473.   <OPTION value="../userinfo.jsp?username=<%=StrUtil.UrlEncode(user.getName())%>"><%=user.getNick()%></OPTION>
  474.   <%}%>
  475.   </SELECT>&nbsp; <SELECT onChange="if(this.options[this.selectedIndex].value!=''){location=this.options[this.selectedIndex].value+'&op=<%=op%>';}" 
  476.       name=seltimelimit>
  477. <OPTION value="listtopic.jsp?boardcode=<%=boardcode%>&timelimit=all" selected><lt:Label res="res.label.forum.listtopic" key="topic_all"/></OPTION>
  478. <OPTION value="listtopic.jsp?boardcode=<%=boardcode%>&timelimit=1"><lt:Label res="res.label.forum.listtopic" key="topic_one_day"/></OPTION>
  479. <OPTION value="listtopic.jsp?boardcode=<%=boardcode%>&timelimit=2"><lt:Label res="res.label.forum.listtopic" key="topic_two_day"/></OPTION>
  480. <OPTION value="listtopic.jsp?boardcode=<%=boardcode%>&timelimit=7"><lt:Label res="res.label.forum.listtopic" key="topic_week"/></OPTION>
  481. <OPTION value="listtopic.jsp?boardcode=<%=boardcode%>&timelimit=15"><lt:Label res="res.label.forum.listtopic" key="topic_half_month"/></OPTION>
  482. <OPTION value="listtopic.jsp?boardcode=<%=boardcode%>&timelimit=30"><lt:Label res="res.label.forum.listtopic" key="topic_one_month"/></OPTION>
  483. <OPTION value="listtopic.jsp?boardcode=<%=boardcode%>&timelimit=60"><lt:Label res="res.label.forum.listtopic" key="topic_two_month"/></OPTION>
  484. <OPTION value="listtopic.jsp?boardcode=<%=boardcode%>&timelimit=180"><lt:Label res="res.label.forum.listtopic" key="topic_half_year"/></OPTION>
  485. </SELECT>
  486. <script language=javascript>
  487. </script>
  488. <script language=javascript><!--
  489. seltimelimit.value = "listtopic.jsp?boardcode=<%=boardcode%>&timelimit=<%=timelimit%>"
  490. //-->
  491. </script>
  492. &nbsp;
  493. <A href="javascript:this.location.reload()" title="<lt:Label res="res.label.forum.listtopic" key="refresh"/>"><IMG src="images/refresh.gif" border=0></A>
  494.   &nbsp;<a href="rss.jsp?boardCode=<%=StrUtil.UrlEncode(boardcode)%>"><img src="../images/rss.gif" alt="rss<lt:Label res="res.label.forum.listtopic" key="subscription"/>" width="36" height="14" border="0" align="absmiddle"></a></TD>
  495.       </TR>
  496.     </TBODY>
  497. </TABLE>
  498.   <table align="center" width="98%">
  499.     <tr>
  500.       <td height="2px"></td>
  501.     </tr>
  502.   </table>
  503.   <%
  504. ThreadTypeDb ttd = new ThreadTypeDb();
  505. Vector ttv = ttd.getThreadTypesOfBoard(boardcode);
  506. if (ttv.size()>0) {
  507. %>
  508.   <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
  509.     <tr>
  510.       <td height="5"></td>
  511.     </tr>
  512.     <tr>
  513.       <td><div id="navDiv">
  514.           <table cellpadding="0" cellspacing="1">
  515.             <tr>
  516.               <%
  517. Iterator ir = ttv.iterator();
  518. String className = "";
  519. while (ir.hasNext()) {
  520. ttd = (ThreadTypeDb)ir.next();
  521. if (ttd.getId()==threadType)
  522. className = "td_hover";
  523. else
  524. className = "";
  525. String ttName = ttd.getName();
  526. if (!ttd.getColor().equals(""))
  527. ttName = "<font color='" + ttd.getColor() + "'>" + ttName + "</font>";
  528. %>
  529.               <td class="<%=className%>" onMouseOver="this.className='td_hover'" onMouseOut="this.className='<%=className%>'"><span><a href="<%=ForumPage.getListTopicPage(request, boardcode, 1, 1, ttd.getId())%>"><%=ttName%></a></span></td>
  530.               <%}
  531. if (threadType==ThreadTypeDb.THREAD_TYPE_NONE)
  532. className = "td_hover";
  533. else
  534. className = "";
  535. %>
  536.               <td class="<%=className%>" onMouseOver="this.className='td_hover'" onMouseOut="this.className='<%=className%>'"><span><a href="<%=ForumPage.getListTopicPage(request, boardcode, 1, 1, ThreadTypeDb.THREAD_TYPE_NONE)%>">
  537.                 <lt:Label res="res.label.forum.listtopic" key="topic_all"/>
  538.               </a></span></td>
  539.             </tr>
  540.           </table>
  541.       </div></td>
  542.     </tr>
  543.   </table>
  544.   <%}%>
  545.   <%
  546. String sql = SQLBuilder.getListtopicSql(boardcode, op, timelimit, threadType);
  547. MsgDb msgdb = new MsgDb();
  548. int total = msgdb.getThreadsCount(sql, boardcode);
  549. int pagesize = 20;
  550. ForumPaginator paginator = new ForumPaginator(request, total, pagesize);
  551. int curpage = paginator.getCPage(request);
  552. int totalpages = paginator.getTotalPages();
  553. if (totalpages==0)
  554. {
  555. curpage = 1;
  556. totalpages = 1;
  557. }
  558. long start = (curpage-1)*pagesize;
  559. long end = curpage*pagesize;
  560. ThreadBlockIterator irmsg = msgdb.getThreads(sql, boardcode, start, end);
  561. %>
  562.   <TABLE borderColor=#edeced cellSpacing=0 cellPadding=1 width="98%" align=center border=1 class="list">
  563.     <TBODY>
  564.       <TR height=25> 
  565.         <TD height="26" colSpan=3 align=middle noWrap background="<%=skinPath%>/images/bg1.gif" class="text_title">
  566. <lt:Label res="res.label.forum.listtopic" key="topis_list"/></TD>
  567.         <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>
  568.         <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>
  569.         <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>
  570.         <TD width=80 height="26" align=middle noWrap background="<%=skinPath%>/images/bg1.gif" class="list_title_date"><lt:Label res="res.label.forum.listtopic" key="reply_date"/></TD>
  571.       </TR>
  572.     </TBODY>
  573.   </TABLE>
  574. <%
  575. String id="",topic = "",name="",lydate="",rename="",redate="";
  576. int level=0,iselite=0,islocked=0,expression=0;
  577. int i = 0,recount=0,hit=0,type=0;
  578. // 取出论坛置顶的贴子
  579. ForumDb forum = new ForumDb();
  580. long[] topmsgs = forum.getTopMsgs();
  581. int tlen = topmsgs.length;
  582. com.redmoon.forum.person.UserMgr um = new com.redmoon.forum.person.UserMgr();
  583. UserDb ud = null;
  584. UserDb reUserDb = null;
  585. while (i<tlen) {
  586.     msgdb = msgdb.getMsgDb((int)topmsgs[i]);
  587.   i++;
  588.   id = ""+msgdb.getId();
  589.   topic = StrUtil.toHtml(msgdb.getTitle());
  590.   name = msgdb.getName();
  591.   ud = um.getUser(name);
  592.   lydate = com.redmoon.forum.ForumSkin.formatDateTime(request, msgdb.getAddDate());
  593.   recount = msgdb.getRecount();
  594.   hit = msgdb.getHit();
  595.   expression = msgdb.getExpression();
  596.   type = msgdb.getType();
  597.   iselite = msgdb.getIsElite();
  598.   islocked = msgdb.getIsLocked();
  599.   level = msgdb.getLevel();
  600.   rename = StrUtil.getNullString(msgdb.getRename());
  601.   if (!rename.equals(""))
  602.   reUserDb = um.getUser(rename);
  603.   redate = com.redmoon.forum.ForumSkin.formatDateTime(request, msgdb.getRedate());
  604.   %>
  605. <table class="list" bordercolor="<%=skin.getTableBorderClr()%>" cellspacing=0 cellpadding=1 width="98%" align=center border=1>
  606.     <tbody>
  607.       <tr> 
  608.         <td noWrap align=middle width=30 bgcolor=#f8f8f8> 
  609. <%if (recount>20){ %>
  610. <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_hot"/>" src="<%=skinPath%>/images/f_hot.gif"> 
  611. <%}
  612.    else if (recount>0) {%>
  613. <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_reply"/>" src="<%=skinPath%>/images/f_new.gif">
  614. <%}
  615.    else {%>
  616. <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_no_reply"/>" src="<%=skinPath%>/images/f_norm.gif">
  617. <%}%> </td>
  618.         <td class="list_td_emote" align=middle width=17 bgcolor=#ffffff> <% String urlboardname = StrUtil.UrlEncode(boardname,"utf-8"); %> <a href="<%=ForumPage.getShowTopicPage(request, 1, msgdb.getId(), msgdb.getId(), 1, "")%>" target=_blank> 
  619.           <% 
  620.   if (islocked==1) { %>
  621.           <IMG height=15 alt="" src="<%=skinPath%>/images/f_locked.gif" width=17 border=0> 
  622.           <% }
  623.   else {
  624.   if (type==1) { %>
  625.           <IMG height=15 alt="" src="<%=skinPath%>/images/f_poll.gif" width=17 border=0> 
  626.           <%}else { %>
  627.           <img src="images/brow/<%=expression%>.gif" border=0> 
  628.           <%}
  629.   } %>
  630.           </a></td>
  631.         <td onMouseOver="this.style.backgroundColor='#ffffff'" 
  632.     onMouseOut="this.style.backgroundColor=''" align=left bgcolor=#f8f8f8><%
  633. if (recount>0) {
  634. %>
  635.           <img id=followImg<%=id%> title="<lt:Label res="res.label.forum.listtopic" key="collapse_reply"/>" style="CURSOR: hand" onClick="loadThreadFollow(<%=id%>,<%=id%>,'&boardcode=<%=boardcode%>')" src="<%=skinPath%>/images/minus.gif" loaded="no">
  636.           <% }else { %>
  637.     <img id=followImg<%=id%> title="<lt:Label res="res.label.forum.listtopic" key="no_reply"/>" src="<%=skinPath%>/images/minus.gif" loaded="no">
  638.     <% } %>
  639.     <strong><lt:Label res="res.label.forum.listtopic" key="top"/></strong>
  640.     <!--<a href="showtopic_tree.jsp?rootid=<%=id%>">(树形)<%=topic%></a>-->
  641.     <%
  642.   String attIcon = MsgUtil.getIconImg(msgdb);
  643.   if (!attIcon.equals("")) {
  644.    out.print("<img src='../images/fileicon/" + attIcon + "'>");
  645.   }
  646.   %>
  647.     <a href="<%=ForumPage.getShowTopicPage(request, msgdb.getId())%>">
  648.     <%
  649. String color = StrUtil.getNullString(msgdb.getColor());
  650. String tp = topic;
  651. if (!color.equals(""))
  652. tp = "<font color='" + color + "'>" + tp + "</font>";
  653. if (msgdb.isBold())
  654. tp = "<B>" + tp + "</B>";
  655. %>
  656.     <%=tp%> </a>
  657.     <%if (iselite==1) { %>
  658.     <IMG src="images/topicgood.gif">
  659.     <%}%>
  660.     <%
  661. //计算共有多少页回贴
  662. int allpages = Math.round((float)recount/10+0.5f);
  663. if (allpages>1)
  664. {
  665. int pg = allpages;
  666. if (allpages>10)
  667. pg = 10;
  668.   out.print("[");
  669. for (int m=1; m<=pg; m++)
  670. {%>
  671.     <a href="<%=ForumPage.getShowTopicPage(request, msgdb.getId(), m)%>"><%=m%></a>
  672.     <%}
  673. if (allpages>10) {%>
  674. ...<a href="<%=ForumPage.getShowTopicPage(request, msgdb.getId(), allpages)%>"><%=allpages%></a>
  675. <%}
  676.    out.print("]");
  677. }%></td>
  678.         <td class="list_td" align=middle width=91 bgcolor=#ffffff> <% if (privilege.getUser(request).equals(name)) { %> <IMG height=14 src="<%=skinPath%>/images/my.gif" 
  679.             width=14> <% } %> <a href="../userinfo.jsp?username=<%=StrUtil.UrlEncode(name)%>"><%=ud.getNick()%></a> </td>
  680.         <td align=middle width=55 bgcolor=#f8f8f8><%=recount%></td>
  681.         <td align=middle width=55 bgcolor=#ffffff class="list_td"><%=hit%></td>
  682.         <td align=left width=80 bgcolor=#f8f8f8 class="list_date">&nbsp;
  683.           <%if (rename.equals("")) {%>
  684.           <%=lydate%>
  685.           <%}else{%>
  686.           <%=redate%>
  687.   &nbsp;|&nbsp;
  688.           <a href="../userinfo.jsp?username=<%=StrUtil.UrlEncode(rename,"utf-8")%>" title="<lt:Label res="res.label.forum.listtopic" key="topic_date"/><%=lydate%>"><%=reUserDb.getNick()%></a>
  689.         <%}%>        </td>
  690.       </tr>
  691. <%   
  692. String sql2 = "select id from sq_message where rootid="+msgdb.getId()+" ORDER BY orders";
  693. long totalMsg = msgdb.getMsgCount(sql2, boardcode, msgdb.getId());
  694. if (totalMsg>1) {
  695. %>
  696.       <tr id=follow<%=id%>> 
  697.         <td noWrap align=middle width=30>&nbsp;</td>
  698.         <td align=middle width=17 class="list_td_emote">&nbsp;</td>
  699.         <td align=left colspan="5"> 
  700. <%
  701. int layer = 1;
  702. MsgBlockIterator irmsg2 = msgdb.getMsgs(sql2, boardcode, msgdb.getId(), 0, totalMsg);
  703. if (irmsg2.hasNext()) {
  704. // 跳过根贴
  705. irmsg2.next();
  706. }
  707. // 写跟贴
  708. while (irmsg2.hasNext()) {
  709.   i++;
  710.   MsgDb md = (MsgDb)irmsg2.next();
  711.   id = "" + md.getId();
  712.   name = md.getName();
  713.   layer = md.getLayer();
  714.   topic = md.getTitle();
  715.   lydate = DateUtil.format(md.getAddDate(), "MM-dd HH:mm");
  716.   ud = um.getUser(name);
  717.  %>
  718. <table cellspacing=0 cellpadding=0 width="100%" align=center border=0>
  719.   <tbody> 
  720.   <tr> 
  721.     <td height="13" align=left noWrap> 
  722.       <%
  723. int pagesize2 = 10;
  724. int CPages = (int)Math.ceil((double)i/pagesize2);
  725. layer = layer-1;
  726. for (int k=1; k<=layer-1; k++)
  727. {%>
  728. <img src="" width=18 height=1>
  729. <%}%>
  730.       <img src="images/join.gif" width="18" height="16">
  731.   <a href="<%=ForumPage.getShowTopicPage(request, msgdb.getId(), CPages, id)%>"><%=topic%></a>&nbsp;&nbsp;<a href="../userinfo.jsp?username=<%=StrUtil.UrlEncode(name)%>"><%=ud.getNick()%></a>&nbsp;&nbsp;[<%=com.redmoon.forum.ForumSkin.formatDateTime(request, md.getAddDate())%>]</td>
  732.     </tr>
  733. <%}%>  
  734.   </tbody> 
  735. </table>
  736. <%
  737. }
  738. %>
  739.         </td>
  740.       </tr>
  741.     </tbody>
  742. </table>
  743. <%}%>
  744. <table bordercolor=<%=skin.getTableBorderClr()%> width="98%" border="1" align="center" cellpadding="1" cellspacing="0" class="list">
  745.   <tr>
  746.     <td width="30">&nbsp;</td>
  747.     <td><strong>&nbsp;<lt:Label res="res.label.forum.listtopic" key="topic"/></strong></td>
  748.   </tr>
  749. </table>
  750. <%
  751. while (irmsg.hasNext()) {
  752.   msgdb = (MsgDb) irmsg.next(); 
  753.   i++;
  754.   id = ""+msgdb.getId();
  755.   topic = StrUtil.toHtml(msgdb.getTitle());
  756.   name = msgdb.getName();
  757.   ud = um.getUser(name);
  758.   lydate = com.redmoon.forum.ForumSkin.formatDateTime(request, msgdb.getAddDate());
  759.   recount = msgdb.getRecount();
  760.   hit = msgdb.getHit();
  761.   expression = msgdb.getExpression();
  762.   type = msgdb.getType();
  763.   iselite = msgdb.getIsElite();
  764.   islocked = msgdb.getIsLocked();
  765.   level = msgdb.getLevel();
  766.   rename = msgdb.getRename();
  767.   if (!rename.equals(""))
  768.   reUserDb = um.getUser(rename);
  769.   redate = com.redmoon.forum.ForumSkin.formatDateTime(request, msgdb.getRedate());
  770. %>
  771. <table class="list" bordercolor="<%=skin.getTableBorderClr()%>" cellspacing=0 cellpadding=1 width="98%" align=center border=1>
  772.     <tbody>
  773.       <tr> 
  774.         <td noWrap align=middle width=30 bgcolor=#f8f8f8>
  775. <% if (level==MsgDb.LEVEL_TOP_BOARD) { %>
  776. <IMG alt="" src="<%=skinPath%>/images/f_top.gif" border=0> 
  777.         <% } 
  778. else {
  779. if (recount>20){ %> <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_hot"/>" src="<%=skinPath%>/images/f_hot.gif"> <%}
  780.    else if (recount>0) {%> <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_reply"/>" src="<%=skinPath%>/images/f_new.gif"> <%}
  781.    else {%> <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_no_reply"/>" src="<%=skinPath%>/images/f_norm.gif"> <%}
  782.   }%>
  783. </td>
  784.         <td class="list_td_emote" align=middle width=17 bgcolor=#ffffff> <% String urlboardname = StrUtil.UrlEncode(boardname,"utf-8"); %> <a href="<%=ForumPage.getShowTopicPage(request, 1, msgdb.getId(), msgdb.getId(), 1, "")%>" target=_blank> 
  785.           <% 
  786.   if (islocked==1) { %>
  787.           <IMG height=15 alt="" src="<%=skinPath%>/images/f_locked.gif" width=17 border=0> 
  788.           <% }
  789.   else {
  790.   if (type==1) { %>
  791.           <IMG height=15 alt="" src="<%=skinPath%>/images/f_poll.gif" width=17 border=0> 
  792.           <%}else { %>
  793.           <img src="images/brow/<%=expression%>.gif" border=0> 
  794.           <%}
  795.   } %>
  796.           </a></td>
  797.         <td onMouseOver="this.style.backgroundColor='#ffffff'" 
  798.     onMouseOut="this.style.backgroundColor=''" align=left bgcolor=#f8f8f8> <%
  799. if (recount>0) {
  800. %>
  801.           <img id=followImg<%=id%> title="<lt:Label res="res.label.forum.listtopic" key="collapse_reply"/>" style="CURSOR: hand" onClick="loadThreadFollow(<%=id%>,<%=id%>,'&boardcode=<%=boardcode%>')" src="<%=skinPath%>/images/minus.gif" loaded="no">
  802.           <% }else { %>
  803.           <img id=followImg<%=id%> title="<lt:Label res="res.label.forum.listtopic" key="no_reply"/>" src="<%=skinPath%>/images/minus.gif" loaded="no">
  804.           <% } %> <!--<a href="showtopic_tree.jsp?rootid=<%=id%>">(树形)<%=topic%></a>--> 
  805.   <%
  806.   String attIcon = MsgUtil.getIconImg(msgdb);
  807.   if (!attIcon.equals("")) {
  808.    out.print("<img src='../images/fileicon/" + attIcon + "'>");
  809.   }
  810.   %>
  811. <a href="<%=ForumPage.getShowTopicPage(request, msgdb.getId())%>"> 
  812. <%
  813. String color = StrUtil.getNullString(msgdb.getColor());
  814. String tp = topic;
  815. if (!color.equals(""))
  816. tp = "<font color='" + color + "'>" + tp + "</font>";
  817. if (msgdb.isBold())
  818. tp = "<B>" + tp + "</B>";
  819. %>
  820. <%=tp%>
  821. </a>
  822. <%if (iselite==1) { %>
  823. <IMG src="images/topicgood.gif">
  824. <%}%>
  825.   <%
  826. // 计算共有多少页回贴
  827. int allpages = Math.round((float)recount/10+0.5f);
  828. if (allpages>1)
  829. {
  830. int pg = allpages;
  831. if (allpages>10)
  832. pg = 10;
  833.   out.print("[");
  834. for (int m=1; m<=pg; m++)
  835. {%> 
  836. <a href="<%=ForumPage.getShowTopicPage(request, msgdb.getId(), m)%>"><%=m%></a> 
  837. <%}
  838. if (allpages>10) {%>
  839. ...<a href="<%=ForumPage.getShowTopicPage(request, msgdb.getId(), allpages)%>"><%=allpages%></a>
  840. <%}
  841.    out.print("]");
  842. }%> 
  843.     </td>
  844.         <td class="list_td" align=middle width=91 bgcolor=#ffffff> <% if (privilege.getUser(request).equals(name)) { %> <IMG height=14 src="<%=skinPath%>/images/my.gif" 
  845.             width=14> <% } %> <a href="../userinfo.jsp?username=<%=StrUtil.UrlEncode(name)%>"><%=ud.getNick()%></a> </td>
  846.         <td align=middle width=55 bgcolor=#f8f8f8><%=recount%></td>
  847.         <td align=middle width=55 bgcolor=#ffffff class="list_td"><%=hit%></td>
  848.         <td align=left width=80 bgcolor=#f8f8f8 class="list_date"> 
  849.   &nbsp;
  850.   <%if (rename==null || rename.equals("")) {
  851.    if (lydate!=null) {
  852. %>
  853.           <%=lydate%>
  854.           <%}
  855.   }else{%>
  856.           <%=redate%>
  857.   &nbsp;|&nbsp;
  858.           <a href="../userinfo.jsp?username=<%=StrUtil.UrlEncode(rename,"utf-8")%>" title="<lt:Label res="res.label.forum.listtopic" key="topic_date"/><%=lydate%>"><%=reUserDb.getNick()%></a>
  859.         <%}%></td>
  860.       </tr>
  861. <%   
  862. String sql2 = "select id from sq_message where rootid="+msgdb.getId()+" ORDER BY orders";
  863. long totalMsg = msgdb.getMsgCount(sql2, boardcode, msgdb.getId());
  864. if (totalMsg>1) {
  865. %>
  866.       <tr id=follow<%=id%>> 
  867.         <td noWrap align=middle width=30>&nbsp;</td>
  868.         <td align=middle width=17 class="list_td_emote">&nbsp;</td>
  869.         <td onMouseOver="this.style.backgroundColor='#ffffff'" 
  870.     onMouseOut="this.style.backgroundColor=''" align=left colspan="5">
  871. <%
  872. int layer = 1;
  873. MsgBlockIterator irmsg2 = msgdb.getMsgs(sql2, boardcode, msgdb.getId(), 0, totalMsg);
  874. if (irmsg2.hasNext()) {
  875. // 跳过根贴
  876. irmsg2.next();
  877. }
  878. // 写跟贴
  879. i=0;
  880. while (irmsg2.hasNext()) {
  881.   i++;
  882.   MsgDb md = (MsgDb)irmsg2.next();
  883.   id = "" + md.getId();
  884.   name = md.getName();
  885.   layer = md.getLayer();
  886.   topic = md.getTitle();
  887.   lydate = DateUtil.format(md.getAddDate(), "MM-dd HH:mm");
  888.   ud = um.getUser(name);   
  889.  %>
  890. <table cellspacing=0 cellpadding=0 width="100%" align=center border=0>
  891.   <tbody> 
  892.   <tr> 
  893.     <td noWrap align=left height="13"> 
  894.       <%
  895. int pagesize2 = 10;
  896. int CPages = (int)Math.ceil((double)i/pagesize2);
  897. layer = layer-1;
  898. for (int k=1; k<=layer-1; k++)
  899. {%>
  900. <img src="" width=18 height=1>
  901. <%}%>
  902.       <img src="images/join.gif" width="18" height="16">
  903.   <a href="<%=ForumPage.getShowTopicPage(request, msgdb.getId(), CPages, id)%>"><%=topic%></a> <a href="../userinfo.jsp?username=<%=StrUtil.UrlEncode(name)%>"><%=ud.getNick()%></a>&nbsp;&nbsp;[<%=com.redmoon.forum.ForumSkin.formatDateTime(request, md.getAddDate())%>]</td>
  904.   </tr>
  905.   </tbody> 
  906. </table>
  907. <%
  908. }
  909. %>
  910. </td>
  911.       </tr>
  912. <%}%>   
  913.     </tbody>
  914. </table>
  915. <%}%>
  916.   <table width="98%" border="0" cellspacing="1" cellpadding="3" align="center" class="9black">
  917.     <tr>
  918.       <td width="11%" align="right"><select name="selboard" onChange="if(this.options[this.selectedIndex].value!=''){location='listtopic.jsp?' + this.options[this.selectedIndex].value;}">
  919.         <option value="" selected><lt:Label res="res.label.forum.listtopic" key="sel_board"/></option>
  920.         <%
  921. LeafChildrenCacheMgr dlcm = new LeafChildrenCacheMgr("root");
  922. java.util.Vector vt = dlcm.getChildren();
  923. Iterator ir = vt.iterator();
  924. while (ir.hasNext()) {
  925. Leaf leaf = (Leaf) ir.next();
  926. String parentCode = leaf.getCode();
  927. if (leaf.getIsHome()) {
  928. %>
  929.         <option style="BACKGROUND-COLOR: #f8f8f8" value="">╋ <%=leaf.getName()%></option>
  930.         <%
  931. LeafChildrenCacheMgr dl = new LeafChildrenCacheMgr(parentCode);
  932. java.util.Vector v = dl.getChildren();
  933. Iterator ir1 = v.iterator();
  934. while (ir1.hasNext()) {
  935. Leaf lf = (Leaf) ir1.next();
  936. String selected = boardcode.equals(lf.getCode())?"selected":"";
  937. %>
  938.         <option value="boardcode=<%=StrUtil.UrlEncode(lf.getCode(),"utf-8")%>&boardname=<%=StrUtil.UrlEncode(lf.getName(),"utf-8")%>" <%=selected%>> ├『<%=lf.getName()%>』</option>
  939.         <%}
  940. }
  941. }%>
  942.       </select></td> 
  943.       <td width="60" height="23" align="left"> 
  944.           <%if (privilege.isManager(request, boardcode)) {%>
  945.           <a href="manager/boardRule.jsp?boardcode=<%=StrUtil.UrlEncode(boardcode)%>"><lt:Label res="res.label.forum.listtopic" key="manage_board"/></a>
  946.           <%}%>          &nbsp;</td>
  947.       <td width="74%" align="right"><%
  948. String querystr = "boardcode=" + boardcode + "&op=" + op + "&threadType=" + threadType;
  949. if (op.equals(""))
  950. out.print(paginator.getListTopicCurPageBlock(request, boardcode, 1, threadType));
  951. else
  952. out.print(paginator.getCurPageBlock(request, "listtopic.jsp?"+querystr));
  953. %></td>
  954.     </tr>
  955. </table> 
  956.   <TABLE borderColor=#cccccc cellSpacing=0 cellPadding=4 width="98%" align=center 
  957. border=1>
  958.     <TBODY>
  959.       <TR>
  960.         <TD height="26" background="<%=skinPath%>/images/bg1.gif" class="online">
  961. <%
  962. OnlineInfo oli = new OnlineInfo();
  963. int boardcount = oli.getBoardCount(boardcode);
  964. int boardusercount = oli.getBoardUserCount(boardcode);
  965. int boardguestcount = boardcount - boardusercount;
  966. %>
  967. <lt:Label res="res.label.forum.listtopic" key="online"/> <%=oli.getAllCount()%> <lt:Label res="res.label.forum.listtopic" key="ren"/>&nbsp;<lt:Label res="res.label.forum.listtopic" key="cur_board"/> <%=boardcount%> <lt:Label res="res.label.forum.listtopic" key="ren"/>&nbsp;<lt:Label res="res.label.forum.listtopic" key="regist_user"/> <%=boardusercount%> <lt:Label res="res.label.forum.listtopic" key="ren"/>&nbsp;
  968. <lt:Label res="res.label.forum.listtopic" key="guest"/> <%=boardguestcount%> <lt:Label res="res.label.forum.listtopic" key="ren"/>&nbsp;<lt:Label res="res.label.forum.listtopic" key="today_post"/> <%=curleaf.getTodayCount()%> &nbsp;
  969. <A title="<lt:Label res="res.label.forum.listtopic" key="show_online"/>" href="javascript:loadonline('<%=boardcode%>')"><IMG id=followImg000 style="CURSOR: hand" 
  970.       src="images/plus.gif" border=0 loaded="no">
  971. <SPAN id=advance><lt:Label res="res.label.forum.listtopic" key="show_online"/></SPAN></A></TD>
  972.       </TR>
  973.       <TR>
  974.         <TD 
  975.     style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px" 
  976.     colSpan=4><DIV id="followDIV000" name="followDIV000">
  977.             <div style="display:none; BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: black 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN-LEFT: 18px; BORDER-LEFT: black 1px solid; WIDTH: 240px; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: lightyellow" 
  978.       onclick="loadonline('<%=boardcode%>')"><lt:Label res="res.label.forum.listtopic" key="wait_online"/></DIV>
  979.         </div></TD>
  980.       </TR>
  981.     </TBODY>
  982.   </TABLE>
  983.   <TABLE width="98%" border=0 align="center" cellPadding=0 cellSpacing=0>
  984.   <TBODY>
  985.   <TR>
  986.     <TD><TABLE width="100%" border=0 align="center" 
  987.       cellPadding=0 cellSpacing=4 borderColor=#111111 style="BORDER-COLLAPSE: collapse">
  988.       <TBODY>
  989.         <TR>
  990.           <TD noWrap width=200><IMG height=12 alt="" 
  991.             src="<%=skinPath%>/images/f_new.gif" width=18 border=0>&nbsp;<lt:Label res="res.label.forum.listtopic" key="topic_reply"/></TD>
  992.           <TD noWrap width=100><IMG height=12 alt="" 
  993.             src="<%=skinPath%>/images/f_hot.gif" width=18 border=0>&nbsp;<lt:Label res="res.label.forum.listtopic" key="topic_hot"/> </TD>
  994.           <TD noWrap width=100><IMG height=15 alt="" 
  995.             src="<%=skinPath%>/images/f_locked.gif" width=17 border=0>&nbsp;<lt:Label res="res.label.forum.listtopic" key="topic_lock"/></TD>
  996.           <TD noWrap width=150><IMG src="images/topicgood.gif"> <lt:Label res="res.label.forum.listtopic" key="topic_elite"/></TD>
  997.           <TD noWrap width=150><IMG height=15 alt="" src="images/top_forum.gif" width=15 border=0>&nbsp;<lt:Label res="res.label.forum.listtopic" key="topic_all_top"/></TD>
  998.         </TR>
  999.         <TR>
  1000.           <TD noWrap width=200><IMG height=12 alt="" 
  1001.             src="<%=skinPath%>/images/f_norm.gif" width=18 border=0>&nbsp;<lt:Label res="res.label.forum.listtopic" key="topic_no_reply"/></TD>
  1002.           <TD noWrap width=100><IMG height=15 alt="" 
  1003.             src="<%=skinPath%>/images/f_poll.gif" width=17 border=0>&nbsp;<lt:Label res="res.label.forum.listtopic" key="topic_vote"/></TD>
  1004.           <TD noWrap width=100><IMG height=15 alt="" 
  1005.             src="<%=skinPath%>/images/f_top.gif" width=15 border=0>&nbsp;<lt:Label res="res.label.forum.listtopic" key="topic_top"/></TD>
  1006.           <TD noWrap width=150><IMG height=14 src="<%=skinPath%>/images/my.gif" 
  1007.             width=14> <lt:Label res="res.label.forum.listtopic" key="topic_my"/></TD>
  1008.           <TD noWrap width=150>&nbsp;</TD>
  1009.         </TR>
  1010.       </TBODY>
  1011.     </TABLE></TD>
  1012. </TR></TBODY></TABLE>
  1013. <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
  1014.   <tr>
  1015.     <td align="center">
  1016. <%
  1017. long pageEndTime =  System.currentTimeMillis();
  1018. long t = pageEndTime - pageBeginTime;
  1019. %>
  1020. <lt:Label res="res.label.forum.listtopic" key="page_run"/><%=t%><lt:Label res="res.label.forum.listtopic" key="mili_second"/> </td>
  1021.   </tr>
  1022. </table>
  1023. <jsp:include page="inc/footer.jsp" />
  1024. </BODY></HTML>