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

📄 extendsaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
				String datatablesnew=Common.dhtmlspecialchars(request.getParameter("datatablesnew").trim());
				String descriptionnew=Common.dhtmlspecialchars(request.getParameter("descriptionnew"));
				String copyrightnew=plugin.get("copyright").equals("")?Common.dhtmlspecialchars(request.getParameter("directorynew")):plugin.get("copyright");
				int adminidnew=Common.toDigit(request.getParameter("adminidnew"));
				if(adminidnew<=0||adminidnew>3){
					adminidnew=1;
				}
				if(namenew.length()==0){
					request.setAttribute("errorInfo", "您没有输入插件名称,请返回修改。");
					return mapping.findForward("error");
				}else if(!isplugindir(directorynew)){
					request.setAttribute("errorInfo", "您输入的插件目录不合法或没有使用 \"/\" 结尾,请返回修改。");
					return mapping.findForward("error");
				}else if(!identifiernew.equals(plugin.get("identifier"))){
					List<Map<String,String>> pluginstemp=dataBaseService.executeQuery("SELECT pluginid FROM jrun_plugins WHERE identifier='"+identifiernew+"' LIMIT 1");
					if(pluginstemp!=null&&pluginstemp.size()>0||!this.ispluginkey(identifiernew)){
						request.setAttribute("errorInfo", "您输入的唯一标识符不合法或与现有插件重复,请返回修改。");
						return mapping.findForward("error");
					}
				}
				dataBaseService.runQuery("UPDATE jrun_plugins SET adminid='"+adminidnew+"', name='"+namenew+"', identifier='"+identifiernew+"', description='"+descriptionnew+"', datatables='"+datatablesnew+"', directory='"+directorynew+"', copyright='"+copyrightnew+"' WHERE pluginid='"+pluginid+"'",true);
			}else if("modules".equals(type)){
				Map<Integer,Map> modulesnew=new HashMap<Integer,Map>();
				int i=0;
				String newname=request.getParameter("newname").trim();
				Map newmodule=new HashMap();
				if(newname.length()!=0){
					newmodule.put("name", newname);
					newmodule.put("menu", request.getParameter("newmenu"));
					newmodule.put("url", request.getParameter("newurl"));
					newmodule.put("type", request.getParameter("newtype"));
					newmodule.put("adminid", request.getParameter("newadminid"));
					newmodule.put("displayorder", Common.toDigit(request.getParameter("neworder"),2147483647l,-2147483648l).intValue());
					modulesnew.put(i, newmodule);
				}
				if(modules!=null&&modules.size()>0){
					Set<Integer> keys =modules.keySet();
					for (Integer key : keys) {
						String moduleid=request.getParameter("delete["+key+"]");
						if(moduleid==null){
							Map module=modules.get(key);
							Map modulenew=new HashMap();
							modulenew.put("name", request.getParameter("namenew["+key+"]"));
							modulenew.put("menu", request.getParameter("menunew["+key+"]"));
							modulenew.put("url", request.getParameter("urlnew["+key+"]"));
							modulenew.put("type", request.getParameter("typenew["+key+"]"));
							int adminidnew=Common.toDigit(request.getParameter("adminidnew["+key+"]"));
							modulenew.put("adminid", (adminidnew>=0&&adminidnew<=3)?adminidnew+"":module.get("adminid"));
							modulenew.put("displayorder",Common.toDigit(request.getParameter("ordernew["+key+"]"),2147483647l,-2147483648l).intValue());
							modulesnew =sort(modulesnew,modulenew);
							i++;
						}
					}
				}
				List<String> namesarray=new ArrayList<String>();
				Set<Integer> keys=modulesnew.keySet();
				for (Integer key : keys) {
					Map module=modulesnew.get(key);
					String name=(String)module.get("name");
					if(!ispluginkey(name)){
						request.setAttribute("errorInfo", "您输入的程序模块名称不合法,请返回修改。");
						return mapping.findForward("error");
					}else if(namesarray.contains(name)){
						request.setAttribute("errorInfo", "您输入的程序模块名称与现有模块重复,请返回修改。");
						return mapping.findForward("error");
					}
					namesarray.add(name);
					module.put("menu", ((String)module.get("menu")).trim());
					module.put("url", ((String)module.get("url")).trim());
					int adminidnew=Common.toDigit((String)module.get("adminid"));
					module.put("adminid", (adminidnew>=0&&adminidnew<=3)?adminidnew+"":1);
					int moduletype=Integer.valueOf((String)module.get("type"));
					if(moduletype==1||moduletype==5){
						if("".equals((String)module.get("url"))){
							request.setAttribute("errorInfo", "您没有输入直接链接 URL,请返回修改。");
							return mapping.findForward("error");
						}
					}else if(moduletype==2||moduletype==3||moduletype==6){
						if("".equals((String)module.get("menu"))){
							request.setAttribute("errorInfo", "您没有输入菜单名称,请返回修改。");
							return mapping.findForward("error");
						}
						module.remove("url");
					}else if(moduletype==4){
						module.remove("menu");
						module.remove("url");
					}else{
						request.setAttribute("errorInfo", "未定义的操作!");
						return mapping.findForward("error");
					}
				}
				dataBaseService.runQuery("UPDATE jrun_plugins SET modules='"+dataParse.combinationChar(modulesnew)+"' WHERE pluginid='"+pluginid+"'",true);
			}else if("hooks".equals(type)){
				String[] delete=request.getParameterValues("delete");
				if(delete!=null){
					dataBaseService.runQuery("DELETE FROM jrun_pluginhooks WHERE pluginid='"+pluginid+"' AND pluginhookid IN ("+Common.implodeids(delete)+")");
				}
				List<Map<String,String>> pluginhooks=dataBaseService.executeQuery("SELECT pluginhookid,title FROM jrun_pluginhooks WHERE pluginid='"+plugin.get("pluginid")+"'");
				List<String> hooktitles=new ArrayList<String>();
				if(pluginhooks!=null&&pluginhooks.size()>0){
					for (Map<String, String> pluginhook : pluginhooks) {
						String pluginhookid=pluginhook.get("pluginhookid");
						String val=request.getParameter("titlenew["+pluginhookid+"]");
						if(!ispluginkey(val)||hooktitles.contains(val)){
							request.setAttribute("errorInfo", "您输入的钩子名称不合法或与现有钩子重复,请返回修改。");
							return mapping.findForward("error");
						}
						hooktitles.add(val);
						dataBaseService.runQuery("UPDATE jrun_pluginhooks SET title='"+Common.dhtmlspecialchars(val)+"', available='"+Common.toDigit(request.getParameter("availablenew["+pluginhookid+"]"))+"' WHERE pluginid='"+pluginid+"' AND pluginhookid='"+pluginhookid+"'",true);
					}
				}
				String newtitle=request.getParameter("newtitle").trim();
				if(newtitle.length()>0){
					if(!ispluginkey(newtitle)||(hooktitles.size()>0&&hooktitles.contains(newtitle))){
						request.setAttribute("errorInfo", "您输入的钩子名称不合法或与现有钩子重复,请返回修改。");
						return mapping.findForward("error");
					}
					dataBaseService.runQuery("INSERT INTO jrun_pluginhooks (pluginid, title, description, code, available) VALUES ('"+pluginid+"', '"+Common.dhtmlspecialchars(newtitle)+"', '', '', 0)",true);
				}
			}else if("vars".equals(type)){
				String[] delete=request.getParameterValues("delete");
				if(delete!=null){
					dataBaseService.runQuery("DELETE FROM jrun_pluginvars WHERE pluginid='"+pluginid+"' AND pluginvarid IN ("+Common.implodeids(delete)+")");
				}
				List<Map<String,String>> pluginvars=dataBaseService.executeQuery("SELECT pluginvarid FROM jrun_pluginvars WHERE pluginid='"+plugin.get("pluginid")+"' ORDER BY displayorder,pluginvarid");
				for (Map<String, String> pluginvar : pluginvars) {
					String pluginvarid=pluginvar.get("pluginvarid");
					String displayordernew=request.getParameter("displayordernew["+pluginvarid+"]");
					if(displayordernew!=null){
						dataBaseService.runQuery("UPDATE jrun_pluginvars SET displayorder='"+Common.toDigit(displayordernew, 127l, -128l)+"' WHERE pluginid='"+pluginid+"' AND pluginvarid='"+pluginvarid+"'",true);
					}
				}
				request.setAttribute("pluginvars",pluginvars);
				String newtitle=Common.dhtmlspecialchars(request.getParameter("newtitle").trim());
				String newvariable=request.getParameter("newvariable").trim();
				if(newtitle.length()>0&&newvariable.length()>0){
					List<Map<String,String>> pluginvar=dataBaseService.executeQuery("SELECT pluginvarid FROM jrun_pluginvars WHERE pluginid='"+pluginid+"' AND variable='"+newvariable+"' LIMIT 1");
					if(pluginvar!=null&&pluginvar.size()>0||Common.strlen(newvariable)>40||!ispluginkey(newvariable)){
						request.setAttribute("errorInfo", "您输入的配置变量名不合法或重复,请返回修改。");
						return mapping.findForward("error");
					}
					dataBaseService.runQuery("INSERT INTO jrun_pluginvars (pluginid, displayorder, title, variable, type,value,extra) VALUES ('"+pluginid+"', '"+request.getParameter("newdisplayorder")+"', '"+newtitle+"', '"+newvariable+"', '"+request.getParameter("newtype")+"','','')",true);
				}
			}
			String realPath=servlet.getServletContext().getRealPath("/");
			Cache cache=new Cache(realPath);
			try {
				cache.updatecache("plugins");
				cache.updatecache("settings");
			} catch (Exception e) {
				e.printStackTrace();
			}
			request.setAttribute("successInfo","插件配置成功更新。");
			request.setAttribute("requestPath", "admincp.jsp?action=pluginsedit&pluginid="+pluginid+"#"+type);
			return mapping.findForward("success");
		}
		return mapping.findForward("topluginsedit");
	}
	public ActionForward pluginhooks(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response) {
		String pluginid=request.getParameter("pluginid");
		String pluginhookid=request.getParameter("pluginhookid");
		List<Map<String,String>> pluginhooks=dataBaseService.executeQuery("SELECT p.pluginid,ph.pluginhookid,ph.title,ph.description,ph.code FROM jrun_plugins p, jrun_pluginhooks ph WHERE p.pluginid='"+pluginid+"' AND ph.pluginid=p.pluginid AND ph.pluginhookid='"+pluginhookid+"'");
		if(pluginhooks==null||pluginhooks.size()==0) {
			request.setAttribute("errorInfo", "未定义的操作!");
			return mapping.findForward("error");
		}
		Map<String,String> pluginhook=pluginhooks.get(0);
		String hooksubmit=request.getParameter("hooksubmit");
		if(hooksubmit==null){
			request.setAttribute("pluginhook",pluginhook);
			return mapping.findForward("topluginhooks");
		}else{
			String descriptionnew=Common.dhtmlspecialchars(request.getParameter("descriptionnew").trim());
			String codenew=request.getParameter("codenew").trim();
			dataBaseService.runQuery("UPDATE jrun_pluginhooks SET description='"+descriptionnew+"', code='"+codenew+"' WHERE pluginid='"+pluginid+"' AND pluginhookid='"+pluginhookid+"'",true);
			
			String realPath=servlet.getServletContext().getRealPath("/");
			Cache cache=new Cache(realPath);
			try {
				cache.updatecache("settings");
			} catch (Exception e) {
				e.printStackTrace();
			}
			request.setAttribute("successInfo","插件钩子成功更新。");
			request.setAttribute("requestPath", "admincp.jsp?action=pluginsedit&pluginid="+pluginid);
			return mapping.findForward("success");
		}
	}
	public ActionForward pluginvars(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response) {
		String pluginid=request.getParameter("pluginid");
		String pluginvarid=request.getParameter("pluginvarid");
		List<Map<String,String>> pluginvars=dataBaseService.executeQuery("SELECT * FROM jrun_plugins p, jrun_pluginvars pv WHERE p.pluginid='"+pluginid+"' AND pv.pluginid=p.pluginid AND pv.pluginvarid='"+pluginvarid+"'");
		if(pluginvars==null||pluginvars.size()==0) {
			request.setAttribute("errorInfo", "未定义的操作!");
			return mapping.findForward("error");
		}
		Map<String,String> pluginvar=pluginvars.get(0);
		String varsubmit=request.getParameter("varsubmit");
		if(varsubmit==null){
			Map<String, String> types = new HashMap<String, String>();
			types.put("number", "数字(number)");
			types.put("text", "字串(text)");
			types.put("textarea", "文本(textarea)");
			types.put("radio", "开关(radio)");
			types.put("select", "选择(select)");
			types.put("color", "颜色(color)");
			request.setAttribute("types",types);
			request.setAttribute("pluginvar",pluginvar);
			return mapping.findForward("topluginvars");
		}else{
			String titlenew=Common.cutstr(Common.dhtmlspecialchars(request.getParameter("titlenew").trim()), 25, null);
			String descriptionnew=Common.cutstr(Common.dhtmlspecialchars(request.getParameter("descriptionnew").trim()), 255, null);
			String variablenew=request.getParameter("variablenew").trim();
			String extranew=Common.dhtmlspecialchars(request.getParameter("extranew").trim());
			if(titlenew.length()==0){
				request.setAttribute("errorInfo", "您没有输入配置名称,请返回修改");
				return mapping.findForward("error");
			}else if(!variablenew.equals(pluginvar.get("variable"))){
				List<Map<String,String>> pluginvartemp=dataBaseService.executeQuery("SELECT pluginvarid FROM jrun_pluginvars WHERE variable='"+variablenew+"'");
				if(pluginvartemp!=null&&pluginvartemp.size()>0||variablenew.length()==0||Common.strlen(variablenew)>40||!ispluginkey(variablenew)){
					request.setAttribute("errorInfo", "您输入的配置变量名不合法或重复,请返回修改。");
					return mapping.findForward("error");
				}
			}
			dataBaseService.runQuery("UPDATE jrun_pluginvars SET title='"+titlenew+"', description='"+descriptionnew+"', type='"+request.getParameter("typenew")+"', variable='"+variablenew+"', extra='"+extranew+"' WHERE pluginid='"+pluginid+"' AND pluginvarid='"+pluginvarid+"'",true);
			String realPath=servlet.getServletContext().getRealPath("/");
			Cache cache=new Cache(realPath);
			try {
				cache.updatecache("plugins");
			} catch (Exception e) {
				e.printStackTrace();
			}
			request.setAttribute("successInfo","插件变量配置成功更新。");
			request.setAttribute("requestPath", "admincp.jsp?action=pluginsedit&pluginid="+pluginid);
			return mapping.findForward("success");
		}
	}
	@SuppressWarnings({ "unchecked", "deprecation" })
	public ActionForward pluginsconfig(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response) {
		String export=request.getParameter("export");
		if(export!=null){
			List<Map<String,String>> plugins=dataBaseService.executeQuery("SELECT * FROM jrun_plugins WHERE pluginid='"+export+"'");
			if(plugins==null||plugins.size()==0){
				request.setAttribute("errorInfo", "未定义的操作!");
				return mapping.findForward("error");
			}
			Map<String,String> plugin=plugins.get(0);
			plugin.remove("pluginid");
			Map pluginMap=new HashMap();
			pluginMap.put("plugin", plugin);
			pluginMap.put("version", JspRunConfig.version);
			List<Map<String,String>> pluginhooks=dataBaseService.executeQuery("SELECT * FROM jrun_pluginhooks WHERE pluginid='"+export+"'");
			for(Map<String,String> hook:pluginhooks){
				hook.remove("pluginhookid");
				hook.remove("pluginid");
				Map<Integer,Map<String,String>> hosts=(Map<Integer,Map<String,String>>)pluginMap.get("hooks");
				if(hosts==null){
					hosts=new HashMap<Integer,Map<String,String>>();
					pluginMap.put("hooks", hosts);
				}
				hosts.put(hosts.size(), hook);
			}
			List<Map<String,String>> pluginvars=dataBaseService.executeQuery("SELECT * FROM jrun_pluginvars WHERE pluginid='"+export+"'");

⌨️ 快捷键说明

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