📄 extendsaction.java
字号:
package cn.jsprun.struts.action;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.management.ManagementFactory;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import cn.jsprun.api.Tenpayapi;
import cn.jsprun.domain.Members;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.utils.Base64Decoder;
import cn.jsprun.utils.Base64Encoder;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Cache;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
import cn.jsprun.utils.FormDataCheck;
import cn.jsprun.utils.ForumInit;
import cn.jsprun.utils.JspRunConfig;
import cn.jsprun.vo.extendSetting.SearchEngineVO;
import com.sun.management.OperatingSystemMXBean;
public class ExtendsAction extends DispatchAction {
private DataBaseService dataBaseService = (DataBaseService)BeanFactory.getBean("dataBaseService");
private DataParse dataParse= (DataParse)BeanFactory.getBean("dataParse");
public ActionForward getSevrerInfo_SysType(ActionMapping mapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) {
String sysType = System.getProperty("os.name");
request.setAttribute("resultInfo", "当前操作系统为:"+sysType);
return mapping.findForward("result");
}
public ActionForward getSevrerInfo_CUPCount(ActionMapping mapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) {
request.setAttribute("resultInfo", "当前服务器的 CPU 核数为:"+Runtime.getRuntime().availableProcessors()+" 核");
return mapping.findForward("result");
}
public ActionForward getSevrerInfo_MemoryInfo(ActionMapping mapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) {
OperatingSystemMXBean operatingSystemMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
request.setAttribute("resultInfo", "当前服务器的内存为:"+(operatingSystemMXBean.getTotalPhysicalMemorySize()/1024/1024)+" MB");
return mapping.findForward("result");
}
@SuppressWarnings("unchecked")
public ActionForward plugins(ActionMapping mapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) {
String edit=request.getParameter("edit");
String identifier=request.getParameter("identifier");
if(edit==null&&identifier==null){
List<Map<String,String>> plugins=dataBaseService.executeQuery("SELECT p.*, pv.pluginvarid FROM jrun_plugins p LEFT JOIN jrun_pluginvars pv USING(pluginid) GROUP BY p.pluginid ORDER BY p.available DESC, p.pluginid");
if(plugins!=null&&plugins.size()>0){
HttpSession session=request.getSession();
byte adminid=(Byte)session.getAttribute("jsprun_adminid");
StringBuffer editstr=null;
for (Map<String, String> plugin : plugins) {
byte plugin_adminid=Byte.valueOf(plugin.get("adminid"));
if(plugin_adminid==0||plugin_adminid>=adminid){
plugin.put("disabled", "");
editstr=new StringBuffer(plugin.get("pluginvarid")!=null?"<a href=\"admincp.jsp?action=plugins&edit="+plugin.get("pluginid")+"\">[插件参数设置]</a> ":"");
Map<Integer,Map> modules=dataParse.characterParse(plugin.get("modules"), false);
if(modules!=null&&modules.size()>0){
Set<Integer> keys =modules.keySet();
for (Integer key : keys) {
Map module=modules.get(key);
byte module_adminid=Byte.valueOf((String)module.get("adminid"));
if("3".equals((String)module.get("type"))&&(module_adminid==0||module_adminid>=adminid)){
editstr.append("<a href=\"admincp.jsp?action=plugins&identifier="+plugin.get("identifier")+"&mod="+module.get("name")+"\">[模块: "+module.get("menu")+"]</a> ");
}
}
}
plugin.put("edit", editstr.toString());
}else{
plugin.put("disabled", "disabled");
plugin.put("edit", "[详情]");
}
}
request.setAttribute("plugins", plugins);
}
return mapping.findForward("toplugins");
}else{
List<Map<String,String>> plugins=dataBaseService.executeQuery("SELECT * FROM jrun_plugins WHERE "+(identifier!=null ? "identifier='"+identifier+"'" : "pluginid='"+edit+"'"));
if(plugins==null||plugins.size()==0){
request.setAttribute("errorInfo", "未定义的操作!");
return mapping.findForward("error");
}
Map<String,String> plugin=plugins.get(0);
edit=plugin.get("pluginid");
Map<String,Map<String,String>> pluginvarsMap=new HashMap<String,Map<String,String>>();
List<Map<String,String>> pluginvars=dataBaseService.executeQuery("SELECT * FROM jrun_pluginvars WHERE pluginid='"+edit+"' ORDER BY displayorder");
for(Map<String,String> pluginvar:pluginvars){
pluginvarsMap.put(pluginvar.get("variable"), pluginvar);
}
String mod=request.getParameter("mod");
if(mod==null){
HttpSession session=request.getSession();
byte adminid=(Byte)session.getAttribute("jsprun_adminid");
byte plugin_adminid=Byte.valueOf(plugin.get("adminid"));
if((plugin_adminid>0&&adminid>plugin_adminid)||pluginvarsMap.size()==0){
request.setAttribute("errorInfo", "您没有权限访问系统设置。");
return mapping.findForward("error");
}
String editsubmit=request.getParameter("editsubmit");
if(editsubmit==null){
for (Map<String, String> var : pluginvars) {
var.put("variable", "varsnew["+var.get("variable")+"]");
if("number".equals(var.get("type"))){
var.put("type", "text");
}else if("select".equals(var.get("type"))){
StringBuffer type=new StringBuffer();
type.append("<select name=\""+var.get("variable")+"\">\n");
String[] extras=var.get("extra").split("\n");
if(extras!=null&&extras.length>0){
for (String extra : extras) {
String key=null;
String option=extra.trim();
if(extra.indexOf("=")==-1){
key=option;
}else{
String[] item=option.split("=");
key=item[0].trim();
option=item[1].trim();
}
type.append("<option value=\""+Common.dhtmlspecialchars(key)+"\" "+(key.equals(var.get("value"))? "selected" :"")+">"+option+"</option>\n");
}
}
type.append("</select>\n");
var.put("type",type.toString());
var.put("variable", "");
var.put("value", "");
}
}
request.setAttribute("edit",edit);
request.setAttribute("plugin",plugin);
request.setAttribute("pluginvars",pluginvars);
return mapping.findForward("toplugins_var_edit");
}else{
for (Map<String, String> var : pluginvars) {
String variable=var.get("variable");
String value=request.getParameter("varsnew["+variable+"]");
if(value!=null){
if("number".equals(var.get("type"))){
value=FormDataCheck.getDoubleString(value);
}
dataBaseService.runQuery("UPDATE jrun_pluginvars SET value='"+value+"' WHERE pluginid='"+edit+"' AND variable='"+variable+"'");
}
}
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=plugins");
return mapping.findForward("success");
}
}else{
String modfile=null;
Map<Integer,Map> modules=dataParse.characterParse(plugin.get("modules"), false);
if(modules!=null&&modules.size()>0){
HttpSession session=request.getSession();
byte adminid=(Byte)session.getAttribute("jsprun_adminid");
Set<Integer> keys =modules.keySet();
for (Integer key : keys) {
Map module=modules.get(key);
byte module_adminid=Byte.valueOf((String)module.get("adminid"));
if("3".equals((String)module.get("type"))&&module.get("name").equals(mod)&&(module_adminid==0||module_adminid>=adminid)){
modfile="/plugins/"+plugin.get("directory")+mod+".inc.jsp";
break;
}
}
}
if(modfile!=null){
String realPath=servlet.getServletContext().getRealPath("/");
File file=null;
try {
file=new File(realPath+modfile);
if(file.exists()){
request.getRequestDispatcher(modfile).forward(request, response);
return null;
}else{
request.setAttribute("resultInfo", "指定的插件管理模块文件("+modfile+")不存在或存在语法错误,请检查是否已将插件完整上传。");
return mapping.findForward("result");
}
} catch (Exception e) {
e.printStackTrace();
}finally{
file=null;
}
}
request.setAttribute("errorInfo", "未定义的操作!");
return mapping.findForward("error");
}
}
}
@SuppressWarnings("unchecked")
public ActionForward pluginsedit(ActionMapping mapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) {
String pluginid=request.getParameter("pluginid");
List<Map<String,String>> plugins=dataBaseService.executeQuery("SELECT * FROM jrun_plugins WHERE pluginid='"+pluginid+"'");
if(plugins==null||plugins.size()==0){
request.setAttribute("errorInfo", "未定义的操作!");
return mapping.findForward("error");
}
Map<String,String> plugin=plugins.get(0);
Map<Integer,Map> modules=dataParse.characterParse(plugin.get("modules"), false);
String editsubmit=request.getParameter("editsubmit");
if(editsubmit==null){
request.setAttribute("plugin", plugin);
Map<Integer,String> moduleoptions=new HashMap<Integer,String>();
moduleoptions.put(1, "直接链接(前台菜单)");
moduleoptions.put(2, "前台调用(前台菜单)");
moduleoptions.put(3, "后台调用(后台菜单)");
moduleoptions.put(4, "包含运行(无菜单)");
moduleoptions.put(5, "直接链接(前台下拉菜单)");
moduleoptions.put(6, "前台调用(前台下拉菜单)");
request.setAttribute("moduleoptions",moduleoptions);
Map<Integer,String> moduleadmins=new HashMap<Integer,String>();
moduleadmins.put(0, "普通用户");
moduleadmins.put(1, "管理员");
moduleadmins.put(2, "超级版主");
moduleadmins.put(3, "版主");
request.setAttribute("moduleadmins",moduleadmins);
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("modules",modules);
List<Map<String,String>> pluginhooks=dataBaseService.executeQuery("SELECT pluginhookid, title, description, available FROM jrun_pluginhooks WHERE pluginid='"+plugin.get("pluginid")+"'");
for (Map<String, String> pluginhook : pluginhooks) {
pluginhook.put("description", Common.cutstr(pluginhook.get("description"), 50, null));
pluginhook.put("evalcode", "${hooks."+plugin.get("identifier")+"_"+pluginhook.get("title")+"};");
}
request.setAttribute("pluginhooks",pluginhooks);
List<Map<String,String>> pluginvars=dataBaseService.executeQuery("SELECT * FROM jrun_pluginvars WHERE pluginid='"+plugin.get("pluginid")+"' ORDER BY displayorder,pluginvarid");
request.setAttribute("pluginvars",pluginvars);
}else{
String type=request.getParameter("type");
if("common".equals(type)){
String namenew=Common.dhtmlspecialchars(request.getParameter("namenew").trim());
String directorynew=Common.dhtmlspecialchars(request.getParameter("directorynew"));
String identifiernew=request.getParameter("identifiernew").trim();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -