KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > geinuke > module > forum > ShowSingleForumTopic


1
2
3  /*
4  -- GeiNuke --
5 Copyright (c) 2005 by Roberto Sidoti [geinuke@users.sourceforge.net]
6  http://www.hostingjava.it/-geinuke/
7
8 This file is part of GeiNuke.
9
10     GeiNuke is free software; you can redistribute it and/or modify
11     it under the terms of the GNU General Public License as published by
12     the Free Software Foundation; either version 2 of the License, or
13     (at your option) any later version.
14
15     GeiNuke is distributed in the hope that it will be useful,
16     but WITHOUT ANY WARRANTY; without even the implied warranty of
17     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18     GNU General Public License for more details.
19
20     You should have received a copy of the GNU General Public License
21     along with GeiNuke; if not, write to the Free Software
22     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 */

24 package com.geinuke.module.forum;
25
26 import java.util.ArrayList JavaDoc;
27 import java.util.HashMap JavaDoc;
28 import java.util.Locale JavaDoc;
29
30 import javax.servlet.http.HttpServletRequest JavaDoc;
31 import javax.servlet.http.HttpServletResponse JavaDoc;
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.ICommentBL;
42 import com.geinuke.middle.IForumBL;
43 import com.geinuke.middle.ITopicBL;
44 import com.geinuke.module.ModuleWriter;
45 import com.geinuke.servlet.GeiServlet;
46 import com.geinuke.util.CookieHandler;
47 import com.geinuke.util.NukeResource;
48 import com.geinuke.util.Paginator;
49 import com.geinuke.util.ServletUtil;
50 import com.geinuke.vo.CategoryVO;
51 import com.geinuke.vo.ForumVO;
52 import com.geinuke.vo.ModuleDBVO;
53 import com.geinuke.vo.TopicVO;
54
55 public class ShowSingleForumTopic implements ModuleWidgetI{
56
57     public NukeModuleI handleAction(ModuleDBVO module, Context ctx,HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res, UserI user, GlobalConfigurationI gConf) throws Exception JavaDoc {
58         String JavaDoc moduleTempName=null;
59         ArrayList JavaDoc topicsTID=new ArrayList JavaDoc();
60         ArrayList JavaDoc forums=null;
61         int tid=Integer.parseInt( req.getParameter("tid") );
62         
63         ForumVO forum=null;
64         TopicVO to=null;
65         IForumBL fbl=(IForumBL)GeiServlet.getBL("IForumBL");
66         forum=fbl.getForumByTId(tid);
67         forums=fbl.getEmptyVisibleForums();
68         
69         ITopicBL tbl=(ITopicBL)GeiServlet.getBL("ITopicBL");
70         
71         to=tbl.getForumTopicByTId(tid);
72         if(ServletUtil.hasToUpdateForumTopic(req,to)){
73             to.setCounter(to.getCounter()+1);
74             to.setLastVisit(System.currentTimeMillis());
75             tbl.updateForumTopic(to);
76             ServletUtil.setVisitedTopic(req,to.getTId());
77         }
78         ForumUtil fu=new ForumUtil(user,new CookieHandler(req,res));
79         fu.tagTopic(forum,to,true);
80         
81         /*
82         Integer ii=null;
83         for(int i=0;i<forum.getTopics().size();i++){
84             ii=new Integer( ((TopicVO)forum.getTopics().get(i)).getTId() );
85             topicsTID.add(ii);
86         }
87         HashMap authors=UserBL.singleton().getLastTopicsAuthorByTIdArray(topicsTID);
88         */

89         
90         ICommentBL cbl=(ICommentBL)GeiServlet.getBL("ICommentBL");
91         
92         HashMap JavaDoc authors=cbl.getUsersByForumCommentXId(tid);
93         ICategoryBL cabl=(ICategoryBL)GeiServlet.getBL("ICategoryBL");
94         ArrayList JavaDoc cats=cabl.getCategoriesByCatType(CategoryVO.CAT_FORUMS);
95         ctx.put("cats",cats);
96         
97         
98         
99         Locale JavaDoc lo=NukeResource.getLocale(req,res);
100         //ctx.put("lastA",authors);
101

102         ArrayList JavaDoc list=null;
103         String JavaDoc pag=req.getParameter("wp");
104         Paginator pager=new Paginator(to.getComments(),15,"Forum.jhtm?"+req.getQueryString());
105         if(pag!=null){
106             list=pager.getPage(Integer.parseInt(pag));
107         }else{
108             list=pager.getPage(1);
109         }
110         
111         
112         ctx.put("pag",pager);
113         
114         if(user.getRole().getLevela()>=160)
115             ctx.put("mayChange","Y");
116         ctx.put("forums",forums);
117         ctx.put("pageTool",new PageTool(lo));
118         ctx.put("topic",to);
119         ctx.put("authors",authors);
120         //ctx.put("replies",to.getComments());
121
ctx.put("replies",list);
122         ctx.put("forum",forum);
123         
124         
125         moduleTempName=gConf.getModulePage(module.getName(),req);
126         return ModuleWriter.fill(ctx,module,moduleTempName);
127     }
128
129 }
130
Popular Tags