mvnForum » 列出所有討論區 » » 討論區: mvnforum » » » 話題: mvnforum 精華文章功能範例 |
|
列印 2024/4/25 下午 01:03:21 | 在同一個網頁中顯示這個話題的所有文章 |
文章作者 jieh 於 2007/10/25 下午 12:52:31 |
mvnforum 精華文章功能範例 最近一直在看mvnforum 遗憾的是到现在对代码还不是很熟悉。花了接近一天的时间才写出来,贴上来和大家一起探讨学习 本次修改参考了wangyi的帖子http://www.shorelinesolution.com/forum/viewthread?thread=115#480 上次写了论坛实现版主功能的帖子,jing 还有wangyi提了很好的建议,同时在他们那也学到很多东西 受益非浅。在此表示感谢。废话不多说了 首先需要改的页面文件为:listforums.jsp、listthreads.jsp、editthreadtype.jsp。 listforums.jsp里面加入的代码为: <% String typeImage = ""; switch (thread.getThreadType()) { case ThreadBean.THREAD_TYPE_STICKY: typeImage = "sticky.gif"; hasSticky = true; break; case ThreadBean.THREAD_TYPE_FORUM_ANNOUNCEMENT: typeImage = "announce.gif"; hasAnnouncement = true; break; case ThreadBean.THREAD_TYPE_GLOBAL_ANNOUNCEMENT: typeImage = "global_announce.gif"; hasGlobalAnnouncement = true; break; //////add by dyhjjk begin case ThreadBean.THREAD_TYPE_PINK: typeImage="[精华]"; //////end default:break; } %> <% if ( thread.getThreadType() != ThreadBean.THREAD_TYPE_DEFAULT) { %> <!--/////////add by dyhjjk begin--> <% if(thread.getThreadType()==ThreadBean.THREAD_TYPE_PINK){ out.print("<font color=red>"+typeImage+"</font>"); }else{ %> <!--//////////end--> <img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/<%=typeImage%>"/> <!--/////////////add by dyhjjk begin--> <%}%> <!--///////////end--> listthreads.jsp里面加入的代码为: <% String typeImage = ""; switch (threadBean.getThreadType()) { case ThreadBean.THREAD_TYPE_STICKY: typeImage = "sticky.gif"; hasSticky = true; break; case ThreadBean.THREAD_TYPE_FORUM_ANNOUNCEMENT: typeImage = "announce.gif"; hasAnnouncement = true; break; case ThreadBean.THREAD_TYPE_GLOBAL_ANNOUNCEMENT: typeImage = "global_announce.gif"; hasGlobalAnnouncement = true; break; //***************add by dyhjjk************************** case ThreadBean.THREAD_TYPE_PINK: typeImage="[精华]"; break; //***************add by dyhjjk************************** default:break; } %> <% if ( threadBean.getThreadType() != ThreadBean.THREAD_TYPE_DEFAULT) { %> <!--***************add by dyhjjk**************************--> <% if(threadBean.getThreadType()==ThreadBean.THREAD_TYPE_PINK){ out.print("<font color=red>"+typeImage+"</font>"); }else{ %> <img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/<%=typeImage%>"/> <!--***************add by dyhjjk**************************--> <% }%> editthreadtype.jsp中加入的代码为: <!-------------------add by dyhjjk--------------------> <% if (threadType!=4){ %> <option id="4" value="4"> 精华贴</option> <%}%> <!-------------------add by dyhjjk--------------------> 需要改的类文件有: ThreadBean.java /**** * add by dyhjjk 设置精华帖子 */ public final static int THREAD_TYPE_PINK = 4; public final static int THREAD_TYPE_FORUM_ANNOUNCEMENT = 2; /********** * modify by dyhjjk */ public final static int THREAD_TYPE_GLOBAL_ANNOUNCEMENT = 5; ThreadDAO.java /***************** * add by dyhjjk 获得精华帖子 * @param forumID * @return * @throws DatabaseException */ public Collection getPinkForum(int forumID) throws DatabaseException; ThreadCache.java /****************** * add by dyhjjk 返回精华帖子 * @return * @throws DatabaseException */ public Collection getPinkForum(int forumID) throws DatabaseException { Collection result = null; if (cache != null) { StringBuffer buffer = new StringBuffer(128); buffer.append("getPinkForum").append(forumID); String key = buffer.toString(); result = (Collection)cache.retrieve(key); if (result == null) { result = DAOFactory.getThreadDAO().getPinkForum(forumID); cache.store(key, result, TIME_OUT); } } else { result = DAOFactory.getThreadDAO().getPinkForum(forumID); } return result; } ThreadDAOImplJDBC.java /***************** * add by dyhjjk 获得精华帖子 */ public Collection getPinkForum(int forumID)throws DatabaseException{ return getEnableThreads_inType_inForum(forumID,ThreadBean.THREAD_TYPE_PINK); } ThreadWebHandler.java 在prepareList_limit()中加入 /*********** *add by dyhjjk 从缓存中取得精华帖子 */ Collection pinkforum=ThreadCache.getInstance().getPinkForum(forumID); allThreadBeans.addAll(pinkforum); MyUtil.java getThreadTypeName中加入 /************* * modify by dyhjjk */ case ThreadBean.THREAD_TYPE_PINK: result="精华贴"; break; ---------------------------------------- 支持小惡魔 BTC : 19tn3RnCuwZVukXAwyhDWZD4uBgUZoGJPx LTC : LTFa17pSvvoe3aU5jbmfcmEpo1xuGa9XeA 知識跟八卦一樣,越多人知道越有價值;知識最好的備份方法,散播! 藍色小惡魔(林永傑): 臉書 |