增加灵活性

1.php显示phpinfo优化
2.插件接口新增方法
pull/109/head
Mr Chen 6 years ago
parent a94e82368b
commit 256dfb3ced
  1. 2
      class/core/config_api.py
  2. 46
      class/core/plugins_api.py
  3. 4
      plugins/php/index.py
  4. 39
      plugins/php/js/php.js

@ -15,7 +15,7 @@ from flask import request
class config_api: class config_api:
__version = '0.1.0' __version = '0.1.2'
def __init__(self): def __init__(self):
pass pass

@ -177,6 +177,17 @@ class plugins_api:
return public.returnJson(True, "OK", data[0].strip()) return public.returnJson(True, "OK", data[0].strip())
return public.returnJson(False, data[1].strip()) return public.returnJson(False, data[1].strip())
def callbackApi(self):
name = request.form.get('name', '')
func = request.form.get('func', '')
args = request.form.get('args', '')
script = request.form.get('script', 'index')
data = self.callback(name, func, args, script)
if data[0]:
return public.returnJson(True, "OK", data[1])
return public.returnJson(False, data[1])
def updateZipApi(self): def updateZipApi(self):
tmp_path = public.getRootDir() + '/temp' tmp_path = public.getRootDir() + '/temp'
if not os.path.exists(tmp_path): if not os.path.exists(tmp_path):
@ -251,15 +262,6 @@ class plugins_api:
return public.returnJson(True, '安装成功!') return public.returnJson(True, '安装成功!')
public.execShell("rm -rf " + plugin_path) public.execShell("rm -rf " + plugin_path)
return public.returnJson(False, '安装失败!') return public.returnJson(False, '安装失败!')
# 由于内容太大无法shell输出,暂时移动的插件模块中
def phpinfoApi(self):
v = request.form.get('v', '')
sys.path.append("plugins/php")
import index
content = index.getPhpinfo(v)
return content
##### ----- end ----- ### ##### ----- end ----- ###
# 进程是否存在 # 进程是否存在
@ -750,6 +752,7 @@ class plugins_api:
public.writeFile(self.__index, json.dumps(indexList)) public.writeFile(self.__index, json.dumps(indexList))
return public.returnJson(True, '删除成功!') return public.returnJson(True, '删除成功!')
# shell 调用
def run(self, name, func, version, args='', script='index'): def run(self, name, func, version, args='', script='index'):
path = public.getRunDir() + '/' + self.__plugin_dir + \ path = public.getRunDir() + '/' + self.__plugin_dir + \
'/' + name + '/' + script + '.py' '/' + name + '/' + script + '.py'
@ -766,6 +769,29 @@ class plugins_api:
# data = os.popen(py_cmd).read() # data = os.popen(py_cmd).read()
if public.isAppleSystem(): if public.isAppleSystem():
print py_cmd print 'run', py_cmd
# print os.path.exists(py_cmd) # print os.path.exists(py_cmd)
return (data[0].strip(), data[1].strip()) return (data[0].strip(), data[1].strip())
# 映射包调用
def callback(self, name, func, args='', script='index'):
package = public.getRunDir() + '/plugins/' + name
if not os.path.exists(package):
return (False, "插件不存在!")
sys.path.append(package)
eval_str = "__import__('" + script + "')." + func + '(' + args + ')'
newRet = eval(eval_str)
if public.isAppleSystem():
print 'callback', eval_str, newRet
return (True, newRet)
# 由于内容太大无法shell输出,暂时移动的插件模块中
def phpinfoApi(self):
v = request.form.get('v', '')
sys.path.append("plugins/php")
import index
content = index.getPhpinfo(v)
return content

@ -506,6 +506,10 @@ def getPhpinfo(v):
return phpinfo return phpinfo
def get_php_info(args):
return getPhpinfo(args['version'])
def getLibConf(version): def getLibConf(version):
fname = public.getServerDir() + '/php/' + version + '/etc/php.ini' fname = public.getServerDir() + '/php/' + version + '/etc/php.ini'
if not os.path.exists(fname): if not os.path.exists(fname):

@ -36,6 +36,33 @@ function phpPost(method, version, args,callback){
},'json'); },'json');
} }
function phpPostCallbak(method, version, args,callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
var req_data = {};
req_data['name'] = 'php';
req_data['func'] = method;
args['version'] = version;
if (typeof(args) == 'string'){
req_data['args'] = JSON.stringify(str2Obj(args));
} else {
req_data['args'] = JSON.stringify(args);
}
$.post('/plugins/callback', req_data, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
//配置修改 //配置修改
function phpSetConfig(version) { function phpSetConfig(version) {
@ -392,20 +419,24 @@ function getPHPInfo_old(version) {
}); });
} }
//获取PHPInfo
function getPHPInfo(version) { function getPHPInfo(version) {
$.post('/plugins/phpinfo', {v:version}, function(data) { phpPostCallbak('get_php_info', version, {}, function(data){
if (!data.status){
layer.msg(rdata.msg, { icon: 2 });
}
layer.open({ layer.open({
type: 1, type: 1,
title: "PHP-" + version + "-PHPINFO", title: "PHP-" + version + "-PHPINFO",
area: ['90%', '90%'], area: ['90%', '90%'],
closeBtn: 2, closeBtn: 2,
shadeClose: true, shadeClose: true,
content: data content: data.data
}); });
}); })
} }
function phpLibConfig(version){ function phpLibConfig(version){
phpPost('get_lib_conf', version, '', function(data){ phpPost('get_lib_conf', version, '', function(data){

Loading…
Cancel
Save