| 1 2 23 package com.geinuke.module.forum; 24 25 import java.util.ArrayList ; 26 import java.util.HashMap ; 27 import java.util.Locale ; 28 29 import javax.servlet.http.HttpServletRequest ; 30 import javax.servlet.http.HttpServletResponse ; 31 32 import org.apache.velocity.context.Context; 33 34 import com.geinuke.common.EditorFactory; 35 import com.geinuke.common.GlobalConfigurationI; 36 import com.geinuke.common.ModuleWidgetI; 37 import com.geinuke.common.NukeModuleI; 38 import com.geinuke.common.PageTool; 39 import com.geinuke.common.UserI; 40 import com.geinuke.middle.ICommentBL; 41 import com.geinuke.middle.IForumBL; 42 import com.geinuke.middle.ITopicBL; 43 import com.geinuke.module.ModuleWriter; 44 import com.geinuke.servlet.GeiServlet; 45 import com.geinuke.util.NukeResource; 46 import com.geinuke.util.TextUtil; 47 import com.geinuke.vo.CommentVO; 48 import com.geinuke.vo.ForumVO; 49 import com.geinuke.vo.ModuleDBVO; 50 import com.geinuke.vo.TopicVO; 51 52 53 public class InsForumComment implements ModuleWidgetI{ 54 55 56 protected String checkErrors(HttpServletRequest req){ 57 String error=null; 58 if( TextUtil.isEmpty(req.getParameter("subject")) ){ 59 error="EMPTY_SUBJECT_ERROR"; 60 }else if( TextUtil.isEmpty(req.getParameter("commenttext")) ){ 61 error="EMPTY_COMMENTTEXT_ERROR"; 62 }else if( Integer.parseInt(req.getParameter("tid")) <0){ 63 error=""; 64 } 65 return error; 66 } 67 68 protected CommentVO getCommentVO(HttpServletRequest req,UserI user){ 69 CommentVO co=null; 70 co=new CommentVO(); 71 co.setComType(CommentVO.CAT_FORUMS); 72 co.setSubject(req.getParameter("subject")); 73 co.setXId( Integer.parseInt( req.getParameter("tid") ) ); 74 co.setText(req.getParameter("commenttext")); 75 co.setUId(user.getId()); 76 co.setTime(System.currentTimeMillis()); 77 return co; 78 } 79 80 public NukeModuleI handleAction(ModuleDBVO module, Context ctx,HttpServletRequest req, HttpServletResponse res, UserI user, GlobalConfigurationI gConf) throws Exception { 81 String moduleTempName=null; 82 ArrayList topicsTID=new ArrayList (); 83 int tid=Integer.parseInt( req.getParameter("tid") ); 84 CommentVO co=null; 85 86 ForumVO forum=null; 87 TopicVO to=null; 88 IForumBL fbl=(IForumBL)GeiServlet.getBL("IForumBL"); 89 ITopicBL tbl=(ITopicBL)GeiServlet.getBL("ITopicBL"); 90 forum=fbl.getForumByTId(tid); 91 if(forum.getFState()<3){ 92 to=tbl.getForumTopicByTId(tid); 93 String error=this.checkErrors(req); 94 co=this.getCommentVO(req,user); 95 96 if(error==null){ 97 ICommentBL cbl=(ICommentBL)GeiServlet.getBL("ICommentBL"); 98 cbl.insComment(co); 99 res.sendRedirect("Forum.jhtm?op=showST&tid="+to.getTId()); 100 } 101 ICommentBL cbl=(ICommentBL)GeiServlet.getBL("ICommentBL"); 102 HashMap authors=cbl.getUsersByForumCommentXId(tid); 103 Locale lo=NukeResource.getLocale(req,res); 104 EditorFactory ef=new EditorFactory(req,null); 106 ctx.put("factory",ef); 107 ctx.put("pageTool",new PageTool(lo)); 108 ctx.put("topic",to); 109 ctx.put("authors",authors); 110 ctx.put("replies",to.getComments()); 111 ctx.put("forum",forum); 112 }else{ 113 res.sendRedirect("ErrorForum.jhtm"); 114 } 115 116 moduleTempName=gConf.getModulePage(module.getName(),req); 117 return ModuleWriter.fill(ctx,module,moduleTempName); 118 } 119 120 } 121 | Popular Tags |