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

📄 post.jsp

📁 论坛系统EasyJForum 是一个基于 Java 技术的免费社区论坛软件系统
💻 JSP
📖 第 1 页 / 共 2 页
字号:
<%@ page contentType="text/html;charset=gbk" errorPage="error.jsp"%>
<%@ page import="java.net.URLEncoder"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="com.hongshee.ejforum.util.PageUtils"%>
<%@ page import="com.hongshee.ejforum.common.ForumSetting"%>
<%@ page import="com.hongshee.ejforum.common.IConstants"%>
<%@ page import="com.hongshee.ejforum.common.CacheManager"%>
<%@ page import="com.hongshee.ejforum.data.UserDAO.UserInfo"%>
<%@ page import="com.hongshee.ejforum.data.BoardDAO.BoardVO"%>
<%@ page import="com.hongshee.ejforum.data.SectionDAO.SectionVO"%>
<%@ page import="com.hongshee.ejforum.data.GroupDAO.GroupVO"%>
<%@ page import="com.hongshee.ejforum.data.TopicDAO"%>
<%@ page import="com.hongshee.ejforum.data.TopicDAO.TopicVO"%>
<%@ page import="com.hongshee.ejforum.data.ReplyDAO.PostVO"%>
<%@ page import="com.hongshee.ejforum.data.AttachDAO.AttachVO"%>
<%
	UserInfo userinfo = PageUtils.getSessionUser(request);
	if (!request.isRequestedSessionIdFromCookie())
	{
		request.setAttribute("errorMsg", "请打开您的浏览器的 Cookie 支持功能, 否则不能发帖");
		request.getRequestDispatcher("/error.jsp").forward(request, response);
		return;
	}
	if (userinfo == null && !PageUtils.isUserAgent(request))  // Guest & Robot
		return;

	CacheManager cache = CacheManager.getInstance();

	String sectionID = request.getParameter("sid");
	String boardID = request.getParameter("fid");
	
	SectionVO aSection = cache.getSection(sectionID);
	BoardVO aBoard = cache.getBoard(aSection, boardID);
	
    GroupVO aGroup = PageUtils.getGroupVO(userinfo, aSection, aBoard);
	boolean isModerator = false;
	if (aGroup.groupID == 'A' || aGroup.groupID == 'M' || aGroup.groupID == 'S')
		isModerator = true;
	
	String action = request.getParameter("act");
	if (action != null)
	 	action = action.trim();
	if (action == null || action.length() == 0)
		action = "topic";

	if (userinfo == null)  // Guest
	{
		if (aBoard.isGuestPostOK == 'F' 
			|| (action.equals("reply") && !PageUtils.isPermitted(aBoard,aGroup,IConstants.PERMIT_NEW_REPLY))
			|| (action.equals("topic") && !PageUtils.isPermitted(aBoard,aGroup,IConstants.PERMIT_NEW_TOPIC))
			|| (action.equals("reward") && aGroup.rights.indexOf(IConstants.PERMIT_NEW_REWARD) < 0)
			|| (action.equals("reward") && !PageUtils.isPermitted(aBoard,aGroup,IConstants.PERMIT_NEW_TOPIC))
			|| (action.equals("edit")))
		{
			String fromPath = request.getRequestURI();
			String queryStr = request.getQueryString();
			if (queryStr != null)
			{
				String topicTitle = PageUtils.getParam(request, "topic");
				if (topicTitle.length() > 0)
					queryStr = queryStr + "&topic=" + URLEncoder.encode(topicTitle, "GBK");
				fromPath = fromPath + "?" + queryStr;
			}
			request.setAttribute("fromPath", fromPath);
			request.getRequestDispatcher("/login.jsp").forward(request, response);
			return;
		}
	}
	else if (userinfo.state == 'P')
	{
		request.setAttribute("errorMsg", "您已被禁止发帖或编辑帖子");
		request.getRequestDispatcher("/error.jsp").forward(request, response);
		return;
	}

	ForumSetting setting = ForumSetting.getInstance();
	
    Object sessionPosts = (Object)session.getAttribute("posts");
    if (sessionPosts != null)
	{
		int maxSessionPosts = setting.getInt(ForumSetting.MISC, "maxSessionPosts");
		if (Integer.parseInt(sessionPosts.toString()) >= maxSessionPosts)
		{
			request.setAttribute("errorMsg", "您连续发帖数已经达到上限,不能继续发帖");
			request.getRequestDispatcher("/error.jsp").forward(request, response);
			return;
		}
	}

	String topicID = request.getParameter("tid");
	String replyID = request.getParameter("rid");
	
	TopicVO aTopic = null;
	PostVO aPost = null;
	String strPageNo = null;

	String actTitle = null;
	String actName = null;
	if (action.equals("reply"))
	{
		if (!PageUtils.isPermitted(aBoard,aGroup,IConstants.PERMIT_NEW_REPLY))
		{
			request.setAttribute("errorMsg", "您没有发表回复的权限");
			request.getRequestDispatcher("/error.jsp").forward(request, response);
			return;
		}
		actTitle = "发表回复";
		actName = "post_reply";
	}
	else if (action.equals("reward"))
	{
		if (aGroup.rights.indexOf(IConstants.PERMIT_NEW_REWARD) < 0
			|| !PageUtils.isPermitted(aBoard,aGroup,IConstants.PERMIT_NEW_TOPIC))
		{
			request.setAttribute("errorMsg", "您没有发布悬赏的权限");
			request.getRequestDispatcher("/error.jsp").forward(request, response);
			return;
		}
		actTitle = "发布悬赏";
		actName = "post_reward";
	}
	else if (action.equals("edit"))
	{
		aTopic = TopicDAO.getInstance().getPostInfo(request, topicID, replyID);
        if (aTopic != null && aTopic.postList != null && aTopic.postList.size() > 0)
		{
			if (!isModerator)
			{
				if (aTopic.isDigest == 'T')
				{
					request.setAttribute("errorMsg", "此主题已被加为精华,不能再修改");
					request.getRequestDispatcher("/error.jsp").forward(request, response);
					return;
				}
				if (aTopic.state == 'C')
				{
					request.setAttribute("errorMsg", "此主题已经关闭,不能再修改");
					request.getRequestDispatcher("/error.jsp").forward(request, response);
					return;
				}
			}
			aPost = (PostVO)aTopic.postList.get(0);
			strPageNo = request.getParameter("page");
		}
		actTitle = "修改帖子";
		if (replyID != null && !replyID.equals("0")) // reply
			actName = "post_reply";
		else	
			actName = "post_topic";
	}
	else
	{
		if (!PageUtils.isPermitted(aBoard,aGroup,IConstants.PERMIT_NEW_TOPIC))
		{
			request.setAttribute("errorMsg", "您没有发新话题的权限");
			request.getRequestDispatcher("/error.jsp").forward(request, response);
			return;
		}
		actTitle = "发新话题";
		actName = "post_topic";
	}

	String forumName = setting.getForumName();
	String title = PageUtils.getTitle(forumName);
		
	String pageTitle = aBoard.boardName;
	String topicTitle = null;
	String subject = null;
	String content = null;
	if (topicID != null && topicID.length() > 0)
	{
		topicTitle = PageUtils.getParam(request, "topic");
		pageTitle = topicTitle + " - " + pageTitle;
		if (aPost == null)
		{
			subject = PageUtils.getParam(request, "subject");
			content = PageUtils.getParam(request, "content");
		}
		else
		{
			subject = aPost.title;
			content = aPost.content;
			
		}
	}

	String[] menus = PageUtils.getHeaderMenu(request, userinfo);
	int maxAttachSize = setting.getInt(ForumSetting.FUNCTIONS, "maxAttachSize");
	int maxAttachNum = setting.getInt(ForumSetting.FUNCTIONS, "maxAttachNum");
	int maxPostLength = setting.getInt(ForumSetting.FUNCTIONS, "maxPostLength");
	String allowAttachTypes = setting.getString(ForumSetting.FUNCTIONS, "allowAttachTypes");
	int maxTitleLength = 100;

	boolean allowHTML = aGroup.rights.indexOf(IConstants.PERMIT_USE_HTML) >= 0;
	boolean allowUpload = PageUtils.isPermitted(aBoard,aGroup,IConstants.PERMIT_UPLOAD);
	
	StringBuilder sbuf = new StringBuilder();
	sbuf.append("./forum-").append(aSection.sectionID).append("-").append(aBoard.boardID).append("-1.html");
	String forumUrl = sbuf.toString();
	String homeUrl = "./index.jsp";
	String forumStyle = PageUtils.getForumStyle(request, response, aBoard);

	sbuf.setLength(0);
	sbuf.append("perform.jsp?act=post_").append(action).append("&sid=").append(sectionID)
		.append("&fid=").append(boardID);
	if (topicID != null)
		sbuf.append("&tid=").append(topicID);
	if (replyID != null)
		sbuf.append("&rid=").append(replyID);
	if (strPageNo != null)
		sbuf.append("&page=").append(strPageNo);
	if (topicTitle != null && topicTitle.length() > 0)
		sbuf.append("&topic=").append(URLEncoder.encode(topicTitle, "GBK"));
		
	String performUrl = sbuf.toString();

	String topicUrl = null;
	if (topicID != null && topicTitle != null)
	{
		sbuf.setLength(0);
		sbuf.append("<A href=\"./topic-").append(topicID).append("-1.html\">").append(topicTitle).append("</A> &raquo;&nbsp; ");
		topicUrl = sbuf.toString();
	}
	else
	{
		topicUrl = "";
	}
	if (topicTitle == null)
		topicTitle = "";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE><%= pageTitle %> - <%= title %></TITLE>
<LINK href="styles/<%= forumStyle %>/ejforum.css" type=text/css rel=stylesheet>
<LINK href="styles/<%= forumStyle %>/ejf_editor.css" type=text/css rel=stylesheet>
</HEAD>
<BODY onkeydown="if(event.keyCode==27) return false;" onload="loaded()">
<SCRIPT src="js/common.js" type=text/javascript></SCRIPT>
<SCRIPT src="js/member.js" type=text/javascript></SCRIPT>
<DIV class=wrap>
<DIV id=header>
<%= PageUtils.getHeader(request, title) %>
<%= PageUtils.getHeadAdBanner(request, null) %>
</DIV>
<%= menus[0] %>
<DIV id=nav><A href="<%= homeUrl %>"><%= forumName %></A> &raquo;&nbsp; <A 
href="<%= forumUrl %>"><%= aBoard.boardName %></A> &raquo;&nbsp; <%= topicUrl %><%= actTitle %></DIV>
<SCRIPT type=text/javascript>
var maxTitleLength = parseInt('<%= maxTitleLength %>');
var maxPostLength = parseInt('<%= maxPostLength %>')*1000;
msgs['bytes'] = '字节';
msgs['post_curlength'] = '当前长度';
msgs['post_subject_empty'] = '请填写标题栏';
msgs['post_content_empty'] = '请填写内容栏';
msgs['post_subject_toolong'] = '您的标题超过 ' + maxTitleLength + ' 个字符的限制';
msgs['post_content_toolong'] = '您的帖子长度超过 ' + maxPostLength + ' 字节的限制';
msgs['post_reward_zero'] = '悬赏积分值必须大于0';
msgs['post_vcode_empty'] = '请输入验证码';

⌨️ 快捷键说明

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