1 2 3 24 package com.geinuke.module.admin; 25 26 import java.util.ArrayList ; 27 import java.util.Hashtable ; 28 import java.util.Locale ; 29 30 import javax.servlet.http.HttpServletRequest ; 31 import javax.servlet.http.HttpServletResponse ; 32 33 import org.apache.velocity.context.Context; 34 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.ICategoryBL; 41 import com.geinuke.middle.IForumBL; 42 import com.geinuke.module.ModuleWriter; 43 import com.geinuke.module.forum.ForumUtil; 44 import com.geinuke.servlet.GeiServlet; 45 import com.geinuke.util.CookieHandler; 46 import com.geinuke.util.NukeResource; 47 import com.geinuke.util.TextUtil; 48 import com.geinuke.vo.CategoryVO; 49 import com.geinuke.vo.ForumVO; 50 import com.geinuke.vo.ModuleDBVO; 51 52 53 public class AdminForum implements ModuleWidgetI{ 54 55 56 protected Hashtable categForums(ArrayList list){ 57 Hashtable h=null; 58 h=new Hashtable (); 59 ForumVO fo=null; 60 CategoryVO cat=null; 61 ArrayList forums=null; 62 for(int i=0;list!=null && i<list.size();i++){ 63 fo=(ForumVO)list.get(i); 64 cat=(CategoryVO)fo.getCategories().get(0); 65 forums=(ArrayList )h.get(cat.getTitle()); 66 if(forums!=null) 67 forums.add(fo); 68 else{ 69 forums=new ArrayList (); 70 forums.add(fo); 71 h.put(cat.getTitle(),forums); 72 } 73 } 74 75 return h; 76 } 77 78 protected String checkErrors(HttpServletRequest req){ 79 String error=null; 80 if( TextUtil.isEmpty(req.getParameter("name")) ){ 81 error="EMPTY_NAME_ERROR"; 82 }else if( TextUtil.isEmpty(req.getParameter("desc")) ){ 83 error="EMPTY_DESC_ERROR"; 84 } 85 return error; 86 } 87 88 protected ForumVO getForum(HttpServletRequest req,UserI user){ 89 ForumVO fo=null; 90 fo=new ForumVO(); 91 fo.setFState(ForumVO.STATE_VISIBLE); 92 fo.setFName(req.getParameter("name")); 93 fo.setFDescription(req.getParameter("desc")); 94 ArrayList cats=new ArrayList (); 95 CategoryVO c=new CategoryVO(); 96 c.setCatId( Integer.parseInt( req.getParameter("type") ) ); 97 cats.add(c); 98 fo.setCategories(cats); 99 return fo; 100 } 101 102 103 104 public NukeModuleI handleAction(ModuleDBVO module, Context ctx,HttpServletRequest req, HttpServletResponse res, UserI user, GlobalConfigurationI gConf) throws Exception { 105 String moduleTempName=null; 106 ArrayList forums=null; 107 IForumBL fbl=(IForumBL)GeiServlet.getBL("IForumBL"); 108 ICategoryBL cbl=(ICategoryBL)GeiServlet.getBL("ICategoryBL"); 109 String error=null; 110 if(req.getParameter("c")!=null && req.getParameter("c").equals("ins") ){ 111 error=this.checkErrors(req); 112 ForumVO fo=this.getForum(req,user); 113 if(error==null){ 114 fbl.insForum(fo); 115 }else{ 116 ctx.put("errors",ctx); 117 ctx.put("fo",fo); 118 } 119 120 } 121 122 123 forums=fbl.getVisibleForums(); 124 ForumUtil fu=new ForumUtil(user,new CookieHandler(req,res)); 125 fu.tagForums(forums); 126 Hashtable h=this.categForums(forums); 127 128 129 ArrayList cats=cbl.getCategoriesByCatType(CategoryVO.CAT_FORUMS); 130 ArrayList catz=new ArrayList (h.keySet()); 131 Locale lo=NukeResource.getLocale(req,res); 132 133 ctx.put("cats",cats); 134 ctx.put("catz",catz); 135 ctx.put("pageTool",new PageTool(lo)); 136 ctx.put("fforums",forums); 137 ctx.put("HForums",h); 138 moduleTempName=gConf.getModulePage(module.getName(),req); 139 return ModuleWriter.fill(ctx,module,moduleTempName); 140 } 141 142 } | Popular Tags |