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

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html;charset=utf-8"%>
  2. <%@ page import="com.redmoon.forum.*"%>
  3. <%@ page import="cn.js.fan.util.*"%>
  4. <%@ page import="java.util.*"%>
  5. <%@ page import="com.redmoon.forum.person.*"%>
  6. <%@ page import="com.redmoon.forum.plugin.*"%>
  7. <%@ page import="com.redmoon.forum.plugin.base.*"%>
  8. <%@ taglib uri="/WEB-INF/tlds/LabelTag.tld" prefix="lt" %>
  9. <jsp:useBean id="privilege" scope="page" class="com.redmoon.forum.Privilege"/>
  10. <%
  11. String targeturl = StrUtil.getUrl(request);
  12. if (!privilege.isUserLogin(request)) {
  13. response.sendRedirect("../door.jsp?targeturl="+targeturl);
  14. return;
  15. }
  16. int i=0;
  17. String strreplyid = request.getParameter("replyid");
  18. if (strreplyid==null || !StrUtil.isNumeric(strreplyid))
  19. {
  20. out.println(SkinUtil.makeErrMsg(request, SkinUtil.LoadString(request, SkinUtil.ERR_ID)));
  21. return;
  22. }
  23. long replyid = Long.parseLong(strreplyid);
  24. String privurl = request.getParameter("privurl");
  25. String quote = StrUtil.getNullString(request.getParameter("quote"));
  26. String quotecontent = "";
  27. String retopic;
  28. MsgMgr msgMgr = new MsgMgr();
  29. MsgDb msgDb = msgMgr.getMsgDb(replyid);
  30. String boardcode = msgDb.getboardcode();
  31. String userName = privilege.getUser(request);
  32. if (!privilege.canUserDo(request, boardcode, "reply_topic")) {
  33. response.sendRedirect("../info.jsp?info= " + StrUtil.UrlEncode(SkinUtil.LoadString(request, "pvg_invalid")));
  34. return;
  35. }
  36. retopic = msgDb.getTitle();
  37. String qc = SkinUtil.LoadString(request, "res.label.forum.addreply", "quote_content");
  38. qc = qc.replaceFirst("\$u", msgDb.getName());
  39. qc = qc.replaceFirst("\$d", com.redmoon.forum.ForumSkin.formatDateTime(request, msgDb.getAddDate()));
  40. quotecontent = qc + "rnrn" + msgDb.getContent();
  41. quotecontent = "<table align=center style="width:80%" cellpadding=5 cellspacing=1 class=quote><TR><TD>" + quotecontent + "</td></tr></table>";
  42. retopic = SkinUtil.LoadString(request, "res.label.forum.addreply", "reply") + retopic;
  43. Leaf lf = new Leaf();
  44. lf = lf.getLeaf(boardcode);
  45. String boardname = lf.getName();
  46. String hit = request.getParameter("hit");
  47. // 取得皮肤路径
  48. String skincode = lf.getSkin();
  49. if (skincode.equals("") || skincode.equals(UserSet.defaultSkin)) {
  50. skincode = UserSet.getSkin(request);
  51. if (skincode==null || skincode.equals(""))
  52. skincode = UserSet.defaultSkin;
  53. }
  54. SkinMgr skm = new SkinMgr();
  55. Skin skin = skm.getSkin(skincode);
  56. String skinPath = skin.getPath();
  57. com.redmoon.forum.Config cfg1 = new com.redmoon.forum.Config();
  58. int msgTitleLengthMin = cfg1.getIntProperty("forum.msgTitleLengthMin");
  59. int msgTitleLengthMax = cfg1.getIntProperty("forum.msgTitleLengthMax");
  60. int msgLengthMin = cfg1.getIntProperty("forum.msgLengthMin");
  61. int msgLengthMax = cfg1.getIntProperty("forum.msgLengthMax");
  62. int maxAttachmentCount = cfg1.getIntProperty("forum.maxAttachmentCount");
  63. int maxAttachmentSize = cfg1.getIntProperty("forum.maxAttachmentSize");
  64. %>
  65. <html>
  66. <head>
  67. <title><lt:Label res="res.label.forum.addreply" key="addreply"/> - <%=Global.AppName%></title>
  68. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  69. <link href="<%=skinPath%>/skin.css" rel="stylesheet" type="text/css">
  70. <STYLE>
  71. TABLE {
  72. BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 1px
  73. }
  74. TD {
  75. BORDER-RIGHT: 0px; BORDER-TOP: 0px
  76. }
  77. body {
  78. margin-top: 0px;
  79. }
  80. </STYLE>
  81. <script>
  82. function frmAnnounce_onsubmit()
  83. {
  84. if (!cws_validateMode())
  85. return false;
  86. if (document.frmAnnounce.topic.value.length<<%=msgTitleLengthMin%>)
  87. {
  88. alert("<lt:Label res="res.forum.MsgDb" key="err_too_short_title"/><%=msgTitleLengthMin%>");
  89. return false;
  90. }
  91. if (document.frmAnnounce.topic.value.length><%=msgTitleLengthMax%>)
  92. {
  93. alert("<lt:Label res="res.forum.MsgDb" key="err_too_large_title"/><%=msgTitleLengthMax%>");
  94. return false;
  95. }
  96. var html;
  97. html=cws_getText();
  98. html=cws_rCode(html,"<a> </a>","");
  99.   document.frmAnnounce.Content.value=html;
  100. if (document.frmAnnounce.Content.value.length<<%=msgLengthMin%>)
  101. {
  102. alert("<lt:Label res="res.forum.MsgDb" key="err_too_short_content"/><%=msgLengthMin%>");
  103. return false;
  104. }
  105. if (document.frmAnnounce.Content.value.length><%=msgLengthMax%>)
  106. {
  107. alert("<lt:Label res="res.forum.MsgDb" key="err_too_large_content"/><%=msgLengthMax%>");
  108. return false;
  109. }
  110. }
  111. var attachCount = 1;
  112. function addImg(attchId, imgPath) {
  113. var img = "<img alt='<%=cn.js.fan.web.SkinUtil.LoadString(request, "res.cn.js.fan.util.StrUtil", "click_open_win")%>' style='cursor:hand' onclick="window.open('" + imgPath + "')" onload='javascript:if(this.width>screen.width-333)this.width=screen.width-333' src='" + imgPath + "'>";
  114. if ((IframeID.document.selection)&&(IframeID.document.selection.type == "Text")) {
  115. var range = IframeID.document.selection.createRange();
  116. range.pasteHTML(range.htmlText + "<BR>" + img + "<BR>");
  117. }
  118. else {
  119. IframeID.document.body.innerHTML = IframeID.document.body.innerHTML + "<BR>" + img + "<BR>";
  120. }
  121. divTmpAttachId.innerHTML += "<input type=hidden name=tmpAttachId value='" + attchId + "'>";
  122. attachCount++;
  123. if (attachCount><%=maxAttachmentCount%>) {
  124. // uploadTable.style.display = "none"; // 隐藏了,但是如果已选择了文件,还是会被上传
  125. uploadTable.outerHTML = "";
  126. }
  127. }
  128. function getAttachCount() {
  129. return attachCount - 1;
  130. }
  131. function AddAttach() {
  132. if (attachCount>=<%=maxAttachmentCount%>) {
  133. alert("<lt:Label res="res.label.forum.addtopic" key="topic_max_attach"/><%=maxAttachmentCount%>");
  134. return;
  135. }
  136. updiv.insertAdjacentHTML("BeforeEnd", "<table width=100%><tr><lt:Label res="res.label.forum.addtopic" key="file"/>&nbsp;<input type='file' name='filename" + attachCount + "' size=10><td></td></tr></table>");
  137. // updiv.innerHTML += "<table width=100%><tr><lt:Label res="res.label.forum.addtopic" key="file"/>&nbsp;<input type='file' name='filename" + attachCount + "' size=10><td></td></tr></table>";
  138. attachCount += 1;
  139. }
  140. </script>
  141. </head>
  142. <body>
  143. <%@ include file="inc/header.jsp"%>
  144. <jsp:useBean id="StrUtil" scope="page" class="cn.js.fan.util.StrUtil"/>
  145. <jsp:useBean id="userservice" scope="page" class="com.redmoon.forum.person.userservice" />
  146. <%@ include file="inc/position.jsp"%>
  147. <br>
  148. <script src="inc/ubbcode.jsp"></script>
  149. <table width="98%" border="1" align="center" cellpadding="4" cellspacing="0" borderColor="<%=skin.getTableBorderClr()%>">
  150. <form name=frmAnnounce method="post" action="addreplytodb.jsp" enctype="MULTIPART/FORM-DATA" onSubmit="return frmAnnounce_onsubmit()">
  151.     <TBODY>
  152.       <tr> 
  153.       <td colspan="2" background="<%=skinPath%>/images/bg1.gif" class="td_title"> <lt:Label res="res.label.forum.addreply" key="reply_topic"/>&nbsp;<a href="showtopic_tree.jsp?rootid=<%=msgDb.getRootid()%>&showid=<%=msgDb.getId()%>"><%=msgDb.getTitle()%></a>&nbsp;&nbsp;&nbsp;&nbsp;
  154.   <lt:Label res="res.label.forum.addreply" key="board"/>&nbsp;<a class=left href="listtopic.jsp?boardcode=<%=boardcode%>"><%=boardname%></a></td>
  155.       </tr>
  156.     </TBODY>
  157.     <TBODY>
  158.       <tr>
  159.         <td colspan="2">
  160.           <%
  161. String pluginCode = msgDb.getRootMsgPluginCode();
  162.   
  163. PluginMgr pm = new PluginMgr();
  164. Vector vplugin = pm.getAllPluginUnitOfBoard(boardcode);
  165. if (vplugin.size()>0) {
  166. Iterator irplugin = vplugin.iterator();
  167. long msgRootId = msgDb.getRootid();
  168. while (irplugin.hasNext()) {
  169. PluginUnit pu = (PluginUnit)irplugin.next();
  170. IPluginUI ipu = pu.getUI(request, response, out);
  171. IPluginViewAddReply pv = ipu.getViewAddReply(boardcode, msgRootId);
  172. if (pv.IsPluginBoard()) {
  173. boolean showPlugin = false;
  174. if (pu.getType().equals(pu.TYPE_BOARD))
  175. showPlugin = true;
  176. else if (pu.getType().equals(pu.TYPE_TOPIC)) {
  177. if (pluginCode.equals(pu.getCode()))
  178. showPlugin = true;
  179. }
  180. if (showPlugin) {
  181. if (!pu.getAddReplyPage().equals("")) {
  182. %>
  183. <jsp:include page="<%=pu.getAddReplyPage()%>" flush="true">
  184. <jsp:param name="msgRootId" value="<%=replyid%>" /> 
  185. </jsp:include>
  186. <% }
  187. else {
  188. out.print(pu.getName(request) + ":&nbsp;" + pv.render(UIAddReply.POS_FORM_NOTE) + "<BR>");
  189. out.print(pv.render(UIAddReply.POS_FORM_ELEMENT));
  190. }
  191. }
  192. }
  193. }
  194. }
  195. %>        </td>
  196.       </tr>
  197. <%
  198. if (cfg1.getBooleanProperty("forum.addUseValidateCode")) {
  199. %>
  200. <tr><td width="20%"><lt:Label res="res.label.forum.addtopic" key="input_validatecode"/></td><td><input name="validateCode" type="text" size="1">
  201.   <img src='../validatecode.jsp' border=0 align="absmiddle" style="cursor:hand" onClick="this.src='../validatecode.jsp'" alt="<lt:Label res="res.label.forum.index" key="refresh_validatecode"/>"></td>
  202. </tr>   <%}%>   
  203.       <tr> 
  204.       <td width="20%"><lt:Label res="res.label.forum.addreply" key="topic_reply"/></td>
  205.         <td width="80%"> <SELECT name=font onchange=DoTitle(this.options[this.selectedIndex].value)>
  206.             <OPTION selected value=""><lt:Label res="res.label.forum.addtopic" key="sel_topic"/></OPTION>
  207.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_origi"/>><lt:Label res="res.label.forum.addtopic" key="pre_origi"/></OPTION>
  208.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_from"/>><lt:Label res="res.label.forum.addtopic" key="pre_from"/></OPTION>
  209.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_water"/>><lt:Label res="res.label.forum.addtopic" key="pre_water"/></OPTION>
  210.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_discuss"/>><lt:Label res="res.label.forum.addtopic" key="pre_discuss"/></OPTION>
  211.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_help"/>><lt:Label res="res.label.forum.addtopic" key="pre_help"/></OPTION>
  212.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_recommend"/>><lt:Label res="res.label.forum.addtopic" key="pre_recommend"/></OPTION>
  213.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_notice"/>><lt:Label res="res.label.forum.addtopic" key="pre_notice"/></OPTION>
  214.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_note"/>><lt:Label res="res.label.forum.addtopic" key="pre_note"/></OPTION>
  215.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_image"/>><lt:Label res="res.label.forum.addtopic" key="pre_image"/></OPTION>
  216.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_advise"/>><lt:Label res="res.label.forum.addtopic" key="pre_advise"/></OPTION>
  217.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_download"/>><lt:Label res="res.label.forum.addtopic" key="pre_download"/></OPTION>
  218.             <OPTION value=<lt:Label res="res.label.forum.addtopic" key="pre_share"/>><lt:Label res="res.label.forum.addtopic" key="pre_share"/></OPTION>
  219.           </SELECT> 
  220.   <input name="topic" type="text" id="topic" size="60" maxlength="80" value="<%=StrUtil.toHtml(retopic)%>">
  221.   <input type=hidden name=replyid value="<%=replyid%>">
  222.           <input type="hidden" name="boardcode" value="<%=boardcode%>">
  223.           <input type="hidden" name="boardname" value="<%=boardname%>">
  224.           <input type="hidden" name="hit" value="<%=hit%>">
  225.           <input type="hidden" name="privurl" value="<%=privurl%>"></td>
  226.       </tr>
  227.       <tr> 
  228.         <td width="20%"><lt:Label res="res.label.forum.addtopic" key="emote_icon"/></td>
  229.         <td><iframe src="iframe_emote.jsp" height="25"  width="500" marginwidth="0" marginheight="0" frameborder="0" scrolling="yes"></iframe>
  230.         <input type="hidden" name="expression" value="25"></td>
  231.       </tr>
  232.       
  233.       <tr>
  234.         <td valign="bottom"><input type="checkbox" name="show_ubbcode" value="0">
  235.           <lt:Label res="res.label.forum.showtopic" key="forbid_ubb"/><br> <input type="checkbox" name="show_smile" value="0">
  236.           <lt:Label res="res.label.forum.showtopic" key="forbid_emote"/><br>        </td> 
  237.         <td>
  238. <%
  239. if (privilege.canUserUpload(userName, boardcode)) {
  240. %>
  241. <iframe src="uploadimg.jsp" width=100% height="28" frameborder="0" scrolling="no"></iframe>
  242. <%}%>
  243.         <%@ include file="../editor_full/editor.jsp"%>
  244. <%
  245. if (privilege.canUserUpload(userName, boardcode)) {
  246. %>
  247. <table width="100%" border=0 cellspacing=0 cellpadding=0 id="uploadTable">
  248. <tr>
  249.   <td class=tablebody1 valign=top height=10></td>
  250. </tr>
  251. <tr>
  252.   <td class=tablebody1 valign=top height=30><lt:Label res="res.label.forum.addtopic" key="file"/>&nbsp;<input type="file" name="filename" size=10>
  253. <lt:Label res="res.label.forum.addtopic" key="file_limit_count"/><%=maxAttachmentCount%>&nbsp;<lt:Label res="res.label.forum.addtopic" key="file_limit_all_size"/><%=maxAttachmentSize%>K
  254. <input name="button" type=button onClick="AddAttach()" value="<lt:Label res="res.label.forum.addtopic" key="add_attach"/>">
  255. <select name="select">
  256.   <option>
  257.   <lt:Label res="res.label.forum.addtopic" key="upload_file_ext"/>
  258.   </option>
  259.   <%
  260. String[] ext = StrUtil.split(cfg1.getProperty("forum.ext"), ",");
  261. if (ext!=null) {
  262. int extlen = ext.length;
  263. for (int p=0; p<extlen; p++) {
  264. out.print("<option>" + ext[p] + "</option>");
  265. }
  266. }
  267. %>
  268. </select></td></tr>
  269. </table>
  270. <div id=updiv name=updiv></div>
  271. <%}%>
  272.           <input type=hidden name="Content">
  273.           <input type=hidden name="isWebedit" value="<%=MsgDb.WEBEDIT_NORMAL%>">
  274. <%if (quote!=null && quote.equals("1")) {%>
  275.   <textarea name="tmpContent" style="display:none"><%=quotecontent%></textarea>
  276.   <script>
  277.   IframeID.document.body.innerHTML=frmAnnounce.tmpContent.value;
  278.   </script>
  279. <%}%>
  280.           <br>
  281.           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  282.           <input type=submit value="<lt:Label res="res.label.forum.addtopic" key="commit"/>">
  283.           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  284.           <input type=reset value="<lt:Label res="res.label.forum.addtopic" key="rewrite"/>">
  285.           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  286.           <input type="button" onClick="window.location.href='addreply.jsp?replyid=<%=replyid%>&boardcode=<%=StrUtil.UrlEncode(boardcode)%>&rootid=<%=msgDb.getRootid()%>&privurl=<%=privurl%>'" value="<lt:Label res="res.label.forum.addtopic" key="add_ubb"/>">
  287.   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  288.           <%if (privilege.canWebEditRedMoon(request, boardcode)) {%>
  289.           <input type="button" onClick="window.location.href='addreply_we.jsp?replyid=<%=replyid%>&boardcode=<%=StrUtil.UrlEncode(boardcode)%>&rootid=<%=msgDb.getRootid()%>&privurl=<%=privurl%>'" value="<lt:Label res="res.label.forum.addtopic" key="add_we"/>">
  290.           <%}%>
  291. <div id="divTmpAttachId"></div>
  292.   </td>
  293.       </tr>
  294.       <tr> 
  295.         <td colspan="2">&nbsp;</td>
  296.       </tr>
  297.     </TBODY></form>
  298. </table>
  299. <%@ include file="inc/footer.jsp"%>
  300. </body>
  301. </html>