⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recentmessages.jsp

📁 非常完整的Java开发的网络办公系统
💻 JSP
字号:

<%
/**
 *	$RCSfile: recentMessages.jsp,v $
 *	$Revision: 1.4 $
 *	$Date: 2000/12/27 22:39:45 $
 */
%>

<%@ page import="java.util.*,
				 java.text.*,
				 com.coolservlets.forum.*,
				 com.coolservlets.forum.util.*,
				 com.coolservlets.util.*" %>

<%	////////////////////////
	// Authorization check
	
	// check for the existence of an authorization token
	Authorization authToken = SkinUtils.getUserAuthorization(request,response);
	
	// if the token was null, they're not authorized. Since this skin will
	// allow guests to view forums, we'll set a "guest" authentication
	// token
	if( authToken == null ) {
		authToken = AuthorizationFactory.getAnonymousAuthorization();
	}
%>

<%!
	// List threads of the last 31 days
	final static long MAX_AGE 	= 1000L * 60 * 60 * 24 * 31;
	// At most, 8 threads in the list
	final static int MAX_MSGS	= 8;
	// At most, 3 messages per forum
	final static int MAX_MSGS_PER_FORUM = 3;
%>

<%
	// Message age cutoff timestamp
	long 	boundary = System.currentTimeMillis() - MAX_AGE;
	// Remember to declare the table tags
	boolean	needHeader = true;
	
	// titles of the most recent threads
	String[] titles = new String[MAX_MSGS];
	String title;
	// age, forumId, threadID, msgID of most recent threads
	long[][] msgs = new long[MAX_MSGS][4];
	long[]	msg;
	int 	n;
	int 	nr;
	long 	age;
	
	// Loop through all the forums
	Iterator allForums = ForumFactory.getInstance(authToken).forums();
	while (allForums.hasNext()) {
		// per forum, loop through the first x recent threads
		Forum f = (Forum)allForums.next();
		Iterator fMsgs = f.threads();
		for (nr = 0; nr < MAX_MSGS_PER_FORUM && fMsgs.hasNext() ; ) {
			// if this thread is newer than what we have until now
			ForumThread t = (ForumThread)fMsgs.next();
			age = t.getModifiedDate().getTime();
			if (age > boundary && age > msgs[0][0]) {
				// gets its vitals and sort it into the list of recent msgs
				Iterator ms = t.messages(t.getMessageCount()-1, 1);
				ForumMessage m = (ForumMessage)ms.next();
				title = m.getSubject() + "</a> &nbsp; (" + t.getMessageCount() + ")";
				titles[0] = title;
				msg = msgs[0];
				msg[0] = age; msg[1] = f.getID(); msg[2] = t.getID(); msg[3] = m.getID();
				for (n = 1; n < MAX_MSGS && age > msgs[n][0]; n++) {
					titles[n-1] = titles[n];
					titles[n] = title;
					msgs[n-1] = msgs[n];
					msgs[n] = msg;
				}
				nr++;
			}
		}
	}
	
	// if we found any msgs, output them into a table
	for (n = MAX_MSGS -1; n >= 0 ; n--) {
		if (msgs[n][0] > 0) {
			if (needHeader) {
				needHeader = false;
				%>
				<table bgcolor="#fafafa" cellpadding="3" cellspacing="0" border="0" width="100%">
				<tr bgcolor="#eeeeee">
				<td align="center" colspan="2">
					<font class="strong">◆◆◆最新帖子◆◆◆</font>
				</td>
				</tr>
				<%
			}		
			%>
				<tr bgcolor=#fafafa>
				<td width="1%" valign="top" align="center">&#149;</td>
				<td width="99%">
				<a href="/mainctrl/bbs/viewMessage?message=<%= msgs[n][3] %>&thread=<%= msgs[n][2] %>&forum=<%= msgs[n][1] %>&parent=-1"><%= titles[n] %>
				</td>
				</tr>
			<%
		}
	}

	if (!needHeader) {
		%> </table> <%
	}
%>

⌨️ 快捷键说明

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