/** * 取回网站数据列表 * @param {Number} page 当前页 * @param {String} search 搜索条件 */ function getWeb(page, search) { search = $("#SearchValue").prop("value"); page = page == undefined ? '1':page; order = getCookie('order'); if(order){ order = '&order=' + order; }else{ order = ''; } var sUrl = '/site/list'; var pdata = 'tojs=getWeb&table=sites&limit=15&p=' + page + '&search=' + search + order; var loadT = layer.load(); //取回数据 $.post(sUrl, pdata, function(data) { layer.close(loadT); //构造数据列表 var body = ''; $("#webBody").html(body); for (var i = 0; i < data.data.length; i++) { //当前站点状态 if (data.data[i].status == lan.site.running || data.data[i].status == '1') { var status = ""+lan.site.running_text+" "; } else { var status = ""+lan.site.stopped+" "; } //是否有备份 if (data.data[i].backup_count > 0) { var backup = ""+lan.site.backup_yes+""; } else { var backup = ""+lan.site.backup_no+""; } //是否设置有效期 var web_end_time = (data.data[i].edate == "0000-00-00") ? lan.site.web_end_time : data.data[i].edate; //表格主体 var shortwebname = data.data[i].name; var shortpath = data.data[i].path; if(data.data[i].name.length > 30) { shortwebname = data.data[i].name.substring(0, 30) + "..."; } if(data.data[i].path.length > 30){ shortpath = data.data[i].path.substring(0, 30) + "..."; } var idname = data.data[i].name.replace(/\./g,'_'); body = "\ " + shortwebname + "\ " + status + "\ " + backup + "\ " + shortpath + "\ " + web_end_time + "\ " + data.data[i].ps + "\ \ \ "+lan.site.set+" \ | "+lan.public.del+"\ " $("#webBody").append(body); //setEdate(data.data[i].id,data.data[i].edate); //设置到期日期 function getDate(a) { var dd = new Date(); dd.setTime(dd.getTime() + (a == undefined || isNaN(parseInt(a)) ? 0 : parseInt(a)) * 86400000); var y = dd.getFullYear(); var m = dd.getMonth() + 1; var d = dd.getDate(); return y + "-" + (m < 10 ? ('0' + m) : m) + "-" + (d < 10 ? ('0' + d) : d); } $('#webBody').on('click','#site_'+ data.data[i].id,function(){ var _this = $(this); var id = $(this).attr('data-ids'); laydate.render({ elem: '#site_'+ id //指定元素 ,min:getDate(1) ,max:'2099-12-31' ,vlue:getDate(365) ,type:'date' ,format :'yyyy-MM-dd' ,trigger:'click' ,btns:['perpetual', 'confirm'] ,theme:'#20a53a' ,done:function(dates){ if(_this.html() == '永久'){ dates = '0000-00-00'; } var loadT = layer.msg(lan.site.saving_txt, { icon: 16, time: 0, shade: [0.3, "#000"]}); $.post('/site/set_end_date','id='+id+'&edate='+dates,function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:5}); },'json'); } }); this.click(); }); } if(body.length < 10){ body = ""+lan.site.site_no_data+""; $(".dataTables_paginate").hide(); $("#webBody").html(body); } //输出数据列表 $(".btn-more").hover(function(){ $(this).addClass("open"); },function(){ $(this).removeClass("open"); }); //输出分页 $("#webPage").html(data.page); $(".btlinkbed").click(function(){ var dataid = $(this).attr("data-id"); var databak = $(this).text(); if(databak==lan.site.site_null){ databak=''; } $(this).hide().after(""); $(".baktext").focus(); }); },'json'); } //添加站点 function webAdd(type) { if (type == 1) { var array; var str=""; var domainlist=''; var domain = array = $("#mainDomain").val().replace('http://','').replace('https://','').split("\n"); var webport=[]; var checkDomain = domain[0].split('.'); if(checkDomain.length < 1){ layer.msg(lan.site.domain_err_txt,{icon:2}); return; } for(var i=1; i"; layer.open({ type: 1, skin: 'demo-class', area: '640px', title: '添加网站', closeBtn: 2, shift: 0, shadeClose: false, content: "
\
\ "+lan.site.domain+"\
\ \
\
\
\ 备注\
\ \
\
\
\ 根目录\
\ \ \
\
\ "+php_version+"\
\ \ \
\
", }); $(function() { var placeholder = "
"+lan.site.domain_help+"
"; $('#mainDomain').after(placeholder); $(".placeholder").click(function(){ $(this).hide(); $('#mainDomain').focus(); }) $('#mainDomain').focus(function() { $(".placeholder").hide(); }); $('#mainDomain').blur(function() { if($(this).val().length==0){ $(".placeholder").show(); } }); //验证PHP版本 $("select[name='version']").change(function(){ if($(this).val() == '52'){ var msgerr = 'PHP5.2在您的站点有漏洞时有跨站风险,请尽量使用PHP5.3以上版本!'; $('#php_w').text(msgerr); }else{ $('#php_w').text(''); } }) $('#mainDomain').on('input', function() { var array; var res,ress; var str = $(this).val().replace('http://','').replace('https://',''); var len = str.replace(/[^\x00-\xff]/g, "**").length; array = str.split("\n"); ress =array[0].split(":")[0]; res = ress.replace(new RegExp(/([-.])/g), '_'); if(res.length > 15){ res = res.substr(0,15); } var placeholder = $("#inputPath").attr('placeholder'); $("#inputPath").val(placeholder+'/'+ress); if(res.length > 15){ res = res.substr(0,15); } $("#Wbeizhu").val(ress); }) //备注 $('#Wbeizhu').on('input', function() { var str = $(this).val(); var len = str.replace(/[^\x00-\xff]/g, "**").length; if (len > 20) { str = str.substring(0, 20); $(this).val(str); layer.msg('不能超出20个字符!', { icon: 0 }); } }) //获取当前时间时间戳,截取后6位 var timestamp = new Date().getTime().toString(); var dtpw = timestamp.substring(7); }); }, 'json'); } //修改网站目录 function webPathEdit(id){ $.post("/data?action=getKey","table=sites&key=path&id="+id,function(rdata){ $.post('/site?action=GetDirUserINI','path='+rdata+'&id='+id,function(userini){ var userinicheckeds = userini.userini?'checked':''; var logscheckeds = userini.logs?'checked':''; var opt = '' var selected = ''; for(var i=0;i'+ userini.runPath.dirs[i] +'' } var webPathHtml = "
\
\ \ \
\
\ "+lan.site.web_dir+"\ \ \ \
\
\ "+lan.site.run_dir+"\ \ \
\
    \
  • "+lan.site.site_help_1+"
  • \
  • "+lan.site.site_help_2+"
  • \
" +'
' +''+lan.soft.pma_pass+'' +'' +'' +'' +'
' +'
' +'

'+lan.soft.pma_user+'

' +'

'+lan.soft.pma_pass1+'

' +'

'+lan.soft.pma_pass2+'

' +'

' +'
' +'
'; $("#webedit-con").html(webPathHtml); $("#userini").change(function(){ $.post('/site?action=SetDirUserINI','path='+rdata,function(userini){ layer.msg(userini.msg+'

注意:设置防跨站需要重启PHP才能生效!

',{icon:userini.status?1:2}); }); }); $("#logs").change(function(){ $.post('/site?action=logsOpen','id='+id,function(userini){ layer.msg(userini.msg,{icon:userini.status?1:2}); }); }); }); }); } //是否设置访问密码 function pathSafe(id){ var isPass = $('#pathSafe').prop('checked'); if(!isPass){ $(".user_pw").show(); }else{ var loadT = layer.msg(lan.public.the,{icon:16,time:10000,shade: [0.3, '#000']}); $.post('/site?action=CloseHasPwd',{id:id},function(rdata){ layer.close(loadT); var ico = rdata.status?1:2; layer.msg(rdata.msg,{icon:ico}); $(".user_pw").hide(); }); } } //设置访问密码 function SetPathSafe(id){ var username = $("#username_get").val(); var pass1 = $("#password_get_1").val(); var pass2 = $("#password_get_2").val(); if(pass1 != pass2){ layer.msg(lan.bt.pass_err_re,{icon:2}); return; } var loadT = layer.msg(lan.public.the,{icon:16,time:10000,shade: [0.3, '#000']}); $.post('/site?action=SetHasPwd',{id:id,username:username,password:pass1},function(rdata){ layer.close(loadT); var ico = rdata.status?1:2; layer.msg(rdata.msg,{icon:ico}); }); } //提交运行目录 function SetSiteRunPath(id){ var NewPath = $("#runPath").val(); var loadT = layer.msg(lan.public.the,{icon:16,time:10000,shade: [0.3, '#000']}); $.post('/site?action=SetSiteRunPath','id='+id+'&runPath='+NewPath,function(rdata){ layer.close(loadT); var ico = rdata.status?1:2; layer.msg(rdata.msg,{icon:ico}); }); } //提交网站目录 function SetSitePath(id){ var NewPath = $("#inputPath").val(); var loadT = layer.msg(lan.public.the,{icon:16,time:10000,shade: [0.3, '#000']}); $.post('/site?action=SetPath','id='+id+'&path='+NewPath,function(rdata){ layer.close(loadT); var ico = rdata.status?1:2; layer.msg(rdata.msg,{icon:ico}); }); } //修改网站备注 function webBakEdit(id){ $.post("/data?action=getKey','table=sites&key=ps&id="+id,function(rdata){ var webBakHtml = "
\
\ \
\ \

\
\
"; $("#webedit-con").html(webBakHtml) }); } //提交网站备注 function SetSitePs(id){ var myPs = $("#webbeizhu").val(); $.post('/data?action=setPs','table=sites&id='+id+'&ps='+myPs,function(rdata){ layer.msg(rdata?lan.public.edit_ok:lan.public.edit_err,{icon:rdata?1:2}); }); } //设置默认文档 function setIndexEdit(id){ $.post('/site/get_index','id='+id,function(data){ var rdata = data['index']; rdata = rdata.replace(new RegExp(/(,)/g), "\n"); var setIndexHtml = "
\
\ \ \
\
    \
  • 默认文档,每行一个,优先级由上至下。
  • \
\
"; $("#webedit-con").html(setIndexHtml); },'json'); } /** * 停止一个站点 * @param {Int} wid 网站ID * @param {String} wname 网站名称 */ function webStop(wid, wname) { layer.confirm(lan.site.site_stop_txt, {icon:3,closeBtn:2},function(index) { if (index > 0) { var loadT = layer.load() $.post("/site?action=SiteStop","id=" + wid + "&name=" + wname, function(ret) { layer.msg(ret.msg,{icon:ret.status?1:2}) layer.close(loadT); getWeb(1); }); } }); } /** * 启动一个网站 * @param {Number} wid 网站ID * @param {String} wname 网站名称 */ function webStart(wid, wname) { layer.confirm(lan.site.site_start_txt,{icon:3,closeBtn:2}, function(index) { if (index > 0) { var loadT = layer.load() $.post("/site?action=SiteStart","id=" + wid + "&name=" + wname, function(ret) { layer.msg(ret.msg,{icon:ret.status?1:2}) layer.close(loadT); getWeb(1); }); } }); } /** * 删除一个网站 * @param {Number} wid 网站ID * @param {String} wname 网站名称 */ function webDelete(wid, wname){ var thtml = "
\ \
"; var info = '是否要删除同名根目录'; safeMessage('删除站点'+"["+wname+"]",info, function(){ var path=''; if($("#delpath").is(":checked")){ path='&path=1'; } var loadT = layer.msg(lan.public.the,{icon:16,time:10000,shade: [0.3, '#000']}); $.post("/site/delete","id=" + wid + "&webname=" + wname + path, function(ret){ layer.closeAll(); layer.msg(ret.msg,{icon:ret.status?1:2}) getWeb(1); },'json'); },thtml); } //批量删除 function allDeleteSite(){ var checkList = $("input[name=id]"); var dataList = new Array(); for(var i=0;i"+lan.site.all_del_info+"\
"; safeMessage(lan.site.all_del_site,""+lan.get('del_all_site',[dataList.length])+"",function(){ layer.closeAll(); var path = ''; if($("#delpath").is(":checked")){ path='&path=1'; } syncDeleteSite(dataList,0,'',path); },thtml); } //模拟同步开始批量删除 function syncDeleteSite(dataList,successCount,errorMsg,path){ if(dataList.length < 1) { layer.msg(lan.get('del_all_site_ok',[successCount]),{icon:1}); return; } var loadT = layer.msg(lan.get('del_all_task_the',[dataList[0].name]),{icon:16,time:0,shade: [0.3, '#000']}); $.ajax({ type:'POST', url:'/site?action=DeleteSite', data:'id='+dataList[0].id+'&webname='+dataList[0].name+path, async: true, success:function(frdata){ layer.close(loadT); if(frdata.status){ successCount++; $("input[title='"+dataList[0].name+"']").parents("tr").remove(); }else{ if(!errorMsg){ errorMsg = '

'+lan.site.del_err+':

'; } errorMsg += '
  • '+dataList[0].name+' -> '+frdata.msg+'
  • ' } dataList.splice(0,1); syncDeleteSite(dataList,successCount,errorMsg,path); } }); } /** * 域名管理 * @param {Int} id 网站ID */ function domainEdit(id, name, msg, status) { $.post('/site/get_domain' ,{pid:id}, function(domain) { var echoHtml = ""; for (var i = 0; i < domain.length; i++) { echoHtml += "" + domain[i].name + "" + domain[i].port + ""; } var bodyHtml = "\ \ \
    \ \ \ " + echoHtml + "\
    "+lan.site.domain+""+lan.site.port+""+lan.site.operate+"
    \
    "; $("#webedit-con").html(bodyHtml); if(msg != undefined){ layer.msg(msg,{icon:status?1:5}); } var placeholder = "
    "+lan.site.domain_help+"
    "; $('#newdomain').after(placeholder); $(".placeholder").click(function(){ $(this).hide(); $('#newdomain').focus(); }) $('#newdomain').focus(function() { $(".placeholder").hide(); }); $('#newdomain').blur(function() { if($(this).val().length==0){ $(".placeholder").show(); } }); $("#newdomain").on("input",function(){ var str = $(this).val(); if(isChineseChar(str)) { $('.btn-zhm').show(); } else{ $('.btn-zhm').hide(); } }) //checkDomain(); },'json'); } function DomainRoot(id, name,msg) { $.get('/data?action=getData&table=domain&list=True&search=' + id, function(domain) { var echoHtml = ""; for (var i = 0; i < domain.length; i++) { echoHtml += "" + domain[i].name + "" + domain[i].port + ""; } var index = layer.open({ type: 1, skin: 'demo-class', area: '450px', title: lan.site.domain_man, closeBtn: 2, shift: 0, shadeClose: true, content: "
    \ \ \ \ \ \ " + echoHtml + "\
    "+lan.site.domain+""+lan.site.port+""+lan.site.operate+"
    " }); if(msg != undefined){ layer.msg(msg,{icon:1}); } var placeholder = "
    "+lan.site.domain_help+"
    "; $('#newdomain').after(placeholder); $(".placeholder").click(function(){ $(this).hide(); $('#newdomain').focus(); }) $('#newdomain').focus(function() { $(".placeholder").hide(); }); $('#newdomain').blur(function() { if($(this).val().length==0){ $(".placeholder").show(); } }); $("#newdomain").on("input",function(){ var str = $(this).val(); if(isChineseChar(str)) $('.btn-zhm').show(); else $('.btn-zhm').hide(); }) //checkDomain(); }); } //编辑域名/端口 function cancelSend(){ $(".changeDomain,.changePort").hide().prev().show(); $(".changeDomain,.changePort").remove(); } //遍历域名 function checkDomain() { $("#checkDomain tr").each(function() { var $this = $(this); var domain = $(this).find("td:first-child").text(); $(this).find("td:first-child").append(""); checkDomainWebsize($this,domain); }) } //检查域名是否解析备案 function checkDomainWebsize(obj,domain){ var gurl = "http://api.bt.cn/ipaddess"; var ip = getCookie('iplist'); var data = "domain=" + domain+"&ip="+ip; $.ajax({ url: gurl,data:data,type:"get",dataType:"jsonp",async:true ,success: function(rdata){ obj.find("td:first-child").find(".lading").remove(); if (rdata.code == -1) { obj.find("td:first-child").append(""+lan.site.unresolved+""); } else { obj.find("td:first-child").append(""+lan.site.parsed+""); } obj.find("i").mouseover(function() { var tipsTitle = $(this).attr("data-title"); layer.tips(tipsTitle, this, { tips: [1, '#3c8dbc'], time: 0 }) }) obj.find("i").mouseout(function() { $(".layui-layer-tips").remove(); }) }}) } /** * 添加域名 * @param {Int} id 网站ID * @param {String} webname 主域名 */ function domainAdd(id, webname,type) { var Domain = $("#newdomain").val().split("\n"); var domainlist = ''; for(var i=0; i下载 | "; }else{ var ftpdown = "下载 | "; } body += ""+frdata.data[i].name+"\ " + (ToSize(frdata.data[i].size)) + "\ " + frdata.data[i].addtime + "\ "+ ftpdown + ""+lan.public.del+"\ " } var ftpdown = ''; frdata.page = frdata.page.replace(/'/g,'"').replace(/getBackup\(/g,"getBackup(" + id + ",0,"); if(name == 0){ var sBody = "\ \ "+body+"\
    "+lan.site.filename+""+lan.site.filesize+""+lan.site.backuptime+""+lan.site.operate+"
    " $("#WebBackupList").html(sBody); $(".page").html(frdata.page); return; } layer.closeAll(); layer.open({ type: 1, skin: 'demo-class', area: '700px', title: lan.site.backup_title, closeBtn: 2, shift: 0, shadeClose: false, content: "
    \ \
    \ \ "+body+"\
    "+lan.site.filename+""+lan.site.filesize+""+lan.site.backuptime+""+lan.site.operate+"
    "+frdata.page+"
    " }); }); }); } function goSet(num) { //取选中对象 var el = document.getElementsByTagName('input'); var len = el.length; var data = ''; var a = ''; var count = 0; //构造POST数据 for (var i = 0; i < len; i++) { if (el[i].checked == true && el[i].value != 'on') { data += a + count + '=' + el[i].value; a = '&'; count++; } } //判断操作类别 if(num==1){ reAdd(data); } else if(num==2){ shift(data); } } //设置默认文档 function setIndex(id){ var quanju = (id==undefined)?lan.site.public_set:lan.site.local_site; var data=id==undefined?"":"id="+id; $.post('/site?action=GetIndex',data,function(rdata){ rdata= rdata.replace(new RegExp(/(,)/g), "\n"); layer.open({ type: 1, area: '500px', title: lan.site.setindex, closeBtn: 2, shift: 5, shadeClose: true, content:"
    " +"
    " +" "+lan.site.default_doc+"" +"
    " +" " +"

    "+quanju+lan.site.default_doc_help+"

    " +"
    " +"
    " +"
    " +" " +" " +"
    " +"
    " }); }); } //设置默认站点 function SetDefaultSite(){ var name = $("#defaultSite").val(); var loadT = layer.msg(lan.public.the,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site?action=SetDefaultSite','name='+name,function(rdata){ layer.closeAll(); layer.msg(rdata.msg,{icon:rdata.status?1:5}); }); } //默认站点 function GetDefaultSite(){ $.post('/site?action=GetDefaultSite','',function(rdata){ var opt = ''; var selected = ''; for(var i=0;i' + rdata.sites[i].name + ''; } layer.open({ type: 1, area: '430px', title: lan.site.default_site_yes, closeBtn: 2, shift: 5, shadeClose: true, content:'
    \

    \ '+lan.site.default_site+'\ \

    \
      \
    • '+lan.site.default_site_help_1+'
    • \
    • '+lan.site.default_site_help_2+'
    • \
    \
    \ \ \
    \
    ' }); }); } function setIndexList(id){ var Dindex = $("#Dindex").val().replace(new RegExp(/(\n)/g), ","); if(id == undefined ){ var data="id=&index="+Dindex; } else{ var data="id="+id+"&index="+Dindex; } var loadT= layer.load(2); $.post('/site/set_index',data,function(rdata){ layer.close(loadT); var ico = rdata.status? 1:5; layer.msg(rdata.msg,{icon:ico}); },'json'); } /*站点修改*/ function webEdit(id,website,endTime,addtime){ var system = "{$Think.session.system}"; var eMenu = ''; eMenu = "

    子目录绑定

    " +"

    网站目录

    " +"

    流量限制

    " +"

    伪静态

    " +"

    默认文档

    " +"

    配置文件

    " +"

    SSL

    " +"

    PHP版本

    " +"

    301重定向

    " +"

    反向代理

    " +"

    防盗链

    " +"

    响应日志

    "; layer.open({ type: 1, area: '640px', title: lan.site.website_change+'['+website+'] -- '+lan.site.addtime+'['+addtime+']', closeBtn: 2, shift: 0, content: "
    " +"
    " +"

    "+lan.site.domain_man+"

    " +" "+eMenu+"" +"
    " +"
    " +"
    " }); domainEdit(id,website); //域名输入提示 var placeholder = "
    每行填写一个域名,默认为80端口
    泛解析添加方法 *.domain.com
    如另加端口格式为 www.domain.com:88
    "; $('#newdomain').after(placeholder); $(".placeholder").click(function(){ $(this).hide(); $('#newdomain').focus(); }); $('#newdomain').focus(function() { $(".placeholder").hide(); }); $('#newdomain').blur(function() { if($(this).val().length==0){ $(".placeholder").show(); } }); //切换 var $p = $(".bt-w-menu p"); $p.click(function(){ $(this).addClass("bgw").siblings().removeClass("bgw"); }); } //取网站日志 function getSiteLogs(siteName){ var loadT = layer.msg('正在处理,请稍候...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site/get_logs',{siteName:siteName},function(logs){ console.log(logs); layer.close(loadT); if(logs.status !== true){ logs.msg = ''; } if (logs.msg == '') logs.msg = '当前没有日志.'; var phpCon = ''; $("#webedit-con").html(phpCon); var ob = document.getElementById('error_log'); ob.scrollTop = ob.scrollHeight; },'json'); } //防盗链 function security(id,name){ var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site/get_security',{id:id,name:name},function(rdata){ layer.close(loadT); var mbody = '
    ' +'

    URL后缀

    ' +'

    许可域名

    ' +'
    ' +'
      ' +'
    • 默认允许资源被直接访问,即不限制HTTP_REFERER为空的请求
    • ' +'
    • 多个URL后缀与域名请使用逗号(,)隔开,如: png,jpeg,zip,js
    • ' +'
    • 当触发防盗链时,将直接返回404状态
    • ' +'
    ' +'
    ' $("#webedit-con").html(mbody); },'json'); } //设置防盗链 function setSecurity(name,id){ var data = { fix:$("input[name='sec_fix']").val(), domains:$("input[name='sec_domains']").val(), status:$("input[name='sec_status']").val(), name:name, id:id } var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site/set_security',data,function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:2}); if(rdata.status) setTimeout(function(){Security(id,name);},1000); },'json'); } //木马扫描 function CheckSafe(id,act){ if(act != undefined){ var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site?action=CheckSafe','id='+id,function(rdata){ $(".btnStart").hide() setTimeout(function(){ CheckSafe(id); },3000); GetTaskCount(); layer.close(loadT) layer.msg(rdata.msg,{icon:rdata.status?1:5}); }); return; } $.post('/site?action=GetCheckSafe','id='+id,function(rdata){ var done = "\ \ "+lan.site.scanned+":"+rdata.count+""+lan.site.risk_quantity+":"+rdata.error+""; if(rdata['scan']) done = ""+lan.site.scanned+":"+rdata.count+""+lan.site.risk_quantity+":"+rdata.error+""; var echoHtml = "
    " + done +"
    " for(var i=0;i"+lan.site.danger+""+lan.site.danger_fun_no+":"+rdata.phpini[i].function+"
    "+lan.site.file+":/www/server/php/"+rdata.phpini[i].version+"/etc/php.ini"; } if(!rdata.sshd){ echoHtml += ""+lan.site.ssh_port+""+lan.site.high_risk+""+lan.site.sshd_tampering+""; } if(!rdata.userini){ echoHtml += ""+lan.site.xss_attack+""+lan.site.danger+""+lan.site.site_xss_attack+""; } for(var i=0;i"+rdata.data[i].level+"文件:"+rdata.data[i].filename+"
    "+lan.site.mod_time+":"+rdata.data[i].etime+"
    "+lan.site.code+":"+rdata.data[i].code+""; } var body = "
    " +"
    " +"" +"" + echoHtml + "" +"
    "+lan.site.behavior+""+lan.site.risk+""+lan.site.details+"
    " $("#webedit-con").html(body); $(".btnStart").click(function(){ fly('btnStart'); }); if(rdata['scan']){ c = $("#site_"+id).attr('class'); if(c != 'active') return; setTimeout(function(){ CheckSafe(id); },1000); } }); } function UpdateRulelist(){ var loadT = layer.msg(lan.site.to_update,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site?action=UpdateRulelist','',function(rdata){ layer.close(loadT) layer.msg(rdata.msg,{icon:rdata.status?1:5}); }); } //流量限制 function limitNet(id){ $.post('/site/get_limit_net','id='+id, function(rdata){ var status_selected = rdata.perserver != 0?'checked':''; if(rdata.perserver == 0){ rdata.perserver = 300; rdata.perip = 25; rdata.limit_rate = 512; } var limitList = "" +"" +"" +"" +"" +"" +"" var body = "
    " +'

    ' +"

    "+lan.site.limit_net_9+":

    " +"

    "+lan.site.limit_net_10+":

    " +"

    "+lan.site.limit_net_12+":

    " +"

    "+lan.site.limit_net_14+":

    " +"" +"
    " +"
    • "+lan.site.limit_net_11+"
    • "+lan.site.limit_net_13+"
    • "+lan.site.limit_net_15+"
    " $("#webedit-con").html(body); $("select[name='limit']").change(function(){ var type = $(this).val(); perserver = 300; perip = 25; limit_rate = 512; switch(type){ case '1': perserver = 300; perip = 25; limit_rate = 512; break; case '2': perserver = 200; perip = 10; limit_rate = 1024; break; case '3': perserver = 50; perip = 3; limit_rate = 2048; break; case '4': perserver = 500; perip = 10; limit_rate = 2048; break; case '5': perserver = 400; perip = 15; limit_rate = 1024; break; case '6': perserver = 60; perip = 10; limit_rate = 512; break; case '7': perserver = 150; perip = 4; limit_rate = 1024; break; } $("input[name='perserver']").val(perserver); $("input[name='perip']").val(perip); $("input[name='limit_rate']").val(limit_rate); }); },'json'); } //保存流量限制配置 function saveLimitNet(id, type){ var isChecked = $("input[name='status']").attr('checked'); if(isChecked == undefined || type == 1 ){ var data = 'id='+id+'&perserver='+$("input[name='perserver']").val()+'&perip='+$("input[name='perip']").val()+'&limit_rate='+$("input[name='limit_rate']").val(); var loadT = layer.msg(lan.public.config,{icon:16,time:10000}) $.post('/site/save_limit_net',data,function(rdata){ layer.close(loadT); limitNet(id); layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); }else{ var loadT = layer.msg(lan.public.config,{icon:16,time:10000}) $.post('/site/close_limit_net',{id:id},function(rdata){ layer.close(loadT); limitNet(id); layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); } } //子目录绑定 function DirBinding(id){ $.post('/site?action=GetDirBinding&id='+id,function(rdata){ var echoHtml = ''; for(var i=0;i"+rdata.binding[i].port+""+rdata.binding[i].path+""+lan.site.site_menu_4+" | "+lan.public.del+""; } var dirList = ''; for(var n=0;n"+rdata.dirs[n]+""; } var body = "
    " +lan.site.domain+":" +lan.site.subdirectories+":" +"" +"
    " +"
    " +"" +"" + echoHtml + "" +"
    "+lan.site.domain+""+lan.site.port+""+lan.site.subdirectories+""+lan.site.operate+"
    " $("#webedit-con").html(body); }) } //子目录伪静态 function SetDirRewrite(id){ $.post('/site?action=GetDirRewrite&id='+id,function(rdata){ if(!rdata.status){ var confirmObj = layer.confirm(lan.site.url_rewrite_alter,{icon:3,closeBtn:2},function(){ $.post('/site?action=GetDirRewrite&id='+id+'&add=1',function(rdata){ layer.close(confirmObj); ShowRewrite(rdata); }); }); return; } ShowRewrite(rdata); }); } //显示伪静态 function ShowRewrite(rdata){ var rList = ''; for(var i=0;i"+rdata.rlist[i]+""; } var webBakHtml = "
    \
    \ \ "+lan.site.rule_cov_tool+":"+lan.site.a_c_n+"\\
    \ \
      \
    • "+lan.site.url_rw_help_1+"
    • \
    • "+lan.site.url_rw_help_2+"
    • \
    \
    "; layer.open({ type: 1, area: '500px', title: lan.site.config_url, closeBtn: 2, shift: 5, shadeClose: true, content:webBakHtml }); $("#myRewrite").change(function(){ var rewriteName = $(this).val(); $.post('/files?action=GetFileBody','path=/www/server/panel/rewrite/'+getCookie('serverType')+'/'+rewriteName+'.conf',function(fileBody){ $("#rewriteBody").val(fileBody.data); }); }); } //添加子目录绑定 function AddDirBinding(id){ var domain = $("input[name='domain']").val(); var dirName = $("select[name='dirName']").val(); if(domain == '' || dirName == '' || dirName == null){ layer.msg(lan.site.d_s_empty,{icon:2}); return; } var data = 'id='+id+'&domain='+domain+'&dirName='+dirName $.post('site?action=AddDirBinding',data,function(rdata){ DirBinding(id); layer.msg(rdata.msg,{icon:rdata.status?1:2}); }); } //删除子目录绑定 function DelBinding(id,siteId){ layer.confirm(lan.site.s_bin_del,{icon:3,closeBtn:2},function(){ $.post('site?action=DelDirBinding','id='+id,function(rdata){ DirBinding(siteId); layer.msg(rdata.msg,{icon:rdata.status?1:2}); }); }); } //反向代理 function Proxy(siteName,type){ if(type == 1){ type = $("input[name='status']").attr('checked')?'0':'1'; toUrl = encodeURIComponent($("input[name='toUrl']").val()); toDomain = encodeURIComponent($("input[name='toDomain']").val()); var sub1 = encodeURIComponent($("input[name='sub1']").val()); var sub2 = encodeURIComponent($("input[name='sub2']").val()); var data = 'name='+siteName+'&type='+type+'&proxyUrl='+toUrl+'&toDomain=' + toDomain + '&sub1=' + sub1 + '&sub2=' + sub2; var loadT = layer.msg(lan.public.the,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site?action=SetProxy',data,function(rdata){ layer.close(loadT); if(rdata.status) { Proxy(siteName); }else{ $("input[name='status']").attr('checked',false) } layer.msg(rdata.msg,{icon:rdata.status?1:2}); }); return; } var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site?action=GetProxy','name='+siteName,function(rdata){ layer.close(loadT); if(rdata.proxyUrl == null) rdata.proxyUrl = ''; var status_selected = rdata.status?'checked':''; var disabled = rdata.status?'disabled':''; var body = "
    " +"

    "+lan.site.proxy_url+"

    " +"

    "+lan.site.proxy_domain+"

    " +"

    "+lan.site.con_rep+"" +"

    " +'
    ' +'
      ' +'
    • '+lan.site.proxy_help_1+'
    • ' +'
    • '+lan.site.proxy_help_2+'
    • ' +'
    • '+lan.site.proxy_help_3+'
    • ' +'
    • '+lan.site.proxy_help_4+'
    • ' +'
    • '+lan.site.proxy_help_5+'
    • ' +'
    ' +"
    "; $("#webedit-con").html(body); }); } //开启缓存 function OpenCache(siteName){ var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site?action=ProxyCache',{siteName:siteName},function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:2}); }); } //301重定向 function To301(siteName,type){ if(type == 1){ type = $("input[name='status']").attr('checked')?'0':'1'; toUrl = encodeURIComponent($("input[name='toUrl']").val()); srcDomain = encodeURIComponent($("select[name='srcDomain']").val()); var data = 'siteName='+siteName+'&type='+type+'&toDomain='+toUrl+'&srcDomain='+srcDomain; $.post('site?action=Set301Status',data,function(rdata){ To301(siteName); layer.msg(rdata.msg,{icon:rdata.status?1:2}); }); return; } var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site?action=Get301Status','siteName='+siteName,function(rdata){ layer.close(loadT); var domain_tmp = rdata.domain.split(','); var domains = ''; var selected = ''; for(var i=0;i"+domain_tmp[i]+""; } if(rdata.url == null) rdata.url = ''; var status_selected = rdata.status?'checked':''; var isRead = rdata.status?'readonly':''; var body = "
    " +"

    "+lan.site.access_domain+"

    " +"

    "+lan.site.target_url+"

    " +'
    ' +'
      ' +'
    • '+lan.site.to301_help_1+'
    • ' +'
    • '+lan.site.to301_help_2+'
    • ' +'
    ' +"
    "; $("#webedit-con").html(body); }); } //验证IP地址 function isValidIP(ip) { var reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/ return reg.test(ip); } function isContains(str, substr) { return str.indexOf(substr) >= 0; } //证书夹 function ssl_admin(siteName){ var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']}); $.get('/ssl?action=GetCertList',function(rdata){ layer.close(loadT); var tbody = ''; for(var i=0;i'+rdata[i].dns.join('
    ')+''+rdata[i].notAfter+''+rdata[i].issuer+'部署 | 删除' } var txt = '
    \ \
    \ '+tbody+'\
    域名信任名称到期时间品牌操作
    '; $(".tab-con").html(txt); }); } //删除证书 function remove_ssl(certName){ SafeMessage('删除证书','您真的要从证书夹删除证书吗?',function(){ var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/ssl?action=RemoveCert',{certName:certName},function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:2}); $("#ssl_admin").click(); }); }); } //从证书夹部署 function set_cert_ssl(certName,siteName){ var loadT = layer.msg('正在部署证书...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/ssl?action=SetCertToSite',{certName:certName,siteName:siteName},function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:2}); }); } //宝塔ssl function setSSL(id,siteName){ var mBody = '
    \ Let\'s Encrypt\ 其他证书\ 关闭\ 证书夹' + '
    \ 强制HTTPS\
    \ \ \
    \
    ' + '
    ' $("#webedit-con").html(mBody); //BTssl('a',id,siteName); $(".tab-nav span").click(function(){ $(this).addClass("on").siblings().removeClass("on"); }); // var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']}); // $.post('/site?action=GetSSL','siteName='+siteName,function(rdata){ // layer.close(loadT); // $("#toHttps").attr('checked',rdata.httpTohttps); // switch(rdata.type){ // case -1: // $(".tab-nav span").eq(3).addClass("on").siblings().removeClass("on"); // var txt = "
    "+lan.site.ssl_help_1+"
    "; // $(".tab-con").html(txt); // break; // case 1: // $(".tab-nav span").eq(1).addClass("on").siblings().removeClass("on"); // setCookie('letssl',1); // var lets = '
    '+lan.site.ssl_key+'
    ' // + '
    '+lan.site.ssl_crt+'
    ' // + '
    ' // + '
    • '+lan.site.ssl_help_2+'
    • '+lan.site.ssl_help_3+'
    ' // $(".tab-con").html(lets); // $(".help-info-text").after("
    "); // break; // case 0: // $(".tab-nav span").eq(2).addClass("on").siblings().removeClass("on"); // BTssl('other',id,siteName); // break; // case 2: // $(".tab-nav span").eq(0).addClass("on").siblings().removeClass("on"); // BTssl('a',id,siteName); // break; // } // }); } //关闭SSL function closeSSL(siteName){ var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']}); $.post('site?action=GetSSL','siteName='+siteName,function(rdata){ layer.close(loadT); switch(rdata.type){ case -1: var txt = "
    "+lan.site.ssl_help_1+"
    "; setCookie('letssl',0); $(".tab-con").html(txt); break; case 1: var txt = "Let's Encrypt"; closeSSLHTML(txt,siteName); break; case 0: var txt = lan.site.other; closeSSLHTML(txt,siteName); break; case 2: var txt = lan.site.bt_ssl; closeSSLHTML(txt,siteName); break; } }) } //设置httpToHttps function httpToHttps(siteName){ var isHttps = $("#toHttps").attr('checked'); if(isHttps){ layer.confirm('关闭强制HTTPS后需要清空浏览器缓存才能看到效果,继续吗?',{icon:3,title:"关闭强制HTTPS"},function(){ $.post('site?action=CloseToHttps','siteName='+siteName,function(rdata){ layer.msg(rdata.msg,{icon:rdata.status?1:2}); }); }); }else{ $.post('site?action=HttpToHttps','siteName='+siteName,function(rdata){ layer.msg(rdata.msg,{icon:rdata.status?1:2}); }); } } //关闭SSL内容 function closeSSLHTML(txt,siteName){ $(".tab-con").html("
    "+lan.get('ssl_enable',[txt])+"
    "); } //SSL function opSSL(type,id,siteName){ var b = '
    '+lan.site.domain+'
    ' + '
    ' + '
    域名到期时间状态?操作
    ' + '
    • '+lan.site.bt_ssl_help_5+'(包括根域名)
    • '+lan.site.bt_ssl_help_6+'
    • '+lan.site.bt_ssl_help_7+'
    • 建议使用二级域名为www的域名申请证书,此时系统会默认赠送顶级域名为可选名称
    • 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
    ' + '
    '; var lets = '
    管理员邮箱
    '+lan.site.domain+'
      ' + '
      ' + '
      • '+lan.site.bt_ssl_help_5+'
      • '+lan.site.bt_ssl_help_8+'
      • '+lan.site.bt_ssl_help_9+'
      • 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
      ' + '
      '; var other = '
      '+lan.site.ssl_key+'
      ' + '
      '+lan.site.ssl_crt+'
      ' + '
      ' + '
      • '+lan.site.bt_ssl_help_10+'
      • 如果浏览器提示证书链不完整,请检查是否正确拼接PEM证书
      • PEM格式证书 = 域名证书.crt + 根证书(root_bundle).crt
      • 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
      '; switch(type){ case 'b': $(".tab-con").html(b); var opt = ''; $.get('/data?action=getData&table=domain&list=True&search=' + id, function(rdata) { for(var i=0;i' } } $("#domainlist").html(opt); }) getSSLlist(siteName); $(".btsslApply").click(function(){ var ym = $("#domainlist").val(); if(ym.indexOf('www.') != -1){ var len = $("#domainlist")[0].length; var rootDomain = ym.split(/www\./)[1]; var mn = 0; for(var i=0;i"+lan.site.+"
    • let's Encrypt证书有效期为3个月
    • 3个月有效期后自动续签
    • "); $("#btusername").blur(function(){ if(!(/^1(3|4|5|7|8)\d{9}$/.test($(this).val()))){ $("#btusername").css("border","1px solid #e53451"); $("#btusername").next("i").html(lan.site.phone_input); } else{ $("#btusername").removeAttr("style").css("width","200px"); $("#btusername").next("i").empty(); } }); $(".btlogin").click(function(){ var data = "username="+$("#btusername").val()+"&password="+$("#btpassword").val(); $.post("/ssl?action=GetToken",data,function(tdata){ if(tdata.status){ layer.msg(tdata.msg,{icon:1}); BTssl('lets',id,siteName); } else{ layer.msg(tdata.msg,{icon:2}) } }) }) } else{} });*/ if(getCookie('letssl') == 1){ $.post('site?action=GetSSL','siteName='+siteName,function(rdata){ if(rdata.csr === false){ setCookie('letssl',0); opSSL(type,id,siteName); return; } var lets = '
      '+lan.site.ssl_key+'
      ' + '
      '+lan.site.ssl_crt+'
      ' + '
      ' + '
      • '+lan.site.ssl_help_2+'
      • '+lan.site.ssl_help_3+'
      '; $(".tab-con").html(lets); $(".help-info-text").after("
      "); }); return; } $(".tab-con").html(lets); var opt=''; $.post('/site/get_site_domains',{id:id}, function(rdata) { var data = rdata['data']; for(var i=0;i'+data.domains[i].name+'' } } $("input[name='admin_email']").val(data.email); $("#ymlist").html(opt); $("#ymlist li input").click(function(e){ e.stopPropagation(); }) $("#ymlist li").click(function(){ var o = $(this).find("input"); if(o.prop("checked")){ o.prop("checked",false) } else{ o.prop("checked",true); } }) $(".letsApply").click(function(){ var c = $("#ymlist input[type='checkbox']"); var str = []; var domains = ''; for(var i=0; i"+lan.site.ssl_close+""); } if(rdata.key == false) rdata.key = ''; if(rdata.csr == false) rdata.csr = ''; $("#key").val(rdata.key); $("#csr").val(rdata.csr); }); break; } // table_fixed("btssl_table_list") } //取证书列表 function getSSLlist(siteName){ var tr=''; var loadT = layer.msg(lan.site.get_ssl_list,{icon:16,time:0,shade:0.3}); $.get("/ssl?action=GetOrderList&siteName="+siteName,function(rdata){ layer.close(loadT); if(rdata.status){ for(var i=0;i'+lan.site.deploy+'' : ''; if(rdata.data[i].stateName == lan.site.domain_wait) { txt = ''+lan.site.domain_validate+''; //tips = lan.site.domain_check; //icoask = '?'; } if(rdata.data[i].setup){ txt = lan.site.deployed+' | '+lan.public.close+'
      '; } tr += ''+rdata.data[i].commonName+''+getLocalTime(rdata.data[i].endtime).split(" ")[0]+''+rdata.data[i].stateName+icoask+''+txt+'' } $("#ssllist").html(tr); } }); } //一键部署证书 function onekeySSl(partnerOrderId,siteName){ var loadT = layer.msg(lan.site.ssl_apply_3,{icon:16,time:0,shade:0.3}); $.post("/ssl?action=GetSSLInfo","partnerOrderId="+partnerOrderId+"&siteName="+siteName,function(zdata){ layer.close(loadT); layer.msg(zdata.msg,{icon:zdata.status?1:2}); getSSLlist(siteName); }) } //验证域名 function VerifyDomain(partnerOrderId,siteName){ var loadT = layer.msg(lan.site.ssl_apply_2,{icon:16,time:0,shade:0.3}); $.post("/ssl?action=Completed","partnerOrderId="+partnerOrderId+'&siteName='+siteName,function(ydata){ layer.close(loadT); if(!ydata.status){ layer.msg(ydata.msg,{icon:2}); return; } //第三步 var loadT = layer.msg(lan.site.ssl_apply_3,{icon:16,time:0,shade:0.3}); $.post("/ssl?action=GetSSLInfo","partnerOrderId="+partnerOrderId+"&siteName="+siteName,function(zdata){ layer.close(loadT); if(zdata.status) getSSLlist(); layer.msg(zdata.msg,{icon:zdata.status?1:2}); }); }); } //开启与关闭SSL function OcSSL(action,siteName){ var loadT = layer.msg(lan.site.get_ssl_list,{icon:16,time:0,shade: [0.3, '#000']}); $.post("site?action="+action,'siteName='+siteName+'&updateOf=1',function(rdata){ layer.close(loadT) if(!rdata.status){ if(!rdata.out){ layer.msg(rdata.msg,{icon:rdata.status?1:2}); //setSSL(siteName); return; } data = "

      "+lan.site.get_ssl_err+":


      " for(var i=0;i" + "

      "+lan.site.err_type+": "+rdata.out[i].Type+"

      " + "

      "+lan.site.details+": "+rdata.out[i].Detail+"

      " + "
      " } layer.msg(data,{icon:2,time:0,shade:0.3,shadeClose:true}); return; } setCookie('letssl',0); $.post('/system?action=ServiceAdmin','name='+getCookie('serverType')+'&type=reload',function(result){ //setSSL(siteName); if(!result.status) layer.msg(result.msg,{icon:2}); }); layer.msg(rdata.msg,{icon:rdata.status?1:2}); if(action == 'CloseSSLConf'){ layer.msg(lan.site.ssl_close_info,{icon:1,time:5000}); } $(".bt-w-menu .bgw").click(); }) } //生成SSL function newSSL(siteName,domains){ var loadT = layer.msg(lan.site.ssl_apply_2,{icon:16,time:0,shade: [0.3, '#000']}); var force = ''; if($("#checkDomain").prop("checked")) force = '&force=true'; var email = $("input[name='admin_email']").val(); $.post('site?action=CreateLet','siteName='+siteName+'&domains='+domains+'&updateOf=1&email='+email + force,function(rdata){ layer.close(loadT) if(rdata.status){ var mykeyhtml = '
      '+lan.site.ssl_key+'
      ' + '
      '+lan.site.ssl_crt+'
      ' + '
      ' + '
      • '+lan.site.ssl_help_2+'
      • '+lan.site.ssl_help_3+'
      '; $(".btssl").html(mykeyhtml); layer.msg(rdata.msg,{icon:rdata.status?1:2}); setCookie('letssl',1); return; } if(!rdata.out){ layer.msg(rdata.msg,{icon:rdata.status?1:2}); //setSSL(siteName); return; } data = "

      "+rdata.msg+"


      " if(rdata.err[0].length > 10) data += '

      ' + rdata.err[0].replace(/\n/g,'
      ') + '

      '; if(rdata.err[1].length > 10) data += '

      ' + rdata.err[1].replace(/\n/g,'
      ') + '

      '; setCookie('letssl',0); layer.msg(data,{icon:2,area:'500px',time:0,shade:0.3,shadeClose:true}); }); } //保存SSL function SaveSSL(siteName){ var data = 'type=1&siteName='+siteName+'&key='+encodeURIComponent($("#key").val())+'&csr='+encodeURIComponent($("#csr").val()); var loadT = layer.msg(lan.site.saving_txt,{icon:16,time:20000,shade: [0.3, '#000']}) $.post('site?action=setSSL',data,function(rdata){ layer.close(loadT); if(rdata.status){ layer.msg(rdata.msg,{icon:1}); $(".ssl-btn").find(".btn-default").remove(); $(".ssl-btn").append(""); }else{ layer.msg(rdata.msg,{icon:2,time:0,shade:0.3,shadeClose:true}); } }); } //更新SSL function ChangeSaveSSL(siteName){ var loadT = layer.msg(lan.site.ssl_apply_4,{icon:16,time:0,shade: [0.3, '#000']}); $.post('site?action=CreateLet','siteName='+siteName+'&updateOf=2',function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:2}); }); } //PHP版本 function phpVersion(siteName){ $.post('/site/get_site_php_version','siteName='+siteName,function(version){ // console.log(version); if(version.status === false){ layer.msg(version.msg,{icon:5}); return; } $.post('/site/get_php_version',function(rdata){ var versionSelect = "
      \
      \ "+lan.site.php_ver+"\
      \ \ \
      \ \
      \
        \
      • "+lan.site.switch_php_help1+"
      • \
      • "+lan.site.switch_php_help2+"
      • \
      • "+lan.site.switch_php_help3+"
      • \
      \
      \ "; if(version.nodejsversion){ var nodejs_checked = ''; if(version.nodejs != -1) nodejs_checked = 'checked'; versionSelect += '
      \
      \ \
      \
        \
      • '+lan.site.nodejs_help1+' '+version.nodejsversion+';
      • \
      • '+lan.site.nodejs_help2+'
      • \
      • '+lan.site.nodejs_help3+'
      • \
      \
      ' } $("#webedit-con").html(versionSelect); //验证PHP版本 $("select[name='phpVersion']").change(function(){ if($(this).val() == '52'){ var msgerr = 'PHP5.2在您的站点有漏洞时有跨站风险,请尽量使用PHP5.3以上版本!'; $('#php_w').text(msgerr); }else{ $('#php_w').text(''); } }) },'json'); },'json'); } //设置PHP版本 function setPHPVersion(siteName){ var data = 'version='+$("#phpVersion").val()+'&siteName='+siteName; var loadT = layer.msg('正在保存...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site/set_php_version',data,function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); } //配置文件 function configFile(webSite){ var info = syncPost('/site/get_host_conf', {siteName:webSite}); $.post('/files/get_body','path='+info['host'],function(rdata){ var mBody = "
      \ \
      \ \
        \
      • 此处为站点主配置文件,若您不了解配置规则,请勿随意修改.
      • \
      \
      \
      "; $("#webedit-con").html(mBody); var editor = CodeMirror.fromTextArea(document.getElementById("configBody"), { extraKeys: {"Ctrl-Space": "autocomplete"}, lineNumbers: true, matchBrackets:true, }); $(".CodeMirror-scroll").css({"height":"300px","margin":0,"padding":0}); $("#SaveConfigFileBtn").click(function(){ $("#configBody").empty(); $("#configBody").text(editor.getValue()); saveConfigFile(webSite,rdata.data.encoding, info['host']); }) },'json'); } //保存配置文件 function saveConfigFile(webSite,encoding,path){ var data = 'encoding='+encoding+'&data='+encodeURIComponent($("#configBody").val())+'&path='+path; var loadT = layer.msg('保存中...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/files/save_body',data,function(rdata){ layer.close(loadT); if(rdata.status){ layer.msg(rdata.msg,{icon:1}); }else{ layer.msg(rdata.msg,{icon:2,time:0,shade:0.3,shadeClose:true}); } },'json'); } //伪静态 function rewrite(siteName){ $.post("/site/get_rewrite_list", 'siteName='+siteName,function(rdata){ var info = syncPost('/site/get_rewrite_conf', {siteName:siteName}); var filename = info['rewrite']; $.post('/files/get_body','path='+filename,function(fileBody){ var centent = fileBody['data']['data']; var rList = ''; for(var i=0;i"; } else { rList += ""; } } var webBakHtml = "
      \
      \ \
      \ \ \
        \
      • 请选择您的应用,若设置伪静态后,网站无法正常访问,请尝试设置回default
      • \
      • 您可以对伪静态规则进行修改,修改完后保存即可。
      • \
      \
      "; $("#webedit-con").html(webBakHtml); var editor = CodeMirror.fromTextArea(document.getElementById("rewriteBody"), { extraKeys: {"Ctrl-Space": "autocomplete"}, lineNumbers: true, matchBrackets:true, }); $(".CodeMirror-scroll").css({"height":"300px","margin":0,"padding":0}); $("#SetRewriteBtn").click(function(){ $("#rewriteBody").empty(); $("#rewriteBody").text(editor.getValue()); setRewrite(filename); }); $("#SetRewriteBtnTel").click(function(){ $("#rewriteBody").empty(); $("#rewriteBody").text(editor.getValue()); setRewriteTel(); }); $("#myRewrite").change(function(){ var rewriteName = $(this).val(); if(rewriteName == '0'){ rpath = filename; }else{ var info = syncPost('/site/get_rewrite_tpl', {tplname:rewriteName}); if (!info['status']){ layer.msg(info['msg']); return; } rpath = info['data']; } $.post('/files/get_body','path='+rpath,function(fileBody){ $("#rewriteBody").val(fileBody['data']['data']); editor.setValue(fileBody['data']['data']); },'json'); }); },'json'); },'json'); } //设置伪静态 function setRewrite(filename){ var data = 'data='+encodeURIComponent($("#rewriteBody").val())+'&path='+filename+'&encoding=utf-8'; var loadT = layer.msg(lan.site.saving_txt,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/files/save_body',data,function(rdata){ layer.close(loadT); if(rdata.status){ layer.msg(rdata.msg,{icon:1}); }else{ layer.msg(rdata.msg,{icon:2,time:0,shade:0.3,shadeClose:true}); } },'json'); } var aindex = null; //保存为模板 function setRewriteTel(act){ if(act != undefined){ name = $("#rewriteName").val(); if(name == ''){ layer.msg(lan.site.template_empty,{icon:5}); return; } var data = 'data='+encodeURIComponent($("#rewriteBody").val())+'&name='+name; var loadT = layer.msg(lan.site.saving_txt,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site?action=SetRewriteTel',data,function(rdata){ layer.close(loadT); layer.close(aindex); layer.msg(rdata.msg,{icon:rdata.status?1:5}); }); return; } aindex = layer.open({ type: 1, shift: 5, closeBtn: 2, area: '320px', //宽高 title: lan.site.save_rewrite_temp, content: '
      \
      \ \
      \
      \ \ \
      \
      ' }); $(".btn-danger").click(function(){ layer.close(aindex); }); $("#rewriteName").focus().keyup(function(e){ if(e.keyCode == 13) $("#rewriteNameBtn").click(); }); } //修改默认页 function siteDefaultPage(){ stype = getCookie('serverType'); layer.open({ type: 1, area: '460px', title: lan.site.change_defalut_page, closeBtn: 2, shift: 0, content: '
      \ \ \ \ \
      ' }); } function changeDefault(type){ var vhref=''; switch(type){ case 1: vhref = '/www/server/panel/data/defaultDoc.html'; break; case 2: vhref = '/www/server/panel/data/404.html'; break; case 3: vhref = '/www/server/nginx/html/index.html'; break; case 4: vhref = '/www/server/apache/htdocs/index.html'; break; case 5: vhref = '/www/server/stop/index.html'; break; } onlineEditFile(0,vhref); }