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

📄 basicsettingsaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
package cn.jsprun.struts.action;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.Map.Entry;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import cn.jsprun.domain.Members;
import cn.jsprun.domain.Projects;
import cn.jsprun.service.basicsettings.CreditsSetService;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.service.user.MemberService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
import cn.jsprun.utils.FinalProperty;
import cn.jsprun.utils.FormDataCheck;
import cn.jsprun.utils.ForumInit;
import cn.jsprun.utils.FtpUtils;
import cn.jsprun.utils.ImageUtil;
import cn.jsprun.utils.JspRunConfig;
import cn.jsprun.utils.Log;
import cn.jsprun.utils.Mail;
import cn.jsprun.utils.Md5Token;
import cn.jsprun.vo.basic.BKSettingVO;
import cn.jsprun.vo.basic.CreditsParticularInfo;
import cn.jsprun.vo.basic.ResetCredit;
import cn.jsprun.vo.basic.SaveMethodVO;
import cn.jsprun.vo.basic.UsergroupSettingVO;

public class BasicSettingsAction extends DispatchAction {
	private CreditsSetService creSetSer = (CreditsSetService) BeanFactory.getBean("creditsSetService");
	private MemberService memberService = (MemberService)BeanFactory.getBean("memberService");
	private DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService");
	private DataParse dataParse = (DataParse)BeanFactory.getBean("dataParse");
	private FtpUtils ftputil = (FtpUtils) BeanFactory.getBean("ftputils");
	private final String tablePrefix = "jrun_";
	public ActionForward basic(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
		String settingsubmit=request.getParameter("settingsubmit");
		if(settingsubmit==null){
			return mapping.findForward("setting_basic");
		}
		String variables[] = {"forumfounders","bbname", "sitename", "indexname", "siteurl", "icp","boardlicensed", "bbclosed", "closedreason" };
		Map<String,String> oldSettings=ForumInit.settings;
		Map<String,String> settings=new HashMap<String,String>();
		for(String variable:variables){
			String value=request.getParameter(variable);
			if(value!=null){
				this.putValue(variable,value.trim(), oldSettings, settings);
			}
		}
		this.updateSettings(settings,oldSettings);
		HttpSession session=request.getSession();
		List<String> founderlist = new ArrayList<String>();
		boolean flag = false;
		Members members = (Members)session.getAttribute("members");
		if(members.getGroupid()==1){
			String forumfounder = request.getParameter("forumfounders");
			if(forumfounder!=null && !forumfounder.equals("")){
				String forumfounders[] = forumfounder.split(",");
				for(int i=0;i<forumfounders.length;i++){
					Members forfunder = memberService.findMemberById(Common.toDigit(forumfounders[i]));
					if(forfunder!=null && forfunder.getGroupid()==1){
						founderlist.add(forfunder.getUsername());
						session.setAttribute("ishavefounder",true);
						if(forfunder.getUid()==members.getUid()){
							flag = true;
							session.setAttribute("isfounder", true);
						}
					}
				}
				session.setAttribute("founderlist", founderlist);
			}else if(forumfounder==null){
				
			}else if(forumfounder.equals("")){
				session.setAttribute("ishavefounder",false);
			}
		}
		if(!flag){
			session.setAttribute("isfounder", false);
		}
		return this.getForward(mapping, request);
	}
	@SuppressWarnings("unchecked")
	public ActionForward access(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String settingsubmit=request.getParameter("settingsubmit");
		if(settingsubmit==null){
			Map<String,String> oldSettings=ForumInit.settings;
			Map inviteconfig=dataParse.characterParse(oldSettings.get("inviteconfig"), false);
			Map extcredits=dataParse.characterParse(oldSettings.get("extcredits"), true);
			List<Map<String,String>> specialGroups=dataBaseService.executeQuery("SELECT groupid, grouptitle FROM jrun_usergroups WHERE type='special'");
			request.setAttribute("inviteconfig", inviteconfig);
			request.setAttribute("extcredits", extcredits);
			request.setAttribute("specialGroups", specialGroups);
			return mapping.findForward("setting_access");
		}
		String pagedata[] = { "regstatus", "regname", "reglinkname", "regadvance", "censoruser", "regverify", "doublee", "accessemail", "censoremail", "regctrl", "regfloodctrl", "newbiespan", "welcomemsg", "bbrules", "bbrulestxt", "welcomemsgtitle", "welcomemsgtxt", "ipregctrl", "ipaccess", "adminipaccess" };
		String invitedata[] = { "inviterewardcredit", "inviteaddcredit", "invitedaddcredit", "inviteaddbuddy", "invitegroupid" };
		Map<String,String> oldSettings=ForumInit.settings;
		Map<String,String> settings=new HashMap<String,String>();
		String ip=request.getRemoteAddr();
		for(String variable:pagedata){
			String value=request.getParameter(variable).trim();
			if ((!value.equals(""))&&("ipaccess".equals(variable)|| "adminipaccess".equals(variable))&&!Common.ipaccess(ip, value)) {
				request.setAttribute("errorInfo", "操作错误!您自己的 IP 在 IP 访问列表以外,请返回修改。");
				return mapping.findForward("error");
			}else if("regname".equals(variable) ||"reglinkname".equals(variable)){
				value = Common.dhtmlspecialchars(value);
			}else if("regctrl".equals(variable) ||"regfloodctrl".equals(variable) ||"newbiespan".equals(variable)){
				value =Common.toDigit(value,2147483647l,0l).toString();
			}
			this.putValue(variable, value, oldSettings, settings);
		}
		Map<String, String> hm = new HashMap<String, String>();
		for (int i = 0; i < invitedata.length; i++) {
			String data = request.getParameter(invitedata[i]);
			hm.put(invitedata[i], data);
		}
		this.putValue("inviteconfig", dataParse.combinationChar(hm), oldSettings, settings);
		this.updateSettings(settings,oldSettings);
		return this.getForward(mapping, request);
	}
	@SuppressWarnings("unchecked")
	public ActionForward styles(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String settingsubmit=request.getParameter("settingsubmit");
		if(settingsubmit==null){
			Map<String,String> settings=ForumInit.settings;
			List<Map<String,String >> styleTemplages=dataBaseService.executeQuery("SELECT styleid, name FROM jrun_styles WHERE available=1");
			request.setAttribute("styleTemplages", styleTemplages);
			int showsettings=Integer.valueOf(settings.get("showsettings"));
			request.setAttribute("showsignatures", (showsettings&4)==0);
			request.setAttribute("showavatars", (showsettings&2)==0);
			request.setAttribute("showimages", (showsettings&1)==0);
			StringBuffer items=new StringBuffer();
			Map<String,String> authorinfoitems=new TreeMap<String,String>();
			authorinfoitems.put("uid", "UID");
			authorinfoitems.put("posts", "帖子");
			authorinfoitems.put("digest", "精华");
			authorinfoitems.put("credits", "积分");
			items.append("uid,posts,digest,credits");
			Map<Integer,Map> extcredits=dataParse.characterParse(settings.get("extcredits"), true);
			Set<Integer> extcreditids=extcredits.keySet();
			for(Integer extcreditid:extcreditids){
				Map extcredit=extcredits.get(extcreditid);
				if("1".equals(extcredit.get("showinthread"))){
					authorinfoitems.put("extcredits"+extcreditid, (String)extcredit.get("title"));
					items.append(",extcredits"+extcreditid);
				}
			}
			List<Map<String,String>> profilefields=dataBaseService.executeQuery("SELECT fieldid,title FROM jrun_profilefields WHERE available='1' AND invisible='0' AND showinthread='1' ORDER BY displayorder");
			if(profilefields!=null&&profilefields.size()>0){
				for(Map<String,String> profilefield:profilefields){
					authorinfoitems.put("field_"+profilefield.get("fieldid"), profilefield.get("title"));
					items.append(",field_"+profilefield.get("fieldid"));
				}
			}
			authorinfoitems.put("readperm", "阅读权限");
			authorinfoitems.put("gender", "性别");
			authorinfoitems.put("location", "来自");
			authorinfoitems.put("oltime", "在线时间");
			authorinfoitems.put("regtime", "注册时间");
			authorinfoitems.put("lastdate", "最后登录");
			items.append(",readperm,gender,location,oltime,regtime,lastdate");
			Map<String,Map<String,String>> customauthorinfo=(Map<String,Map<String,String>>)dataParse.characterParse(settings.get("customauthorinfo"), true).get(0);
			request.setAttribute("authorinfoitems",authorinfoitems);
			request.setAttribute("customauthorinfo",customauthorinfo);
			request.setAttribute("items",items);
			Map msgforward=dataParse.characterParse(settings.get("msgforward"), true);
			StringBuffer message=new StringBuffer();
			Map<Integer,String> messages= (Map<Integer,String>)msgforward.get("messages");
			if(messages!=null&&messages.size()>0){
				Set<Integer> keys=messages.keySet();
				for(Integer key:keys){
					message.append("\n"+messages.get(key));
				}
			}
			request.setAttribute("msgforward", msgforward);
			request.setAttribute("msgforward_message", message.length()>0?message.substring(1):"");
			return mapping.findForward("setting_styles");
		}
		String variables[] = { "styleid", "stylejump", "frameon", "framewidth","subforumsindex", "forumlinkstatus", "maxbdays", "moddisplay","whosonlinestatus", "whosonline_contract", "maxonlinelist","topicperpage", "threadmaxpages", "hottopic", "fastpost","fastreply","globalstick", "threadsticky", "postperpage", "starthreshold","maxsigrows", "ratelogrecord","showsettings","zoomstatus","vtonlinestatus", "userstatusby", "postno","postnocustom","maxsmilies","memberperpage", "membermaxpages", "hideprivate","visitedforums" };
		Map<String,String> oldSettings=ForumInit.settings;
		Map<String,String> settings=new HashMap<String,String>();
		for (String variable: variables) {
			if("showsettings".equals(variable)){
				int showsignatures=Integer.valueOf(request.getParameter("showsignatures"));
				int showavatars=Integer.valueOf(request.getParameter("showavatars"));
				int showimages=Integer.valueOf(request.getParameter("showimages"));
				if(showsignatures>0){
					showsignatures=4;
				}
				if(showavatars>0){
					showavatars=2;
				}
				this.putValue(variable, String.valueOf(showsignatures+showavatars+showimages), oldSettings, settings);
				this.putValue("showimages", String.valueOf(showimages), oldSettings, settings);
			}else if(Common.matches(variable, "^(maxonlinelist|threadmaxpages|hottopic|starthreshold|maxsigrows|maxsmilies|membermaxpages|visitedforums)$")) {
				this.putValue(variable, Common.toDigit(request.getParameter(variable), 2147483647l, 0l).toString(), oldSettings, settings);
			}else if(Common.matches(variable, "^(topicperpage|postperpage|memberperpage)$")) {
				Long value=Common.toDigit(request.getParameter(variable), 2147483647l, 0l);
				if(value>0){
					this.putValue(variable, value.toString(), oldSettings, settings);
				}
			}else{
				this.putValue(variable, request.getParameter(variable), oldSettings, settings);
			}
		}
		Map<String,Map<String,String>> customauthorinfo=new HashMap<String,Map<String,String>>();
		String[] items=request.getParameter("item").split(",");
		String types[] = { "left", "special", "menu" };
		for (String item:items) {
			Map<String,String> authorinfo=new HashMap<String,String>();
			for (String type:types) {
				String value = request.getParameter("customauthorinfo["+ item + "][" + type + "]");
				if ("1".equals(value)) {
					authorinfo.put(type, value);
				}
			}
			if(authorinfo.size()>0){
				customauthorinfo.put(item, authorinfo);
			}
		}
		Map data = new HashMap();
		data.put(0, customauthorinfo);
		this.putValue("customauthorinfo", dataParse.combinationChar(data), oldSettings, settings);
		byte msgquick = Byte.valueOf(request.getParameter("msgforward[quick]"));
		String message = request.getParameter("msgforward[messages]");
		String refreshtime = Common.toDigit(request.getParameter("msgforward[refreshtime]"), 2147483647l, 0l).toString();
		Map<Integer,String> messages = new TreeMap<Integer,String>();
		String mess[] = message.split("\n");
		for (int j = 0; j < mess.length; j++) {
			if (!"".equals(mess[j].trim())){
				messages.put(j,mess[j].trim());
			}
		}
		Map msgforward = new TreeMap();
		msgforward.put("messages", messages);
		msgforward.put("quick", msgquick);
		msgforward.put("refreshtime", refreshtime);
		this.putValue("msgforward", dataParse.combinationChar(msgforward), oldSettings, settings);
		HttpSession session=request.getSession();
		session.setAttribute("refreshtime", refreshtime);
		session.setAttribute("quick", msgquick);
		session.setAttribute("successmessages", messages);
		this.updateSettings(settings,oldSettings);
		return this.getForward(mapping, request);
	}
	public ActionForward seo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String settingsubmit=request.getParameter("settingsubmit");
		if(settingsubmit==null){
			Map<String,String> settings=ForumInit.settings;
			int rewritestatus=Common.toDigit(settings.get("rewritestatus"));
			Common.setChecked(request, "rewritestatus", 5, rewritestatus);
			return mapping.findForward("setting_seo");

⌨️ 快捷键说明

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