📄 forummanageaction.java
字号:
}
}
forumfield = (Forumfields) this.setValues(forumfield, request);
forum.setType(upForum.getType().equals("group") ? "forum": "sub");
short simple = Short.valueOf(request.getParameter("simple"));
int subforumsindex = Integer.valueOf(request.getParameter("subforumsindex"));
int defaultorderfield = Integer.valueOf(request.getParameter("defaultorderfield"));
int defaultorder = Integer.valueOf(request.getParameter("defaultorder"));
subforumsindex = subforumsindex == -1 ? 0: (subforumsindex == 1 ? 8 : 16);
defaultorderfield = defaultorderfield * 64;
defaultorder = defaultorder * 32;
simple += subforumsindex;
simple += defaultorderfield;
simple += defaultorder;
forum.setSimple(simple);
short allowpostspecial = 0;
for (int i = 0; i < 6; i++) {
String postspecial = request.getParameter("allowpostspecial[" + (i + 1) + "]");
if (postspecial != null) {
allowpostspecial += Math.pow(2, i)* Short.valueOf(postspecial);
}
}
forum.setAllowpostspecial(allowpostspecial);
Map<String,String> settings=ForumInit.settings;
String allowpostspecialtrade=request.getParameter("allowpostspecial[2]");
String tradetypes=settings.get("tradetypes");
if(tradetypes!=null&&tradetypes.length()>0&&allowpostspecialtrade!=null) {
Map<String,String> tradetypesmap=dataParse.characterParse(tradetypes, true);
String[] tradetypesnews=request.getParameterValues("tradetypesnew");
if(tradetypesnews==null||tradetypesnews.length==tradetypesmap.size()){
forumfield.setTradetypes("");
}else{
Map<Integer,String> tradetypestemp=new TreeMap<Integer, String>();
for (String tradetype : tradetypesnews) {
tradetypestemp.put(tradetypestemp.size(), tradetype);
}
forumfield.setTradetypes(dataParse.combinationChar(tradetypestemp));
}
}else{
forumfield.setTradetypes("");
}
Map modrecommend = forumfield.getModrecommend().equals("") ? new HashMap(): dataParse.characterParse(forumfield.getModrecommend(),false);
String modrecommend_open = request.getParameter("modrecommend[open]");
modrecommend.put("open", modrecommend_open);
if ("1".equals(modrecommend_open)) {
String modrecommend_num = request.getParameter("modrecommend[num]");
String modrecommend_maxlength = request.getParameter("modrecommend[maxlength]");
String modrecommend_cachelife = request.getParameter("modrecommend[cachelife]");
String modrecommend_dateline = request.getParameter("modrecommend[dateline]");
modrecommend_num = modrecommend_num.equals("") ? "10": modrecommend_num;
modrecommend_cachelife = modrecommend_cachelife.equals("") ? "900": modrecommend_cachelife;
modrecommend.put("sort", request.getParameter("modrecommend[sort]"));
modrecommend.put("orderby", request.getParameter("modrecommend[orderby]"));
modrecommend.put("num", Common.toDigit(modrecommend_num,2147483647L, -2147483648L).intValue());
modrecommend.put("maxlength", Common.toDigit(modrecommend_maxlength, 2147483647L, -2147483648L).intValue());
modrecommend.put("cachelife", Common.toDigit(modrecommend_cachelife, 2147483647L, -2147483648L).intValue());
modrecommend.put("dateline", Common.toDigit(modrecommend_dateline,2147483647L, -2147483648L).intValue());
}
forumfield.setModrecommend(dataParse.combinationChar(modrecommend));
int autoclose = Integer.valueOf(request.getParameter("autoclose"));
short autoclosetime = 0;
if (autoclose != 0) {
autoclosetime = (short)(Common.toDigit(request.getParameter("autoclosetime"), 32768L,-32768L)* autoclose);
}
forum.setAutoclose(autoclosetime);
Map postcredits = null;
Map replycredits = null;
Map digestcredits = null;
Map postattachcredits = null;
Map getattachcredits = null;
Map extcredits = dataParse.characterParse(settings.get("extcredits"),true);
Set<Integer> keys = extcredits.keySet();
for (Integer key : keys) {
postcredits = toMap(postcredits, request, key,"postcredits");
replycredits = toMap(replycredits, request, key,"replycredits");
digestcredits = toMap(digestcredits, request, key,"digestcredits");
postattachcredits = toMap(postattachcredits, request, key,"postattachcredits");
getattachcredits = toMap(getattachcredits, request, key,"getattachcredits");
}
forumfield.setPostcredits(postcredits == null ? "" : dataParse.combinationChar(postcredits));
forumfield.setReplycredits(replycredits == null ? "" : dataParse.combinationChar(replycredits));
forumfield.setDigestcredits(digestcredits == null ? "": dataParse.combinationChar(digestcredits));
forumfield.setPostattachcredits(postattachcredits == null ? "": dataParse.combinationChar(postattachcredits));
forumfield.setGetattachcredits(getattachcredits == null ? "": dataParse.combinationChar(getattachcredits));
Map threadtypesMap = new HashMap();
byte required = Byte.valueOf(request.getParameter("threadtypes[required]"));
byte listable = Byte.valueOf(request.getParameter("threadtypes[listable]"));
byte prefix = Byte.valueOf(request.getParameter("threadtypes[prefix]"));
Map types = new TreeMap();
Map selectboxs = new TreeMap();
Map flats = new TreeMap();
Map specials = new TreeMap();
Map shows = new TreeMap();
Map expirations = new TreeMap();
Map modelids = new TreeMap();
List<Threadtypes> threadtypes = threadtypeService.findAll();
if (threadtypes != null && threadtypes.size() > 0) {
for (Threadtypes threadtype : threadtypes) {
String options = request.getParameter("threadtypes[options]["+ threadtype.getTypeid() + "]");
String show = request.getParameter("threadtypes[show]["+ threadtype.getTypeid() + "]");
if (options != null && !"".equals(options)&& !"0".equals(options)) {
types.put(threadtype.getTypeid().intValue(),threadtype.getName());
specials.put(threadtype.getTypeid().intValue(),threadtype.getSpecial().toString());
expirations.put(threadtype.getTypeid().intValue(),threadtype.getExpiration().toString());
modelids.put(threadtype.getTypeid().intValue(),threadtype.getModelid().toString());
if ("1".equals(options)) {
flats.put(threadtype.getTypeid().intValue(),threadtype.getName());
} else if ("2".equals(options)) {
selectboxs.put(threadtype.getTypeid().intValue(), threadtype.getName());
}
if (show != null) {
shows.put(threadtype.getTypeid().intValue(), 1);
} else {
shows.put(threadtype.getTypeid().intValue(), 0);
}
}
}
}
for (int i = 0; i < 10; i++) {
String newname = request.getParameter("newname[" + i + "]");
if (newname != null && !"".equals(newname)) {
List<Threadtypes> threadtypeList = threadtypeService.findByProperty("name", newname);
if (threadtypeList == null && threadtypeList.size() > 0) {
} else {
String newdescription = request.getParameter("newdescription[" + i + "]");
newname = newname.length() > 255 ? newname.substring(0, 255) : newname;
Threadtypes threadtype = new Threadtypes();
threadtype.setName(newname);
threadtype.setDescription(newdescription);
threadtype.setTemplate("");
if (threadtypeService.addThreadtype(threadtype)) {
String[] newoptions = request.getParameterValues("newoptions[" + i+ "]");
if (!"0".equals(newoptions)) {
types.put(threadtype.getTypeid().intValue(),threadtype.getName());
if ("1".equals(newoptions)) {
flats.put(threadtype.getTypeid().intValue(), threadtype.getName());
} else if ("2".equals(newoptions)) {
selectboxs.put(threadtype.getTypeid().intValue(), threadtype.getName());
}
}
}
}
}
}
if (types != null && types.size() > 0) {
threadtypesMap.put("required", required);
threadtypesMap.put("listable", listable);
threadtypesMap.put("prefix", prefix);
threadtypesMap.put("types", types);
threadtypesMap.put("selectbox",selectboxs.size() > 0 ? selectboxs : null);
threadtypesMap.put("flat", flats.size() > 0 ? flats : null);
threadtypesMap.put("special",specials.size() > 0 ? specials : null);
threadtypesMap.put("show", shows.size() > 0 ? shows : null);
threadtypesMap.put("expiration",expirations.size() > 0 ? expirations : null);
threadtypesMap.put("modelid",modelids.size() > 0 ? modelids : null);
}
forumfield.setThreadtypes(threadtypesMap.size() > 0 ? dataParse.combinationChar(threadtypesMap) : "");
String[] typemodelids = request.getParameterValues("typemodel");
Map typemodels = new HashMap();
if (typemodelids != null) {
for (String modelid : typemodelids) {
if (!"".equals(modelid)) {
Map typemodelsMap = new HashMap();
Typemodels typemodel = typemodelService.findById(Short.valueOf(modelid));
typemodelsMap.put("name", typemodel.getName());
typemodels.put(typemodel.getId().intValue(),typemodelsMap);
}
}
}
forumfield.setTypemodels(typemodels.size() > 0 ? dataParse.combinationChar(typemodels) : "");
forumfield.setViewperm(this.toString(request.getParameterValues("viewperm")));
forumfield.setPostperm(this.toString(request.getParameterValues("postperm")));
forumfield.setReplyperm(this.toString(request.getParameterValues("replyperm")));
forumfield.setGetattachperm(this.toString(request.getParameterValues("getattachperm")));
forumfield.setPostattachperm(this.toString(request.getParameterValues("postattachperm")));
String[] props = new String[] { "digestposts", "posts","pageviews", "oltime", "extcredits1", "extcredits2","extcredits3", "extcredits4", "extcredits5","extcredits6", "extcredits7", "extcredits8" };
String forumlaperm1 = request.getParameter("formulaperm");
String forumlaperm2 = forumlaperm1;
for (String oldProp : props) {
String newProp = "\\$_DSESSION['" + oldProp + "']";
forumlaperm2=forumlaperm2.replaceAll(oldProp+"[^']", newProp);
}
Map forumlaperms = new TreeMap();
forumlaperms.put(0, forumlaperm1);
forumlaperms.put(1, forumlaperm2);
forumfield.setFormulaperm(dataParse.combinationChar(forumlaperms));
forumService.updateForum(forum);
forumfieldService.updateForumfield(forumfield);
this.updateForumCache();
if (saveconfigsubmit != null) {
HttpSession session = request.getSession();
boolean isfounder = (Boolean)session.getAttribute("isfounder");
boolean ishavefounder = (Boolean)session.getAttribute("ishavefounder");
if(ishavefounder && !isfounder){
request.setAttribute("resultInfo", "您没有权限访问该设置,出于安全考虑此设置只有论坛创始人可以使用。");
return mapping.findForward("result");
}
List<Map<String,String>> projects=dataBaseService.executeQuery("SELECT id,name,description FROM jrun_projects WHERE id='"+request.getParameter("projectId")+"'");
request.setAttribute("fid", fid);
request.setAttribute("project", projects!=null&&projects.size()>0?projects.get(0):null);
return mapping.findForward("toProjectadd");
}
}
request.setAttribute("successInfo", "版块设置成功更新。");
request.setAttribute("requestPath","admincp.jsp?action=forumsedit");
return mapping.findForward("success");
}
}
public ActionForward projectadd(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
short fid = Short.valueOf(request.getParameter("fid"));
String projectid = request.getParameter("projectid");
String coverwith = request.getParameter("coverwith");
String name = request.getParameter("name");
String description = request.getParameter("description");
String[] fieldoption = request.getParameterValues("fieldoption");
String[] fields = null;
if ("all".equals(fieldoption[0])) {
fields = new String[] { "styleid", "allowsmilies", "allowhtml",
"allowbbcode", "allowimgcode", "allowmediacode",
"allowanonymous", "allowshare", "allowpostspecial",
"allowspecialonly", "alloweditrules", "recyclebin",
"modnewposts", "jammer", "disablewatermark",
"inheritedmod", "autoclose", "forumcolumns",
"threadcaches", "allowpaytoauthor", "alloweditpost",
"simple", "postcredits", "replycredits",
"getattachcredits", "postattachcredits", "digestcredits",
"attachextensions", "formulaperm", "viewperm", "postperm",
"replyperm", "getattachperm", "postattachperm", "keywords",
"supe_pushsetting", "modrecommend", "tradetypes",
"typemodels" };
} else {
fields = fieldoption;
}
if (name == null || "".equals(name)) {
request.setAttribute("errorInfo", "没有填写方案名称,请返回。");
return mapping.findForward("error");
}
Forums forum = forumService.findById(fid);
Forumfields forumfields = forumfieldService.findById(fid);
Map<String, Object> value = new TreeMap<String, Object>();
value = this.getValues(forum, fields, value);
value = this.getValues(forumfields, fields, value);
if ("1".equals(coverwith)&&!"".equals(projectid)) {
dataBaseService.runQuery("UPDATE jrun_projects SET name='"+ (name.length() > 50 ? name.substring(0, 50) : name)+"', description='"+description+"', value='"+dataParse.combinationChar(value)+"' WHERE id='"+projectid+"'",true);
}else{
dataBaseService.runQuery("INSERT INTO jrun_projects (name, type, description, value) VALUES ('"+ (name.length() > 50 ? name.substring(0, 50) : name)+"', 'forum', '"+description+"', '"+dataParse.combinationChar(value)+"')",true);
}
request.setAttribute("successInfo", "成功保存设置方案。");
request.setAttribute("requestPath", "admincp.jsp?action=forumdetail&fid=" + fid);
return mapping.findForward("success");
}
public ActionForward forumcopy(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
String copysubmit=request.getParameter("copysubmit");
String source = request.getParameter("source");
if(copysubmit==null){
List<Map<String,String>> sourceForum=dataBaseService.executeQuery("SELECT fid,name,type FROM jrun_forums WHERE fid='"+source+"'");
if (sourceForum!=null&&sourceForum.size()>0&&!sourceForum.get(0).get("type").equals("group")) {
HttpSession session=request.getSession();
short groupid = (Short)session.getAttribute("jsprun_groupid");
Members member = (Members)session.getAttribute("user");
request.setAttribute("forumselect", Common.forumselect(false, false,groupid,member!=null?member.getExtgroupids():"",null,false));
request.setAttribute("sourceForum", sourceForum.get(0));
return mapping.findForward("toCopyForum");
}else{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -