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

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