1 22 package com.geinuke.module.forum; 23 24 import java.util.ArrayList ; 25 import java.util.HashMap ; 26 import java.util.Locale ; 27 28 import javax.servlet.http.HttpServletRequest ; 29 import javax.servlet.http.HttpServletResponse ; 30 31 import org.apache.velocity.context.Context; 32 33 import com.geinuke.common.GlobalConfigurationI; 34 import com.geinuke.common.ModuleWidgetI; 35 import com.geinuke.common.NukeModuleI; 36 import com.geinuke.common.PageTool; 37 import com.geinuke.common.UserI; 38 import com.geinuke.middle.ICategoryBL; 39 import com.geinuke.middle.IForumBL; 40 import com.geinuke.middle.IUserBL; 41 import com.geinuke.module.ModuleWriter; 42 import com.geinuke.servlet.GeiServlet; 43 import com.geinuke.util.CookieHandler; 44 import com.geinuke.util.CountArrayList; 45 import com.geinuke.util.NukeResource; 46 import com.geinuke.util.Paginator; 47 import com.geinuke.vo.CategoryVO; 48 import com.geinuke.vo.ForumVO; 49 import com.geinuke.vo.ModuleDBVO; 50 import com.geinuke.vo.TopicVO; 51 52 53 54 public class ShowForumTopics implements ModuleWidgetI{ 55 56 public NukeModuleI handleAction(ModuleDBVO module, Context ctx,HttpServletRequest req, HttpServletResponse res, UserI user, GlobalConfigurationI gConf) throws Exception { 57 String moduleTempName=null; 58 ArrayList topicsTID=new ArrayList (); 59 ArrayList forums=null; 60 int fid=Integer.parseInt( req.getParameter("fid") ); 61 62 ForumVO forum=null; 63 IForumBL fbl=(IForumBL)GeiServlet.getBL("IForumBL"); 64 forums=fbl.getEmptyVisibleForums(); 65 forum=fbl.getForumByFId(fid); 66 67 ForumUtil fu=new ForumUtil(user,new CookieHandler(req,res)); 68 fu.tagForum(forum); 69 70 Integer ii=null; 71 for(int i=0;i<forum.getTopics().size();i++){ 72 ii=new Integer ( ((TopicVO)forum.getTopics().get(i)).getTId() ); 73 topicsTID.add(ii); 74 } 75 76 IUserBL ubl=(IUserBL)GeiServlet.getBL("IUserBL"); 77 HashMap authors=ubl.getLastTopicsAuthorByTIdArray(topicsTID); 78 79 ICategoryBL cbl=(ICategoryBL)GeiServlet.getBL("ICategoryBL"); 80 ArrayList cats=cbl.getCategoriesByCatType(CategoryVO.CAT_FORUMS); 81 ctx.put("cats",cats); 82 83 if(user.getRole().getLevela()>=160) 84 ctx.put("mayChange","Y"); 85 86 Locale lo=NukeResource.getLocale(req,res); 87 String pag=req.getParameter("wp"); 88 ArrayList list=null; 89 Paginator pager=new Paginator(forum.getTopics(),15,"Forum.jhtm?"+req.getQueryString()); 90 if(pag!=null){ 91 list=pager.getPage(Integer.parseInt(pag)); 92 }else{ 93 list=pager.getPage(1); 94 } 95 if(list==null) 96 list=new ArrayList (); 97 forum.setTopics(new CountArrayList(list)); 98 ctx.put("pag",pager); 100 101 102 ctx.put("forums",forums); 103 ctx.put("lastA",authors); 104 ctx.put("pageTool",new PageTool(lo)); 105 ctx.put("forum",forum); 106 107 108 109 moduleTempName=gConf.getModulePage(module.getName(),req); 110 return ModuleWriter.fill(ctx,module,moduleTempName); 111 } 112 113 } | Popular Tags |