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

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html;charset=utf-8"%>
  2. <%@ page import="java.util.Iterator"%>
  3. <%@ page import="com.redmoon.forum.OnlineInfo"%>
  4. <%@ page import="cn.js.fan.db.*"%>
  5. <%@ page import="cn.js.fan.web.*"%>
  6. <%@ page import="cn.js.fan.util.*"%>
  7. <%@ page import="com.redmoon.forum.*"%>
  8. <%@ page import="com.redmoon.forum.ui.*"%>
  9. <%@ page import="java.util.*"%>
  10. <%@ page import="cn.js.fan.web.Global"%>
  11. <%@ page import="com.redmoon.forum.person.*"%>
  12. <%@ taglib uri="/WEB-INF/tlds/LabelTag.tld" prefix="lt" %>
  13. <%
  14. String skincode = UserSet.getSkin(request);
  15. if (skincode.equals(""))
  16. skincode = UserSet.defaultSkin;
  17. SkinMgr skm = new SkinMgr();
  18. Skin skin = skm.getSkin(skincode);
  19. if (skin==null)
  20. skin = skm.getSkin(UserSet.defaultSkin);
  21. String skinPath = skin.getPath();
  22. %>
  23. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  24. <html xmlns="http://www.w3.org/1999/xhtml">
  25. <head>
  26. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  27. <title></title>
  28. <LINK href="../common.css" type=text/css rel=stylesheet>
  29. <LINK href="admin/default.css" type=text/css rel=stylesheet>
  30. <link href="<%=skinPath%>/skin.css" rel="stylesheet" type="text/css">
  31. <script src="../inc/calendar.js"></script>
  32. <script src="../inc/common.js"></script>
  33. <script language="javascript">
  34. function advanceoptionShow(obj){
  35. if(advanceoption.style.display == "none"){
  36. obj.value = "1";
  37. advanceoption.style.display = ""
  38. }else{
  39. obj.value = "0";
  40. advanceoption.style.display = "none"
  41. }
  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. </script>
  62. </head>
  63. <body>
  64. <jsp:useBean id="privilege" scope="page" class="com.redmoon.forum.Privilege"/>
  65. <%
  66. if (!privilege.isMasterLogin(request))
  67. {
  68. out.print(cn.js.fan.web.SkinUtil.makeErrMsg(request, cn.js.fan.web.SkinUtil.LoadString(request, "pvg_invalid")));
  69. return;
  70. }
  71. String operation = ParamUtil.get(request, "operation");
  72. if(!operation.trim().equals("")){
  73. MsgMgr mm = new MsgMgr();
  74. if (operation.equals("moveBoard")) {
  75.     String strIds = ParamUtil.get(request, "ids");
  76. String selToBoard = ParamUtil.get(request, "selToBoard");
  77. String[] idsary = StrUtil.split(strIds, ",");
  78. if (idsary!=null) {
  79. int len = idsary.length;
  80. for (int i=0; i<len; i++) {
  81. try {
  82. mm.ChangeBoard(request, Long.parseLong(idsary[i]), selToBoard);
  83. }
  84. catch (ErrMsgException e) {
  85. out.print(StrUtil.Alert(e.getMessage()));
  86. return;
  87. }
  88. }
  89. }
  90.                 out.print(StrUtil.Alert_Redirect(SkinUtil.LoadString(request, "info_op_success"), "topic_batch_m.jsp"));
  91. }
  92. if (operation.equals("moveThreadType")) {
  93.     String strIds = ParamUtil.get(request, "ids");
  94. String toTxtBoardCode = ParamUtil.get(request, "toBoardCode");
  95. int toThreadType = ParamUtil.getInt(request, "toThreadType");
  96. String[] idsary = StrUtil.split(strIds, ",");
  97. String name = privilege.getUser(request);
  98. MsgDb md = new MsgDb();
  99. if (idsary!=null) {
  100. int len = idsary.length;
  101. for (int i=0; i<len; i++) {
  102. try {
  103. md.ChangeBoardThreadType(request, Long.parseLong(idsary[i]), toTxtBoardCode, toThreadType, name);
  104. }
  105. catch (ErrMsgException e) {
  106. out.print(StrUtil.Alert(e.getMessage()));
  107. return;
  108. }
  109. }
  110. }
  111.                 out.print(StrUtil.Alert_Redirect(SkinUtil.LoadString(request, "info_op_success"), "topic_batch_m.jsp"));
  112. }
  113. if (operation.equals("delTopic")) {
  114. String strIds = ParamUtil.get(request, "ids");
  115. String[] idsary = StrUtil.split(strIds, ",");
  116. if (idsary!=null) {
  117. int len = idsary.length;
  118. for (int i=0; i<len; i++) {
  119. mm.delTopicAbsolutely(application, request, Long.parseLong(idsary[i]));
  120. }
  121. }
  122.                 out.print(StrUtil.Alert_Redirect(SkinUtil.LoadString(request, "info_op_success"), "topic_batch_m.jsp"));
  123. }
  124. if (operation.equals("msgLevel")) {
  125. String strIds = ParamUtil.get(request, "ids");
  126. String[] idsary = StrUtil.split(strIds, ",");
  127. String msgLevel = ParamUtil.get(request, "msgLevel");
  128. int value = -1;
  129. if(msgLevel.equals("levelTopBoard")){
  130. value = MsgDb.LEVEL_TOP_BOARD;
  131. }else{
  132. value = MsgDb.LEVEL_TOP_FORUM;
  133. }
  134. if (idsary!=null) {
  135. int len = idsary.length;
  136. for (int i=0; i<len; i++) {
  137. try {     
  138. mm.setOnTop(request, Long.parseLong(idsary[i]), value);
  139. }
  140. catch (ErrMsgException e) {
  141. out.print(StrUtil.Alert(e.getMessage()));
  142. return;
  143. }
  144. }
  145. }
  146.                 out.print(StrUtil.Alert_Redirect(SkinUtil.LoadString(request, "info_op_success"), "topic_batch_m.jsp"));
  147. }
  148. if (operation.equals("elite")) {
  149. String strIds = ParamUtil.get(request, "ids");
  150. String[] idsary = StrUtil.split(strIds, ",");
  151. if (idsary!=null) {
  152. int len = idsary.length;
  153. for (int i=0; i<len; i++) {
  154. try {
  155. mm.setElite(request, Long.parseLong(idsary[i]), 1);
  156. }
  157. catch (ErrMsgException e) {
  158. out.print(StrUtil.Alert(e.getMessage()));
  159. return;
  160. }
  161. }
  162. }
  163.                 out.print(StrUtil.Alert_Redirect(SkinUtil.LoadString(request, "info_op_success"), "topic_batch_m.jsp"));
  164. }
  165. if (operation.equals("delAttach")) {
  166. String strIds = ParamUtil.get(request, "ids");
  167. String[] idsary = StrUtil.split(strIds, ",");
  168. if (idsary!=null) {
  169. int len = idsary.length;
  170. for (int i=0; i<len; i++) {
  171. MsgDb md = new MsgDb(Integer.parseInt(idsary[i]));
  172. Attachment am = new Attachment();
  173. Vector vt_attach = md.getAttachments();
  174. Iterator ir_attach = vt_attach.iterator();
  175. while (ir_attach.hasNext()) {
  176. am = (Attachment)ir_attach.next();
  177. am.del();
  178. }
  179. }
  180. }
  181.                 out.print(StrUtil.Alert_Redirect(SkinUtil.LoadString(request, "info_op_success"), "topic_batch_m.jsp"));
  182. }
  183. }
  184. String selboard = ParamUtil.get(request, "selboard");
  185. if (selboard.equals(""))
  186. selboard = "allboard";
  187. String title = "", nick = "", sBeginDate = "", sEndDate = "";
  188. String threadType = "", hitLess = "", hitMore = "", recountLess = "", recountMore = "", sReDate = "", msgLevel = "", isElite = "", attach = "", selBoardCode = "";    
  189. //搜索主要选项
  190. title = ParamUtil.get(request, "title");
  191. nick = ParamUtil.get(request, "nick");
  192. sBeginDate = ParamUtil.get(request, "beginDate");
  193. sEndDate = ParamUtil.get(request, "endDate");
  194. //搜索更多选项
  195. threadType = ParamUtil.get(request, "threadType"); 
  196. hitLess = ParamUtil.get(request, "hitLess");   
  197. hitMore = ParamUtil.get(request, "hitMore");  
  198. recountLess = ParamUtil.get(request, "recountLess");  
  199. recountMore = ParamUtil.get(request, "recountMore");     
  200. sReDate = ParamUtil.get(request, "reDate");  
  201. msgLevel = ParamUtil.get(request, "msgLevel");
  202. isElite = ParamUtil.get(request, "isElite");
  203. attach = ParamUtil.get(request, "attach");
  204. selBoardCode = ParamUtil.get(request, "hBoardCode");
  205. %>
  206. <table width='100%' cellpadding='0' cellspacing='0' >
  207.   <tr>
  208.     <td class="head"><lt:Label res="res.label.forum.topic_batch_m" key="topic_batch_m"/></td>
  209.   </tr>
  210. </table>
  211. <br>
  212. <table width="98%" border='0' align="center" cellpadding='0' cellspacing='0' class="frame_gray">
  213.  <form name="form1" method="post" action="?op=search">
  214.   <tr> 
  215.     <td height=20 align="left" class="thead"><lt:Label res="res.label.forum.topic_batch_m" key="search_tally_topic"/></td>
  216.   </tr>
  217.   <tr> 
  218.     <td valign="top"><br>
  219.       <table width="86%"  border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#999999" class="tableframe_gray">  
  220.   <tr>
  221.         <td width="45%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="board"/></td>
  222.         <td width="55%" height="26" bgcolor="#FFFBFF">&nbsp;
  223.           <select name="selboard">
  224. <option value="allboard" selected>
  225. <lt:Label res="res.label.forum.search" key="all_board"/>
  226. </option>
  227. <%
  228. LeafChildrenCacheMgr dlcm = new LeafChildrenCacheMgr("root");
  229. java.util.Vector vt = dlcm.getChildren();
  230. Iterator ir = vt.iterator();
  231. while (ir.hasNext()) {
  232. Leaf leaf = (Leaf) ir.next();
  233. String parentCode = leaf.getCode();
  234. %>
  235.             <optgroup style="BACKGROUND-COLOR: #f8f8f8" label="╋ <%=leaf.getName()%>">
  236.             <%
  237. LeafChildrenCacheMgr dl = new LeafChildrenCacheMgr(parentCode);
  238. java.util.Vector v = dl.getChildren();
  239. Iterator ir1 = v.iterator();
  240. while (ir1.hasNext()) {
  241. Leaf lf = (Leaf) ir1.next();
  242. %>
  243.              <option value="<%=lf.getCode()%>"> ├『<%=lf.getName()%>』</option>
  244. <%
  245. }
  246. %>
  247. </optgroup>
  248. <%
  249. }
  250. %>
  251.         </select>
  252.         <script language=javascript>
  253. <!--
  254. var v = "<%=selboard%>";
  255. if (v!="")
  256. form1.selboard.value = v;
  257. //-->
  258. </script> </td>
  259.   </tr>  
  260.   <tr>
  261.         <td width="45%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="title_author"/></td>
  262.         <td width="55%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="text" name="nick" value="<%=nick%>" /></td>
  263.   </tr> 
  264.   <tr>
  265.         <td width="45%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="title_keyword"/></td>
  266.         <td width="55%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="text" name="title" value="<%=title%>"/></td>
  267.   </tr>   
  268.   <tr>
  269.         <td width="45%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="time_scope"/></td>
  270.         <td width="55%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="from"/><input name="beginDate" value="<%=sBeginDate%>" onclick="showcalendar(event, this)" readonly><lt:Label res="res.label.forum.topic_batch_m" key="to"/>
  271.             <input name="endDate" value="<%=sEndDate%>" onclick="showcalendar(event, this)" readonly></td>
  272.   </tr>  
  273.   <tr>
  274.     <td height="26" bgcolor="#FFFBFF">&nbsp;</td>
  275.     <td height="26" bgcolor="#FFFBFF" align="right">
  276.       <input type="checkbox" name="checkAdvanceOption" value="0" onclick="advanceoptionShow(this)"/>
  277.       <lt:Label res="res.label.forum.topic_batch_m" key="more_sel"/>&nbsp;&nbsp;</td>
  278.     </tr>
  279.   <tbody id="advanceoption" style="display:none">
  280.   <tr>
  281.         <td width="45%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="thread_type"/></td>
  282.         <td width="55%" height="26" bgcolor="#FFFBFF">&nbsp;
  283.           <select name="threadType" onChange="threadTypeChange()">
  284.    <option value=""></option>
  285. <%
  286.     ThreadTypeDb ttdb = new ThreadTypeDb();
  287. String boardCode = "", boardName = "";
  288. vt = ttdb.list();
  289. ir = vt.iterator();
  290. int i = 0;
  291. int len = vt.size();
  292. String threadTypeArr[][] = new String[len][3]; 
  293. while (ir.hasNext()) {
  294. ttdb = (ThreadTypeDb) ir.next();
  295. boardCode = ttdb.getBoardCode();
  296. Leaf lf = new Leaf(boardCode);
  297. threadTypeArr[i][0] = Integer.toString(ttdb.getId());
  298.                     threadTypeArr[i][1] = lf.getName();
  299. threadTypeArr[i][2] = boardCode;
  300. %>
  301. <option value="<%=ttdb.getId()%>"><%=ttdb.getName()%></option>
  302. <%
  303.         i++;
  304. }
  305. out.println("<script language='javascript'>");
  306. out.println("var threadTypeArr = new Array("+len+");");
  307. for(int j = 0; j < len; j++){
  308. out.println("var threadType = new Array(3);");
  309. out.println("threadType[0] = '"+ threadTypeArr[j][0] + "';");
  310. out.println("threadType[1] = '"+ threadTypeArr[j][1]  + "';");
  311. out.println("threadType[2] = '"+ threadTypeArr[j][2]  + "';");
  312. out.println("threadTypeArr[" + j + "] = threadType;");
  313. }
  314. out.println("</script>");
  315. %>
  316.           </select>
  317.           <lt:Label res="res.label.forum.topic_batch_m" key="board"/>:
  318.   <input type="text" name="txtBoardName" style="border:0px; color:#000000; background:transparent; font:bold 12px; height:15px" readonly/>
  319.   <input type="hidden" name="hBoardCode"/>
  320.   <script>
  321.         form1.threadType.value = "<%=threadType%>"
  322. if(form1.threadType.value == ""){
  323. form1.txtBoardName.value = "";
  324. form1.hBoardCode.value = "";
  325. }else{
  326. for(var i = 0; i < threadTypeArr.length; i++){
  327. if(form1.threadType.value == threadTypeArr[i][0]){
  328.    form1.txtBoardName.value = threadTypeArr[i][1];   
  329.    form1.hBoardCode.value = threadTypeArr[i][2];  
  330.    break;
  331. }   
  332. }
  333. }
  334.   </script>
  335.   </td>
  336.   </tr>  
  337.   <tr>
  338.         <td width="45%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="hit_less"/></td>
  339.         <td width="55%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="text" name="hitLess" value="<%=hitLess%>"/></td>
  340.   </tr>  
  341.   <tr>
  342.         <td width="45%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="hit_more"/></td>
  343.         <td width="55%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="text" name="hitMore" value="<%=hitMore%>"/></td>
  344.   </tr>  
  345.   <tr>
  346.         <td width="45%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="recount_less"/></td>
  347.         <td width="55%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="text" name="recountLess" value="<%=recountLess%>"/></td>
  348.   </tr>
  349.   <tr>
  350.         <td width="45%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="recount_more"/></td>
  351.         <td width="55%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="text" name="recountMore" value="<%=recountMore%>"/></td>
  352.   </tr>    
  353.   <tr>
  354.         <td width="45%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="redate"/></td>
  355.         <td width="55%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="text" name="reDate" value="<%=sReDate%>"/></td>
  356.   </tr>   
  357.   <tr>
  358.         <td width="45%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="msg_level"/></td>
  359.         <td width="55%" height="26" bgcolor="#FFFBFF">
  360.           <input type="radio" name="msgLevel" value="0" <%if(msgLevel.equals("0") || msgLevel.equals("")) out.print("checked");%>/>
  361.           <lt:Label res="res.label.forum.topic_batch_m" key="unlimited"/>
  362.           <input type="radio" name="msgLevel" value="1" <%if(msgLevel.equals("1")) out.print("checked");%>/>
  363.           <lt:Label res="res.label.forum.topic_batch_m" key="not_include"/>        
  364.  </td>
  365.   </tr> 
  366.   <tr>
  367.         <td width="45%" height="22" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="is_elite"/></td>
  368.         <td width="55%" height="22" bgcolor="#FFFBFF"><input type="radio" name="isElite" value="0" <%if(isElite.equals("0") || isElite.equals("")) out.print("checked");%>/>
  369. <lt:Label res="res.label.forum.topic_batch_m" key="unlimited"/>
  370. <input type="radio" name="isElite" value="1" <%if(isElite.equals("1")) out.print("checked");%>/>
  371. <lt:Label res="res.label.forum.topic_batch_m" key="not_include"/> </td>
  372.   </tr>
  373.   <tr>
  374.         <td width="45%" height="22" bgcolor="#FFFBFF">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="attach"/></td>
  375.         <td width="55%" height="22" bgcolor="#FFFBFF"><input type="radio" name="attach" value="0" <%if(attach.equals("0") || attach.equals("")) out.print("checked");%>/>
  376. <lt:Label res="res.label.forum.topic_batch_m" key="unlimited"/>
  377. <input type="radio" name="attach" value="1" <%if(attach.equals("1")) out.print("checked");%>/>
  378. <lt:Label res="res.label.forum.topic_batch_m" key="not_include"/> </td>
  379.   </tr>  
  380.   </tbody>      
  381.     </table>
  382.       <br>
  383.       <table width="86%"  border="0" align="center" cellpadding="0" cellspacing="0">
  384.         <tr>
  385.           <td align="center"><INPUT type=submit value=<lt:Label res="res.label.forum.search" key="begin_search"/>></td>
  386.         </tr>
  387.       </table>
  388.       <br></td>
  389.   </tr>
  390.   </form>
  391. </table>
  392. <br>
  393. <br>
  394. <br>
  395. <table width="98%" border='0' align="center" cellpadding='0' cellspacing='0' class="frame_gray">
  396.   <tr> 
  397.     <td height=20 align="left" class="thead"><lt:Label res="res.label.forum.topic_batch_m" key="tally_title"/></td>
  398.   </tr>
  399.   <tr> 
  400.     <td valign="top"><br><table width="86%"  border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#999999" class="tableframe_gray">
  401.       <tr>
  402.         <td height="24" colspan="2" bgcolor="#EFEBDE">&nbsp;&nbsp;<lt:Label res="res.label.forum.topic_batch_m" key="tally_title"/></td>
  403.       </tr>  
  404.       <tr>
  405.         <td width="36%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="radio" name="operation" value="moveBoard" /><lt:Label res="res.label.forum.topic_batch_m" key="batch_move_board"/></td>
  406.         <td width="64%" height="26" bgcolor="#FFFBFF">&nbsp;
  407. <select name="selToBoard">
  408. <%
  409. vt = dlcm.getChildren();
  410. ir = vt.iterator();
  411. while (ir.hasNext()) {
  412. Leaf leaf = (Leaf) ir.next();
  413. String parentCode = leaf.getCode();
  414. %>
  415.             <optgroup style="BACKGROUND-COLOR: #f8f8f8" label="╋ <%=leaf.getName()%>">
  416.             <%
  417. LeafChildrenCacheMgr dl = new LeafChildrenCacheMgr(parentCode);
  418. java.util.Vector v = dl.getChildren();
  419. Iterator ir1 = v.iterator();
  420. while (ir1.hasNext()) {
  421. Leaf lf = (Leaf) ir1.next();
  422. %>
  423.              <option value="<%=lf.getCode()%>"> ├『<%=lf.getName()%>』</option>
  424. <%
  425. }
  426. %>
  427.             </optgroup>
  428.             <%
  429. }
  430. %>
  431. </select>
  432. </td>
  433.       </tr>  
  434.   <tr>
  435.         <td width="36%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="radio" name="operation" value="moveThreadType" />
  436.           <lt:Label res="res.label.forum.topic_batch_m" key="batch_move_thread_type"/></td>
  437.         <td width="64%" height="26" bgcolor="#FFFBFF">&nbsp;
  438. <select name="selToThreadType" onChange="toThreadTypeChange()">
  439. <%
  440.     ThreadTypeDb tottdb = new ThreadTypeDb();
  441. String toBoardCode = "", toBoardName = "";
  442. vt = tottdb.list();
  443. ir = vt.iterator();
  444. i = 0;
  445. len = vt.size();
  446. String toThreadTypeArr[][] = new String[len][3]; 
  447. while (ir.hasNext()) {
  448. tottdb = (ThreadTypeDb) ir.next();
  449. toBoardCode = tottdb.getBoardCode();
  450. Leaf lf = new Leaf(toBoardCode);
  451. toThreadTypeArr[i][0] = Integer.toString(tottdb.getId());
  452.                     toThreadTypeArr[i][1] = lf.getName();
  453. toThreadTypeArr[i][2] = toBoardCode;
  454. %>
  455. <option value="<%=tottdb.getId()%>"><%=tottdb.getName()%></option>
  456. <%
  457.         i++;
  458. }
  459. out.println("<script language='javascript'>");
  460. out.println("var toThreadTypeArr = new Array("+len+");");
  461. for(int j = 0; j < len; j++){
  462. out.println("var toThreadType = new Array(3);");
  463. out.println("toThreadType[0] = '"+ toThreadTypeArr[j][0] + "';");
  464. out.println("toThreadType[1] = '"+ toThreadTypeArr[j][1]  + "';");
  465. out.println("toThreadType[2] = '"+ toThreadTypeArr[j][2]  + "';");
  466. out.println("toThreadTypeArr[" + j + "] = toThreadType;");
  467. }
  468. out.println("</script>");
  469. %>
  470.           </select>
  471.           <lt:Label res="res.label.forum.topic_batch_m" key="board"/>:
  472.   <input type="text" name="txtToBoardName" style="border:0px; color:#000000; background:transparent; font:bold 12px; height:15px" readonly/>
  473.   <input type="hidden" name="hToBoardCode" />
  474.   <script>
  475. if(selToThreadType.value == ""){
  476. txtToBoardName.value = "";
  477. hToBoardCode.value ="";
  478. }else{
  479. for(var i = 0; i < toThreadTypeArr.length; i++){
  480. if(selToThreadType.value == toThreadTypeArr[i][0]){
  481.    txtToBoardName.value = toThreadTypeArr[i][1];  
  482.    hToBoardCode.value = toThreadTypeArr[i][2];
  483.    break;
  484. }   
  485. }
  486. }
  487.   </script>
  488.   </td>
  489.   </tr>  
  490.   <tr>
  491.         <td width="36%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="radio" name="operation" value="delTopic" />
  492.           <lt:Label res="res.label.forum.topic_batch_m" key="batch_del"/></td>
  493.         <td width="64%" height="26" bgcolor="#FFFBFF"></td>
  494.   </tr> 
  495.   <tr>
  496.         <td width="36%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="radio" name="operation" value="msgLevel" />
  497.           <lt:Label res="res.label.forum.topic_batch_m" key="batch_level"/> </td>
  498.         <td width="64%" height="26" bgcolor="#FFFBFF">
  499.           <input type="radio" name="setMsgLevel" value="levelTopBoard" />
  500.           <lt:Label res="res.label.forum.topic_batch_m" key="batch_board_level"/>
  501.           <input type="radio" name="setMsgLevel" value="levelTopForum" />
  502.           <lt:Label res="res.label.forum.topic_batch_m" key="batch_forum_level"/></td>
  503.   </tr>   
  504.   <tr>
  505.         <td width="36%" height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="radio" name="operation" value="elite" />
  506.           <lt:Label res="res.label.forum.topic_batch_m" key="batch_elite"/></td>
  507.         <td width="64%" height="26" bgcolor="#FFFBFF">&nbsp;</td>
  508.   </tr>  
  509.   <tr>
  510.     <td height="26" bgcolor="#FFFBFF">&nbsp;&nbsp;<input type="radio" name="operation" value="delAttach" />
  511.       <lt:Label res="res.label.forum.topic_batch_m" key="batch_del_attach"/></td>
  512.     <td height="26" bgcolor="#FFFBFF" align="right">&nbsp;</td>
  513.     </tr>        
  514.     </table>
  515.     <br>
  516.    </td>
  517.   </tr>
  518. </table>
  519. <br>
  520. <table width="98%" border='0' align="center" cellpadding='0' cellspacing='0' class="frame_gray" id="list">
  521.   <tr> 
  522.     <td height=20 align="left" class="thead"><lt:Label res="res.label.forum.topic_batch_m" key="search_tally_topic"/>:</td>
  523.   </tr>
  524.   <tr> 
  525.     <td valign="top"><br>
  526. <%
  527. String op = ParamUtil.get(request, "op");
  528. String sql = "", condition = "",querystr = "";    
  529. if(op.equals("search")){
  530. sql = "select id from sq_thread";
  531. if(!selboard.trim().equals("allboard")){
  532. condition += "boardcode="  + StrUtil.sqlstr(selboard);
  533. }
  534. if(!nick.trim().equals("")){
  535.     if(!condition.equals(""))
  536. condition += " and ";
  537. UserDb ud = new UserDb();
  538. String[] nickAry = StrUtil.split(nick, ",");
  539. String strNick = "";
  540. if (nickAry!=null) {
  541. int length = nickAry.length;
  542. for (int j=0; j<length; j++) {
  543. strNick += ud.getNicksLike(nickAry[j]);
  544. if(j < length - 1 && ud.getNicksLike(nickAry[j]).equals(""))
  545. strNick += ",";
  546. }
  547. }
  548.     condition += "name in (" + strNick + ")";
  549. }
  550. if(!title.trim().equals("")){
  551. if(!condition.equals(""))
  552. condition += " and ";
  553. condition += "replyid=-1 and title like " + StrUtil.sqlstr("%"+title+"%");
  554. sql = "select id from sq_message";
  555. }  
  556. if(!sBeginDate.trim().equals("") && !sEndDate.trim().equals("")){
  557.     if(!condition.equals(""))
  558. condition += " and ";
  559. java.util.Date beginDate = DateUtil.parse(sBeginDate, "yyyy-MM-dd");
  560. java.util.Date endDate = DateUtil.parse(sEndDate, "yyyy-MM-dd");
  561. long lBeginDate = beginDate.getTime();
  562. long lEndDate = endDate.getTime() + 24*60*60*1000;
  563. condition += "lydate>=" + lBeginDate + " and lydate<" + lEndDate;
  564. }else{
  565. if(!sBeginDate.trim().equals("")){
  566. if(!condition.equals(""))
  567. condition += " and ";
  568. java.util.Date beginDate = DateUtil.parse(sBeginDate, "yyyy-MM-dd");
  569. long lBeginDate = beginDate.getTime();
  570. condition += "lydate>=" + lBeginDate;
  571. }else{
  572. if(!sEndDate.trim().equals("")){
  573. if(!condition.equals(""))
  574. condition += " and ";
  575. java.util.Date endDate = DateUtil.parse(sEndDate, "yyyy-MM-dd");
  576. long lEndDate = endDate.getTime() + 24*60*60*1000;
  577. condition += "lydate<" + lEndDate;
  578. }
  579. }
  580. }
  581. if(!threadType.trim().equals("")){ 
  582. if(!condition.equals(""))
  583. condition += " and ";
  584. condition += "thread_type in (" + threadType + ")";
  585. }
  586. if(StrUtil.isNumeric(hitLess)){
  587. if(!condition.equals(""))
  588. condition += " and ";
  589. condition += "hit<" + hitLess;
  590. }
  591. if(StrUtil.isNumeric(hitMore)){
  592. if(!condition.equals(""))
  593. condition += " and ";
  594. condition += "hit>" + hitMore;
  595. }
  596. if(StrUtil.isNumeric(recountLess)){
  597. if(!condition.equals(""))
  598. condition += " and ";
  599. condition += "id in (select id from sq_message where replyid = -1 and recount<" + recountLess + ")";
  600. }
  601. if(StrUtil.isNumeric(recountMore)){
  602. if(!condition.equals(""))
  603. condition += " and ";
  604. condition += "id in (select id from sq_message where replyid = -1 and recount>" + recountMore + ")";
  605. }
  606. if(StrUtil.isNumeric(sReDate)){
  607. if(!condition.equals(""))
  608. condition += " and ";
  609.     java.util.Date today = DateUtil.parse(DateUtil.format(new java.util.Date(), "yyyy-MM-dd"), "yyyy-MM-dd");
  610.     long lReDate = today.getTime() - Long.parseLong(sReDate)*24*60*60*1000;
  611. out.print(today.getTime());
  612. condition += "redate<" + lReDate;
  613. }
  614. if(msgLevel.equals("1")){
  615. if(!condition.equals(""))
  616. condition += " and ";
  617. condition += "msg_level = 0";
  618. }
  619. if(isElite.equals("1")){
  620. if(!condition.equals(""))
  621. condition += " and ";
  622. condition += "iselite = 0";
  623. }
  624. if(attach.equals("1")){
  625. if(!condition.equals(""))
  626. condition += " and ";
  627. condition += "id not in (select msgId from sq_message_attach)";
  628. }
  629. if(!condition.equals("")){
  630. condition = " where " + condition;
  631. sql = sql + condition;
  632. }
  633. String orderby = "";
  634. if (selboard.equals("allboard"))
  635. orderby = " ORDER BY lydate desc";
  636. else
  637. orderby = " ORDER BY msg_level desc,lydate desc";
  638. sql = sql + orderby;
  639. int pagesize = 10;
  640. Paginator paginator = new Paginator(request);
  641. int curpage = paginator.getCurPage();
  642. PageConn pageconn = new PageConn(Global.defaultDB, curpage, pagesize);
  643. ResultIterator ri = pageconn.getResultIterator(sql);
  644. paginator.init(pageconn.getTotal(), pagesize);
  645. ResultRecord rr = null;
  646. //设置当前页数和总页数
  647. int totalpages = paginator.getTotalPages();
  648. if (totalpages==0)
  649. {
  650. curpage = 1;
  651. totalpages = 1;
  652. }
  653. %>
  654. <TABLE cellSpacing=0 cellPadding=1 width="98%" align=center>
  655.   <TBODY>
  656.   <TR height=25 class="td_title">
  657. <TD height="26" colSpan=3 align=middle noWrap bgcolor="#EFEBDE"><lt:Label res="res.label.forum.listtopic" key="topis_list"/></TD>
  658. <TD width=91 height="26" align=middle noWrap  bgcolor="#EFEBDE"><lt:Label res="res.label.forum.listtopic" key="author"/></TD>
  659. <TD width=55 height="26" align=middle noWrap bgcolor="#EFEBDE"><lt:Label res="res.label.forum.listtopic" key="reply"/></TD>
  660. <TD width=55 height="26" align=middle noWrap bgcolor="#EFEBDE"><lt:Label res="res.label.forum.listtopic" key="hit"/></TD>
  661. <TD width=80 height="26" align=middle noWrap bgcolor="#EFEBDE"><lt:Label res="res.label.forum.listtopic" key="reply_date"/></TD>
  662. <TD width=91 height="26" align=middle noWrap bgcolor="#EFEBDE"><lt:Label res="res.label.forum.mytopic" key="board"/></TD>
  663.   </TR>
  664.   </TBODY>
  665. </TABLE>
  666. <%
  667. String topic = "",name="",lydate="",expression="", myboardname = "", myboardcode = "";
  668. int id = -1;
  669. int k = 0,recount=0,hit=0,type=0;
  670. MsgDb md = new MsgDb();
  671. Leaf myleaf = new Leaf();
  672. Directory dir = new Directory();
  673. com.redmoon.forum.person.UserMgr um = new com.redmoon.forum.person.UserMgr();
  674. while (ri.hasNext()) {
  675. rr = (ResultRecord)ri.next(); 
  676. k++;
  677. id = rr.getInt("id");
  678. md = md.getMsgDb(id);
  679. topic = md.getTitle();
  680. name = md.getName();
  681. lydate = com.redmoon.forum.ForumSkin.formatDate(request, md.getAddDate());
  682. recount = md.getRecount();
  683. hit = md.getHit();
  684. expression = "" + md.getExpression();
  685. type = md.getType();
  686. myboardcode = md.getboardcode();
  687. myleaf = dir.getLeaf(myboardcode);
  688. myboardname = "";
  689. if (myleaf!=null)
  690. myboardname = myleaf.getName();
  691. %>
  692.   <table cellspacing=0 cellpadding=1 width="98%" align=center>
  693. <tbody> 
  694.  <tr>
  695.   <td width=30 height="22" align=middle noWrap bgcolor=#f8f8f8><input name="ids" value="<%=id%>" type="checkbox"></td>
  696.   <td noWrap align=left width=50 bgcolor=#f8f8f8><%=md.getId()%></td> 
  697.   <td noWrap align=middle width=30 bgcolor=#f8f8f8> 
  698.     <%if (recount>20){ %>
  699.   <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_hot"/>" src="<%=skinPath%>/images/f_hot.gif"> 
  700. <%}else if (recount>0) {%>
  701.   <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_reply"/>" src="<%=skinPath%>/images/f_new.gif"> 
  702. <%}else {%>
  703.   <img alt="<lt:Label res="res.label.forum.listtopic" key="open_topic_no_reply"/>" src="<%=skinPath%>/images/f_norm.gif"> 
  704. <%}%>    
  705.   </td>
  706.   <td align=middle width=17 bgcolor=#ffffff> 
  707.   <% String urlboardname = StrUtil.UrlEncode(myboardname,"utf-8"); %>
  708.    <a href="showtopic_tree.jsp?boardcode=<%=myboardcode%>&hit=<%=(hit+1)%>&rootid=<%=id%>" target=_blank> 
  709.   <% if (type==1) { %>
  710.   <IMG height=15 alt="" src="images/f_poll.gif" width=17 border=0>
  711.   <%}else { %>
  712.   <img src="images/brow/<%=expression%>.gif" border=0>
  713.   <%}%>
  714.   </a>
  715.    </td>
  716.    <td onMouseOver="this.style.backgroundColor='#ffffff'" onMouseOut="this.style.backgroundColor=''" align=left bgcolor=#f8f8f8> 
  717. <%
  718. if (recount==0) {
  719. %>
  720.   <img id=followImg<%=id%> title="<lt:Label res="res.label.forum.listtopic" key="no_reply"/>" src="<%=skinPath%>/images/minus.gif" loaded="no"> 
  721.   <% }else { %>
  722.   <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"> 
  723.   <% } %>
  724.   <a target="_blank" href="showtopic_tree.jsp?boardcode=<%=myboardcode%>&hit=<%=(hit+1)%>&rootid=<%=id%>"><%=StrUtil.toHtml(topic)%></a>
  725.   <%
  726. // 计算共有多少页回贴
  727. int allpages = (int)Math.ceil((double)recount/pagesize);
  728. if (allpages>1)
  729. {
  730. out.print("[");
  731. for (int m=1; m<=allpages; m++)
  732. { %>
  733.   <a target="_blank" href="showtopic.jsp?boardcode=<%=myboardcode%>&hit=<%=(hit+1)%>&boardname=<%=urlboardname%>&rootid=<%=id%>&CPages=<%=m%>"><%=m%></a> 
  734.   <% }
  735. out.print("]");
  736.  }%>        
  737.   </td>
  738.   <td align=middle width=91 bgcolor=#ffffff> 
  739.   <%if (privilege.getUser(request).equals(name)) { %>
  740.   <IMG height=14 src="<%=skinPath%>/images/my.gif" width=14>
  741.   <%}%>
  742.   <a href="../userinfo.jsp?username=<%=name%>"><%=um.getUser(name).getNick()%></a>      </td>
  743.   <td align=middle width=55 bgcolor=#f8f8f8><font color=red>[<%=recount%>]</font></td>
  744.   <td align=middle width=55 bgcolor=#ffffff><%=hit%></td>
  745.   <td align=left width=80 bgcolor=#f8f8f8> 
  746. <table cellspacing=0 cellpadding=2 width="100%" align=center border=0>
  747.   <tbody> 
  748.   <tr> 
  749. <td width="10%">&nbsp;</td>
  750. <td><%=lydate%></td>
  751.   </tr>
  752.   </tbody> 
  753. </table>      
  754.   </td>
  755.   <td align=middle width=91 bgcolor=#ffffff>&nbsp;&nbsp;
  756. <%if (!myboardcode.equals(Leaf.CODE_BLOG)) {%>
  757. <a target=_blank href="listtopic.jsp?boardcode=<%=StrUtil.UrlEncode(myboardcode)%>"><%=myboardname%></a>&nbsp;
  758. <%}else{%>
  759. <a target=_blank href="blog/myblog.jsp?userName=<%=StrUtil.UrlEncode(md.getName())%>"><%=myboardname%></a>
  760. <%}%></td>
  761. </tr>
  762. <tr id=follow<%=id%> style="DISPLAY: none">
  763.   <td noWrap align=middle width=30 bgcolor=#f8f8f8>&nbsp;</td>
  764.   <td noWrap align=middle width=30 bgcolor=#f8f8f8>&nbsp;</td> 
  765.   <td noWrap align=middle width=30 bgcolor=#f8f8f8>&nbsp;</td>
  766.   <td align=middle width=17 bgcolor=#ffffff>&nbsp;</td>
  767.   <td onMouseOver="this.style.backgroundColor='#ffffff'" onMouseOut="this.style.backgroundColor=''" align=left bgcolor=#f8f8f8 colspan="6">
  768.   <div id=followDIV<%=id%> style="WIDTH: 100%;BACKGROUND-COLOR: lightyellow" onClick=loadThreadFollow(<%=id%>,<%=id%>,"&hit=<%=hit+1%>&boardname=<%=urlboardname%>")><span style="WIDTH: 100%;">
  769.    <lt:Label res="res.label.forum.listtopic" key="wait"/>
  770.  </span></div></td>
  771. </tr>
  772. <tr> 
  773.   <td style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px" colspan=7>      </td>
  774. </tr>
  775. </tbody> 
  776.   </table>
  777. <%
  778. }
  779. %>
  780. <table width="98%" border="0" cellspacing="1" cellpadding="3" align="center">
  781. <tr> 
  782.   <td width="51%" height="23" align="left">
  783.   <input value="<lt:Label res="res.label.forum.topic_m" key="sel_all"/>" type="button" onClick="selAllCheckBox('ids')">&nbsp;&nbsp;
  784.   <input value="<lt:Label res="res.label.forum.topic_m" key="clear_all"/>" type="button" onClick="clearAllCheckBox('ids')">&nbsp;&nbsp; 
  785.   </td>
  786.   <td width="49%" align="right"><%   
  787.   querystr = "op="+op+"&selboard="+selboard+"&title="+StrUtil.UrlEncode(title)+"&nick="+StrUtil.UrlEncode(nick)+"&sBeginDate="+sBeginDate+"&sEndDate="+sEndDate;
  788.   querystr += "&threadType="+threadType+"&hitLess="+hitLess+"&hitMore="+hitMore+"&recountLess="+recountLess+"&recountMore="+recountMore;
  789.   querystr += "&sReDate="+sReDate+"&msgLevel="+msgLevel+"&isElite="+isElite+"&attach="+attach;
  790.   out.print(paginator.getCurPageBlock(request, "?"+querystr));
  791.   %></td>
  792. </tr>
  793. </table> 
  794. <%
  795. }
  796. %>
  797.     <br>
  798. </td>
  799.   </tr>
  800. </table>
  801. <iframe width=0 height=0 src="" id="hiddenframe"></iframe>
  802. <br>
  803. <br>
  804. <table width="86%"  border="0" align="center" cellpadding="0" cellspacing="0">
  805. <tr>
  806.   <td align="center"><INPUT type=button onclick="doOperation()" value=<lt:Label key="ok"/>></td>
  807. </tr>
  808. </table>
  809. </body>
  810. <script>
  811. function doOperation() {
  812. var ids = getCheckboxValue("ids");
  813. if (ids=="") {
  814. alert("<lt:Label res="res.label.forum.topic_m" key="need_id"/>");
  815. return;
  816. }
  817. var operation = getRadioValue("operation");
  818. if (operation == "") {
  819. alert("<lt:Label res="res.label.forum.topic_m" key="need_operation"/>");
  820. return;
  821. }
  822. if(operation == "moveBoard"){
  823. var toBoard = selToBoard.value;
  824. window.location.href = "topic_batch_m.jsp?operation=" + operation + "&selToBoard=" + toBoard + "&ids=" + ids + "&<%=querystr%>";
  825. }else{
  826. if(operation == "moveThreadType"){
  827. var toThreadType = selToThreadType.value;
  828. toBoardCode = hToBoardCode.value;
  829. window.location.href = "topic_batch_m.jsp?operation=" + operation + "&toThreadType=" + toThreadType + "&toBoardCode=" + toBoardCode + "&ids=" + ids + "&<%=querystr%>";
  830. }else{
  831.     if(operation == "msgLevel"){
  832. var msglevel = getRadioValue("setMsgLevel");
  833. if (msglevel == "") {
  834. alert("<lt:Label res="res.label.forum.topic_m" key="need_level"/>");
  835. return;
  836. }
  837. window.location.href = "topic_batch_m.jsp?operation=" + operation + "&msgLevel=" + msglevel + "&ids=" + ids + "&<%=querystr%>";
  838. }else{
  839. window.location.href = "topic_batch_m.jsp?operation=" + operation + "&ids=" + ids + "&<%=querystr%>";
  840. }
  841. }
  842. }
  843. }
  844. function threadTypeChange(){
  845.   for(var i = 0; i < threadTypeArr.length; i++){
  846.     if(form1.threadType.value == threadTypeArr[i][0]){
  847.    form1.txtBoardName.value = threadTypeArr[i][1]; 
  848.    form1.hBoardCode.value = toThreadTypeArr[i][2];  
  849.    return;
  850. }   
  851.   }
  852.   form1.txtBoardName.value = "";
  853.   form1.hBoardCode.value = "";
  854. }
  855. function toThreadTypeChange(){
  856.   for(var i = 0; i < toThreadTypeArr.length; i++){
  857.     if(selToThreadType.value == toThreadTypeArr[i][0]){
  858.    txtToBoardName.value = toThreadTypeArr[i][1];  
  859.    hToBoardCode.value = toThreadTypeArr[i][2]; 
  860.    return;
  861. }   
  862.   }
  863.   txtToBoardName.value = "";
  864.   hToBoardCode.value = "";
  865. }
  866. function selAllCheckBox(checkboxname){
  867. var checkboxboxs = document.all.item(checkboxname);
  868. if (checkboxboxs!=null)
  869. {
  870. // 如果只有一个元素
  871. if (checkboxboxs.length==null) {
  872. checkboxboxs.checked = true;
  873. }
  874. for (i=0; i<checkboxboxs.length; i++)
  875. {
  876. checkboxboxs[i].checked = true;
  877. }
  878. }
  879. }
  880. function clearAllCheckBox(checkboxname) {
  881. var checkboxboxs = document.all.item(checkboxname);
  882. if (checkboxboxs!=null)
  883. {
  884. // 如果只有一个元素
  885. if (checkboxboxs.length==null) {
  886. checkboxboxs.checked = false;
  887. }
  888. for (i=0; i<checkboxboxs.length; i++)
  889. {
  890. checkboxboxs[i].checked = false;
  891. }
  892. }
  893. }
  894. </script>
  895. </html>