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

📄 extendsaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
			for(Map<String,String> var:pluginvars){
				var.remove("pluginvarid");
				var.remove("pluginid");
				Map<Integer,Map<String,String>> vars=(Map<Integer,Map<String,String>>)pluginMap.get("vars");
				if(vars==null){
					vars=new HashMap<Integer,Map<String,String>>();
					pluginMap.put("vars", vars);
				}
				vars.put(vars.size(), var);
			}
			HttpSession session = request.getSession();
			String dateformat= (String)session.getAttribute("dateformat");
			String timeformat=(String)session.getAttribute("timeformat");
			int timeoffset=(int)((Float)session.getAttribute("timeoffset")*3600);
			String bbname=((Map<String,String>)servlet.getServletContext().getAttribute("fsmap")).get("bbname");
			String boardurl=(String)session.getAttribute("boardurl");
			int timestamp = (Integer)(request.getAttribute("timestamp"));
			String time = Common.gmdate(dateformat+" "+timeformat, timestamp+timeoffset);
			String plugin_export="# JspRun! Plugin Dump\n# Version: JspRun! "+JspRunConfig.version+"\n# Time: "+time+"\n# From: "+bbname+" ("+boardurl+")\n#\n# JspRun! Community: http://www.jsprun.net\n# Please visit our website for latest news about JspRun!\n# --------------------------------------------------------\n\n\n"+Base64Encoder.encode(dataParse.combinationChar(pluginMap), JspRunConfig.charset);
			response.setHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT");
			response.setHeader("Last-Modified", Common.gmdate("EEE, d MMM yyyy HH:mm:ss", timestamp)+" GMT");
			response.setHeader("Cache-Control", "no-cache, must-revalidate");
			response.setHeader("Pragma", "no-cache");
			response.setHeader("Content-Encoding", "none");
			response.setHeader("Content-Disposition","attachment; filename=JspRun_plugin_"+plugin.get("identifier")+".txt");
			response.setHeader("Content-Type",request.getHeader("User-Agent").indexOf("MSIE")>=0?"application/octetstream":"application/octet-stream");
			try {
				byte[] content=plugin_export.getBytes(JspRunConfig.charset);
				response.setHeader("Content-Length", String.valueOf(content.length));
				OutputStream os=response.getOutputStream();
				os.write(content);
				os.flush();
				os.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			return null;
		}
		String configsubmit=request.getParameter("configsubmit");
		String importsubmit=request.getParameter("importsubmit");
		if(configsubmit==null&&importsubmit==null){
			List<Map<String,String>> plugins=dataBaseService.executeQuery("SELECT * FROM jrun_plugins order by pluginid");
			request.setAttribute("plugins", plugins);
			return mapping.findForward("topluginsconfig");
		}
		else if(configsubmit!=null){
			String[] delete=request.getParameterValues("delete");
			if(delete!=null){
				String ids=Common.implodeids(delete);
				dataBaseService.runQuery("DELETE FROM jrun_plugins WHERE pluginid IN ("+ids+")");
				dataBaseService.runQuery("DELETE FROM jrun_pluginvars WHERE pluginid IN ("+ids+")");
			}
			List<Map<String,String>> plugins=dataBaseService.executeQuery("SELECT pluginid FROM jrun_plugins");
			if(plugins!=null&&plugins.size()>0){
				for (Map<String, String> plugin : plugins) {
					String pluginid=plugin.get("pluginid");
					dataBaseService.runQuery("UPDATE jrun_plugins SET available='"+Common.toDigit(request.getParameter("availablenew["+pluginid+"]"))+"' WHERE pluginid='"+pluginid+"'",true);
				}
			}
			String newname=request.getParameter("newname").trim();
			String newidentifier=request.getParameter("newidentifier").trim();
			if(newname.length()>0||newidentifier.length()>0){
				if(newname.length()==0){
					request.setAttribute("errorInfo", "您没有输入插件名称,请返回修改。");
					return mapping.findForward("error");
				}
				plugins=dataBaseService.executeQuery("SELECT pluginid FROM jrun_plugins WHERE identifier='"+newidentifier+"' LIMIT 1");
				if(plugins!=null&&plugins.size()>0||!this.ispluginkey(newidentifier)){
					request.setAttribute("errorInfo", "您输入的唯一标识符不合法或与现有插件重复,请返回修改。");
					return mapping.findForward("error");
				}
				dataBaseService.runQuery("INSERT INTO jrun_plugins (name, identifier, available,description,datatables,directory,copyright,modules) VALUES ('"+Common.dhtmlspecialchars(newname)+"', '"+newidentifier+"', '0','','','','','')", 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=pluginsconfig");
			return mapping.findForward("success");
		}
		else if(importsubmit!=null){
			String ignoreversion=request.getParameter("ignoreversion");
			String plugindata=request.getParameter("plugindata");
			plugindata=plugindata.replaceAll("(#.*\\s+)*", "");
			Map pluginMap=dataParse.characterParse(Base64Decoder.decode(plugindata, JspRunConfig.charset),false);
			if(pluginMap==null||pluginMap.size()==0||pluginMap.get("plugin")==null){
				request.setAttribute("errorInfo", "插件数据文件已损坏,无法导入,请返回。");
				return mapping.findForward("error");
			}
			else if(ignoreversion==null&&!pluginMap.get("version").toString().equals(JspRunConfig.version)){
				request.setAttribute("errorInfo", "导出插件所用 JspRun! ("+pluginMap.get("version")+")与当前版本("+JspRunConfig.version+")不一致,请返回。");
				return mapping.findForward("error");
			}
			Map<String,String> plugin=(Map<String,String>)pluginMap.get("plugin");
			String identifier=plugin.get("identifier");
			List<Map<String,String>> plugins=dataBaseService.executeQuery("SELECT pluginid FROM jrun_plugins WHERE identifier='"+identifier+"' LIMIT 1");
			if(plugins!=null&&plugins.size()>0){
				request.setAttribute("errorInfo", "您要导入插件的唯一标识符与现有插件重复,可能您已安装过此插件。如确认仍需导入此插件,请返回先删除唯一标识符为 “"+identifier+"” 的现有插件后再试。");
				return mapping.findForward("error");
			}
			StringBuffer sql1=new StringBuffer();
			StringBuffer sql2=new StringBuffer();
			Set<String> keys=plugin.keySet();
			for(String key:keys){
				sql1.append(","+key);
				sql2.append(",'"+plugin.get(key)+"'");
			}
			int pluginid=dataBaseService.insert("INSERT INTO jrun_plugins ("+sql1.substring(1)+") VALUES ("+sql2.substring(1)+")", true);
			String[] temp={"hooks","vars"};
			for (String str : temp) {
				Map<Integer,Map<String,String>> pluginconfig=(Map<Integer,Map<String,String>>)pluginMap.get(str);
				if(pluginconfig!=null){
					Set<Integer> configKeys=pluginconfig.keySet();
					for(Integer configkey:configKeys){
						sql1=new StringBuffer("pluginid");
						sql2=new StringBuffer("'"+pluginid+"'");
						Map<String,String> config=pluginconfig.get(configkey);
						keys=config.keySet();
						for (String key : keys) {
							sql1.append(","+key);
							sql2.append(",'"+config.get(key)+"'");
						}
						dataBaseService.runQuery("INSERT INTO jrun_plugin"+str+" ("+sql1+") VALUES ("+sql2+")");
					}
				}
			}
			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=pluginsconfig");
			return mapping.findForward("success");
		}else{
			request.setAttribute("errorInfo", "未定义的操作!");
			return mapping.findForward("error");
		}
	}
	@SuppressWarnings("unchecked")
	public ActionForward showSearchEngine(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response){
		String action = request.getParameter("do");
		if(action==null){
			request.setAttribute("resultInfo", "请确保正常操作!");
			return mapping.findForward("result");
		}
		
		SearchEngineVO searchEngineVO = new SearchEngineVO();
		String variable = null;
		if(action.equals("google_config")){
			searchEngineVO.setEngineName("Google");
			variable = "google";
		}else if(action.equals("baidu_config")){
			searchEngineVO.setEngineName("Baidu");
			variable = "baidu";
		}else{
			request.setAttribute("resultInfo", "请确保正常操作!");
			return mapping.findForward("result");
		}
		Map<String,String> tempMap = ((DataParse)BeanFactory.getBean("dataParse")).characterParse(ForumInit.settings.get(variable),false);
		searchEngineVO.setLanguage(tempMap.get("lang")==null?"":(String)tempMap.get("lang"));
		searchEngineVO.setShow(tempMap.get("searchbox")==null?0:Integer.valueOf(tempMap.get("searchbox")));
		searchEngineVO.setStatus(tempMap.get("status")==null?0:Integer.valueOf(tempMap.get("status")));
		request.setAttribute("valueObject", searchEngineVO);
		return mapping.findForward("go_searchEngine");
	}
	public ActionForward searchEngine(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response){
		String engineName = request.getParameter("engineName");
		String status = request.getParameter("googlenew[status]");
		String lang = request.getParameter("googlenew[lang]");
		String[] searchboxArray = request.getParameterValues("googlenew[searchbox]");
		if(engineName==null||status==null||(engineName.equals("Google")&&lang==null)){
			request.setAttribute("resultInfo", "请确保正常操作!");
			return mapping.findForward("result");
		}
		Integer searchbox = 0;
		if(searchboxArray!=null){
			for(int i = 0;i<searchboxArray.length;i++){
				try{
					searchbox += Integer.valueOf(searchboxArray[i]);
				}catch(NumberFormatException exception){
					request.setAttribute("resultInfo", "请确保正常操作!");
					return mapping.findForward("result");
				}
			}
		}
		Map<String,String> maptemp = new HashMap<String,String>();
		maptemp.put("status", status);
		maptemp.put("lang", lang);
		maptemp.put("searchbox", String.valueOf(searchbox));
		String value = ((DataParse)BeanFactory.getBean("dataParse")).combinationChar(maptemp);
		String variable = null;
		if(engineName.equals("Google")){
			variable = "google";
		}else if(engineName.equals("Baidu")){
			variable= "baidu";
		}else{
			request.setAttribute("resultInfo", "请确保正常操作!");
			return mapping.findForward("result");
		}
		Map<String,String> oldSettingMap = ForumInit.settings;
		Map<String,String> newSettingMap = new HashMap<String, String>();
		
		putValue(variable, value, oldSettingMap, newSettingMap);
		updateSettings(newSettingMap, oldSettingMap);
		Cache cache = new Cache(servlet.getServletContext().getRealPath("/"),request);
		try {
			cache.updatecache(variable);
			cache.updatecache("settings");
		} catch (Exception e) {
			e.printStackTrace();
		}
		request.setAttribute("resultInfo", engineName+" 搜索设置成功更新。");
		return mapping.findForward("result");
	}
	public ActionForward tenpay(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response){
		String tenpaysubmit=request.getParameter("tenpaysubmit");
		if(tenpaysubmit!=null){
			String variables[] = {"ec_account","ec_key"};
			Map<String,String> oldSettings=ForumInit.settings;
			Map<String,String> settings=new HashMap<String,String>();
			for (String variable: variables) {
				String value =request.getParameter(variable);
				this.putValue(variable, value, oldSettings, settings);
			}
			this.updateSettings(settings,oldSettings);
			request.setAttribute("resultInfo", "财付通功能成功设定。");
			return mapping.findForward("result");
		}
		return mapping.findForward("totenpay");
	}
	@SuppressWarnings("unchecked")
	public ActionForward ec_credit(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response){
		Map<String,String> oldSettings=ForumInit.settings;
		String creditsubmit=request.getParameter("creditsubmit");
		if(creditsubmit==null){
			String ec_credit=oldSettings.get("ec_credit");
			Map<String,Object> ec_credits=new HashMap<String,Object>();
			Map<Object,Object> ranks=null;
			int maxcreditspermonth=6;
			if(ec_credit!=null&&ec_credit.length()>0){
				ec_credits=dataParse.characterParse(ec_credit, true);
				maxcreditspermonth=(Byte)ec_credits.get("maxcreditspermonth");
				ranks=(Map<Object,Object>)ec_credits.get("rank");
			}else {
				ranks=new TreeMap<Object,Object>();
				ranks.put(1, 4);
				ranks.put(2, 11);
				ranks.put(3, 41);
				ranks.put(4, 91);
				ranks.put(5, 151);
				ranks.put(6, 251);
				ranks.put(7, 501);

⌨️ 快捷键说明

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