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

📄 forummanageaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
					}
				}
				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 + -