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