listrecentthreads.jsp

来自「一个完整的网络订餐系统」· JSP 代码 · 共 317 行

JSP
317
字号
<%--
 - $Header: /cvsroot/mvnforum/mvnforum/srcweb/mvnplugin/mvnforum/user/listrecentthreads.jsp,v 1.76 2005/02/21 18:33:19 minhnn Exp $
 - $Author: minhnn $
 - $Revision: 1.76 $
 - $Date: 2005/02/21 18:33:19 $
 -
 - ====================================================================
 -
 - Copyright (C) 2002-2005 by MyVietnam.net
 -
 - This program is free software; you can redistribute it and/or
 - modify it under the terms of the GNU General Public License
 - as published by the Free Software Foundation; either version 2
 - of the License, or any later version.
 -
 - All copyright notices regarding mvnForum MUST remain intact
 - in the scripts and in the outputted HTML.
 - The "powered by" text/logo with a link back to
 - http://www.mvnForum.com and http://www.MyVietnam.net in the
 - footer of the pages MUST remain visible when the pages
 - are viewed on the internet or intranet.
 -
 - This program is distributed in the hope that it will be useful,
 - but WITHOUT ANY WARRANTY; without even the implied warranty of
 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 - GNU General Public License for more details.
 -
 - You should have received a copy of the GNU General Public License
 - along with this program; if not, write to the Free Software
 - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 -
 - Support can be obtained from support forums at:
 - http://www.mvnForum.com/mvnforum/index
 -
 - Correspondence and Marketing Questions can be sent to:
 - info@MyVietnam.net
 -
 - @author: Minh Nguyen  minhnn@MyVietnam.net
 - @author: Mai  Nguyen  mai.nh@MyVietnam.net
 --%>
<%@ page contentType="text/html;charset=utf-8" %>
<%@ page errorPage="fatalerror.jsp"%>
<%@ page import="java.util.*" %>
<%@ page import="net.myvietnam.mvncore.util.ParamUtil" %>
<%@ page import="net.myvietnam.mvncore.util.StringUtil" %>
<%@ page import="net.myvietnam.mvncore.filter.EnableEmotionFilter" %>
<%@ page import="net.myvietnam.mvncore.security.Encoder" %>
<%@ page import="com.mvnforum.db.*" %>
<%@ page import="com.mvnforum.MyUtil" %>
<%@ page import="com.mvnforum.MVNForumGlobal" %>
<%@ page import="com.mvnforum.MVNForumResourceBundle" %>

<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ include file="inc_common.jsp"%>
<fmt:bundle basename="mvnForum_i18n">
<html <fmt:message key="mvnforum.common.i18n.html_dir"/>>
<head>
  <title><fmt:message key="mvnforum.common.forum.title_name"/> - <fmt:message key="mvnforum.user.listrecentthreads.title"/></title>
<%@ include file="/mvnplugin/mvnforum/meta.jsp"%>
<link href="<%=onlineUser.getCssPath()%>" rel="stylesheet" type="text/css">
</head>
<body leftmargin="0" topmargin="0">
<%@ include file="header.jsp"%>
<br/>

<table width="95%" align="center">
  <tr class="nav">
    <td><img src="<%=contextPath%>/mvnplugin/mvnforum/images/nav.gif"></td>
    <td width="100%" nowrap>
    <a class="nav" href="index"><fmt:message key="mvnforum.common.nav.index"/></a>&nbsp;&raquo;&nbsp;
  <% if (MVNForumConfig.getEnablePortalLikeIndexPage()) {%>
    <a class="nav" href="listforums"><fmt:message key="mvnforum.user.listforums.title"/></a>&nbsp;&raquo;&nbsp;
  <% } %>
    <fmt:message key="mvnforum.user.listrecentthreads.title"/>
    </td>
  </tr>
</table>
<br/>

<%
CategoryCache categoryCache = CategoryCache.getInstance();
ForumCache forumCache = ForumCache.getInstance();
Collection categoryBeans = categoryCache.getBeans();
Collection forumBeans = forumCache.getBeans();
%>
<table width="95%" align="center">
  <tr class="messageText"><td>
    <form>
<fmt:message key="mvnforum.common.quick_go"/> &raquo; <select name="FastGoForum" onChange="gotoPage(this.options[this.selectedIndex].value)">
        <option value=""><fmt:message key="mvnforum.common.prompt.choose_forum"/></option>
<%
for (Iterator catIter = categoryBeans.iterator(); catIter.hasNext(); ) {
    CategoryBean categoryBean = (CategoryBean)catIter.next();
    int categoryID = categoryBean.getCategoryID();
    if (MyUtil.canViewAnyForumInCategory(categoryID, permission) == false) continue; %>
        <option value=""></option>
        <option value="listforums"><%=categoryBean.getCategoryName()%></option>
        <option value="">---------------------------------</option>
    <%
    for (Iterator forumIter = forumBeans.iterator(); forumIter.hasNext(); ) {
        ForumBean forumBean = (ForumBean)forumIter.next();
        if (forumBean.getCategoryID() != categoryID) continue;
        if (permission.canReadPost(forumBean.getForumID()) && (forumBean.getForumStatus() != ForumBean.FORUM_STATUS_DISABLED) ) { %>
        <option value="listthreads?forum=<%=forumBean.getForumID()%>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<%=forumBean.getForumName()%></option>
<%      } //if
    } // for forum
}// for category %>
      </select>
    </form>
  </td></tr>
</table>

<%
String sort  = ParamUtil.getParameter(request, "sort");
String order = ParamUtil.getParameter(request, "order");

if (sort.length() == 0) sort = "ThreadLastPostDate";
if (order.length() == 0) order = "DESC";
%>
<table width="95%" align="center">
  <tr>
    <td nowrap class="messageText">
    <form action="listrecentthreads">
      <fmt:message key="mvnforum.common.sort_by"/>
      <select name="sort">
      <option value="ThreadLastPostDate" <%if (sort.equals("ThreadLastPostDate")) {%>selected<%}%>><fmt:message key="mvnforum.common.post.last_post_date"/></option>
      <option value="ThreadCreationDate" <%if (sort.equals("ThreadCreationDate")) {%>selected<%}%>><fmt:message key="mvnforum.common.post.first_post_date"/></option>
      <option value="MemberName" <%if (sort.equals("MemberName")) {%>selected<%}%>><fmt:message key="mvnforum.common.post.author"/></option>
      <option value="ThreadReplyCount" <%if (sort.equals("ThreadReplyCount")) {%>selected<%}%>><fmt:message key="mvnforum.common.reply_count"/></option>
      <option value="ThreadViewCount" <%if (sort.equals("ThreadViewCount")) {%>selected<%}%>><fmt:message key="mvnforum.common.view_count"/></option>
      </select>
      <fmt:message key="mvnforum.common.order"/>
      <select name="order">
      <option value="ASC" <%if (order.equals("ASC")) {%>selected<%}%>><fmt:message key="mvnforum.common.ascending"/></option>
      <option value="DESC" <%if (order.equals("DESC")) {%>selected<%}%>><fmt:message key="mvnforum.common.descending"/></option>
      </select>

      <input type="button" value="<fmt:message key="mvnforum.common.go"/>" onclick="disabled=true; submit();" class="liteoption">
    </form>
    </td>
  </tr>
</table>
<%
boolean hasANormalNoNewThread = false;
boolean hasANormalNewThread = false;
boolean hasAHotNoNewThread = false;
boolean hasAHotNewThread = false;
boolean hasAnAttachment = false;
boolean hasSticky = false;
boolean hasAnnouncement = false;
boolean hasGlobalAnnouncement = false;
Collection threadBeans = (Collection) request.getAttribute("ThreadBeans");
int totalThreads = ((Integer)request.getAttribute("TotalThreads")).intValue();
int memberPostsPerPage = onlineUser.getPostsPerPage();
%>

<pg:pager
  url="listrecentthreads"
  items="<%= totalThreads %>"
  maxPageItems="<%= memberPostsPerPage %>"
  isOffset="true"
  export="offset,currentPageNumber=pageNumber"
  scope="request">
<% String rowsType = MVNForumResourceBundle.getString(onlineUser.getLocale(), "mvnforum.common.numberof.threads"); %>
<%-- keep track of preference --%>
<pg:param name="sort"/>
<pg:param name="order"/>

<table width="95%" align="center">
  <tr>
    <td>
      <%@ include file="inc_pager.jsp"%>
    </td>
  </tr>
</table>

<table class="tborder" width="95%" cellspacing="1" cellpadding="3" align="center">
  <tr class="theader">
    <td colspan="3"><fmt:message key="mvnforum.common.thread"/></td>
    <td><fmt:message key="mvnforum.common.forum"/></td>
    <td align="center"><fmt:message key="mvnforum.common.post.author"/></td>
    <td align="center"><fmt:message key="mvnforum.common.reply_count"/></td>
    <td align="center"><fmt:message key="mvnforum.common.view_count"/></td>
    <td align="center"><fmt:message key="mvnforum.common.last_post"/></td>
  </tr>
<%
int rowIndex = 0;
for (Iterator iterator = threadBeans.iterator(); iterator.hasNext(); ) {
    ThreadBean threadBean = (ThreadBean)iterator.next();
    String threadIcon = MyUtil.getThreadIconName(onlineUser.getLastLogonTimestamp().getTime(), threadBean.getThreadLastPostDate().getTime(), threadBean.getThreadReplyCount()+1);
    if (threadIcon.equals("f_norm_no.gif")) {
      hasANormalNoNewThread = true;
    } else if (threadIcon.equals("f_norm_new.gif")) {
      hasANormalNewThread = true;
    } else if (threadIcon.equals("f_hot_no.gif")) {
      hasAHotNoNewThread = true;
    } else if (threadIcon.equals("f_hot_new.gif")) {
      hasAHotNewThread = true;
    }
%>
<pg:item>
  <tr class="trow<%=(rowIndex++)%2 + 1%>">
    <td width="16"><img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/<%=threadIcon%>" border="0"></td>
    <td width="16"><%=EnableEmotionFilter.filter(threadBean.getThreadIcon(), ParamUtil.getContextPath() + MVNForumGlobal.EMOTION_DIR)%></td>
    <td>
   <% 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;
        default:break;
      } %>
      <% if ( threadBean.getThreadType() != ThreadBean.THREAD_TYPE_DEFAULT) { %>
        <img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/<%=typeImage%>"/>
      <% }%>
      <% if (threadBean.getThreadAttachCount() > 0) { 
           hasAnAttachment = true; %> 
        <img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/attach.gif"/>
      <% } %>
      <a href="viewthread?thread=<%=threadBean.getThreadID()%>" class="messageTopic">
        <%=MyUtil.filter(threadBean.getThreadTopic(), false/*html*/, true/*emotion*/, false/*mvnCode*/, false/*newLine*/, false/*URL*/)%>
      </a><br/>
      <%=MyUtil.filter(StringUtil.getShorterString(threadBean.getThreadBody(), MVNForumConfig.getMaxCharsInShortSummary()), false/*html*/, true/*emotion*/, false/*mvnCode*/, false/*newLine*/, false/*URL*/)%>
    </td>
    <td>
      <a href="listthreads?forum=<%=threadBean.getForumID()%>" class="messageTopic"><%=forumCache.getBean(threadBean.getForumID()).getForumName()%></a>
    </td>
    <td align="center">
      <% if ((threadBean.getMemberName()!=null) && (threadBean.getMemberName().length()>0)) { %>
      <a href="viewmember?member=<%=Encoder.encodeURL(threadBean.getMemberName())%>" class="memberName"><%=threadBean.getMemberName()%></a>
      <% } %>
    </td>
    <td align="center"><b><%=threadBean.getThreadReplyCount()%></b></td>
    <td align="center"><b><%=threadBean.getThreadViewCount()%></b></td>
    <td align="center">
      <%=onlineUser.getGMTTimestampFormat(threadBean.getThreadLastPostDate())%><br/>
      <% if ((threadBean.getLastPostMemberName()!=null) && (threadBean.getLastPostMemberName().length()>0)) { %>
      <fmt:message key="mvnforum.common.by"/> <a href="viewmember?member=<%=Encoder.encodeURL(threadBean.getLastPostMemberName())%>" class="memberName"><%=threadBean.getLastPostMemberName()%></a>&nbsp;
      <% } %>
      <a href="viewthread?thread=<%=threadBean.getThreadID()%>&lastpage=yes#lastpost" class="messageTopic"><img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/right.gif" border="0" alt="<fmt:message key="mvnforum.common.last"/>" title="<fmt:message key="mvnforum.common.last"/>"></a>
    </td>
  </tr>
</pg:item>
<%

}//for
if (threadBeans.size() == 0) {%>
  <tr class="trow1"><td colspan="8" align="center"><fmt:message key="mvnforum.user.listrecentthreads.table.no_threads"/></td></tr>
<%}%>
</table>

<table width="95%" align="center">
  <tr>
    <td>
      <%@ include file="inc_pager.jsp"%>
    </td>
  </tr>
</table>
</pg:pager>
<br/>
<table width="95%" border="0" align="center">
  <% if (hasGlobalAnnouncement) { %>
  <tr class="messageText">
    <td width="16"><img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/global_announce.gif" border="0"></td>
    <td><fmt:message key="mvnforum.common.legend.thread.global_announcement"/></td>
  </tr>
  <%}%>
  <% if (hasAnnouncement) { %>
  <tr class="messageText">
    <td width="16"><img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/announce.gif" border="0"></td>
    <td><fmt:message key="mvnforum.common.legend.thread.announcement"/></td>
  </tr>
  <%}%>
  <% if (hasSticky) { %>
  <tr class="messageText">
    <td width="16"><img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/sticky.gif" border="0"></td>
    <td><fmt:message key="mvnforum.common.legend.thread.sticky"/></td>
  </tr>
  <%}%>
  <% if (hasANormalNoNewThread) { %>
  <tr class="messageText">
    <td width="16"><img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/f_norm_no.gif" border="0"></td>
    <td><fmt:message key="mvnforum.common.legend.thread.normal_no_new"/></td>
  </tr>
  <%}%>
  <% if (hasANormalNewThread) {%>
  <tr class="messageText">
    <td width="16"><img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/f_norm_new.gif" border="0"></td>
    <td><fmt:message key="mvnforum.common.legend.thread.normal_new"/></td>
  </tr>
  <%}%>
  <% if (hasAHotNoNewThread) {%>
  <tr class="messageText">
    <td width="16"><img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/f_hot_no.gif" border="0"></td>
    <td><fmt:message key="mvnforum.common.legend.thread.hot_no_new"/></td>
  </tr>
  <%}%>
  <% if (hasAHotNewThread) {%>
  <tr class="messageText">
    <td width="16"><img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/f_hot_new.gif" border="0"></td>
    <td><fmt:message key="mvnforum.common.legend.thread.hot_new"/></td>
  </tr>
  <%}%>
  <% if ( hasAnAttachment ) {%>
  <tr class="messageText">
    <td width="16" align="center"><img src="<%=contextPath%>/mvnplugin/mvnforum/images/icon/attach.gif" border="0"></td>
    <td><fmt:message key="mvnforum.common.legend.thread.has_attachment"/></td>
  </tr>
  <%}%>
</table>
<br/>
</fmt:bundle>
<%@ include file="footer.jsp"%>
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?