📄 basicsettingsaction.java
字号:
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 + -