/** * 取回网站数据列表 * @param {Number} page 当前页 * @param {String} search 搜索条件 */ function getWeb(page, search) { search = $("#SearchValue").prop("value"); page = page == undefined ? '1':page; var order = getCookie('order'); if(order){ order = '&order=' + order; } else { order = ''; } var sUrl = '/site/list'; var pdata = 'limit=10&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 == '正在运行' || data.data[i].status == '1') { var status = "运行中"; } else { var status = "已停止"; } //是否有备份 if (data.data[i].backup_count > 0) { var backup = "有备份"; } else { var backup = "无备份"; } //是否设置有效期 var web_end_time = (data.data[i].edate == "0000-00-00") ? '永久': 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 + "\ \ \ 设置\ | 删除\ " $("#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 = "当前没有站点数据"; // $(".dataTables_paginate").hide(); $("#webBody").html(body); } //输出数据列表 $(".btn-more").hover(function(){ $(this).addClass("open"); },function(){ $(this).removeClass("open"); }); //输出分页 $("#webPage").html(data.page); // $("#webPage").html('
站点分类:
'); $(".btlinkbed").click(function(){ var dataid = $(this).attr("data-id"); var databak = $(this).text(); if(databak == null){ databak = ''; } $(this).hide().after(""); $(".baktext").focus(); }); },'json'); } function getBakPost(b) { $(".baktext").hide().prev().show(); var c = $(".baktext").attr("data-id"); var a = $(".baktext").val(); if(a == "") { a = '空'; } setWebPs(b, c, a); $("a[data-id='" + c + "']").html(a); $(".baktext").remove(); } function setWebPs(b, e, a) { console.log(b,e,a); var d = layer.load({shade: true,shadeClose: false}); var c = 'ps=' + a; $.post('/site/set_ps', 'id=' + e + "&" + c, function(data) { if(data['status']) { getWeb(1); layer.closeAll(); layer.msg('修改成功!', {icon: 1}); } else { layer.closeAll(); layer.msg('修改失败!', {icon: 2}); } },'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('/site/get_dir_user_ini','&id='+id, function(data){ var userini = data['data']; var webpath = userini['path']; 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 = "
\
\ \ \
\
\ 网站目录\ \ \ \
\
\ 运行目录\ \ \
\
    \
  • 部分程序需要指定二级目录作为运行目录,如ThinkPHP5,Laravel
  • \
  • 选择您的运行目录,点保存即可
  • \
" +'
' +'密码访问' +'' +'' +'' +'
' +'
' +'

授权账号

' +'

访问密码

' +'

重复密码

' +'

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

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

',{icon:userini.status?1:2}); },'json'); }); $("#logs").change(function(){ $.post('/site/logs_open','id='+id,function(userini){ layer.msg(userini.msg,{icon:userini.status?1:2}); },'josn'); }); },'json'); } //是否设置访问密码 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/close_has_pwd',{id:id},function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:2}); $(".user_pw").hide(); },'json'); } } //设置访问密码 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('两次输入的密码不一致!',{icon:2}); return; } var loadT = layer.msg('正在处理,请稍候...',{icon:16,time:10000,shade: [0.3, '#000']}); $.post('/site/set_has_pwd',{id:id,username:username,password:pass1},function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); } //提交运行目录 function setSiteRunPath(id){ var NewPath = $("#runPath").val(); var loadT = layer.msg(lan.public.the,{icon:16,time:10000,shade: [0.3, '#000']}); $.post('/site/set_site_run_path','id='+id+'&runPath='+NewPath,function(rdata){ layer.close(loadT); var ico = rdata.status?1:2; layer.msg(rdata.msg,{icon:ico}); },'json'); } //提交网站目录 function setSitePath(id){ var NewPath = $("#inputPath").val(); var loadT = layer.msg('正在处理,请稍候...',{icon:16,time:10000,shade: [0.3, '#000']}); $.post('/site/set_path','id='+id+'&path='+NewPath,function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); } //修改网站备注 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('站点停用后将无法访问,您真的要停用这个站点吗?', {icon:3,closeBtn:2},function(index) { if (index > 0) { var loadT = layer.load(); $.post("/site/stop","id=" + wid + "&name=" + wname, function(ret) { layer.msg(ret.msg,{icon:ret.status?1:2}) layer.close(loadT); getWeb(1); },'json'); } }); } /** * 启动一个网站 * @param {Number} wid 网站ID * @param {String} wname 网站名称 */ function webStart(wid, wname) { layer.confirm('即将启动站点,您真的要启用这个站点吗?',{icon:3,closeBtn:2}, function(index) { if (index > 0) { var loadT = layer.load() $.post("/site/start","id=" + wid + "&name=" + wname, function(ret) { layer.msg(ret.msg,{icon:ret.status?1:2}) layer.close(loadT); getWeb(1); },'json'); } }); } /** * 删除一个网站 * @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+"端口操作
    \
    "; $("#webedit-con").html(bodyHtml); if(msg != undefined){ layer.msg(msg,{icon:status?1:5}); } 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(); } }); $("#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(""); }); } /** * 添加域名 * @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下载 | "; body += ""+frdata.data[i].name+"\ " + (toSize(frdata.data[i].size)) + "\ " + frdata.data[i].addtime + "\ "+ ftpdown + "删除\ " } var ftpdown = ''; frdata.page = frdata.page.replace(/'/g,'"').replace(/getBackup\(/g,"getBackup(" + id + ",0,"); if(name == 0){ var sBody = "\ \ "+body+"\
    文件名称文件大小打包时间操作
    " $("#webBackupList").html(sBody); $(".page").html(frdata.page); return; } layer.closeAll(); layer.open({ type: 1, skin: 'demo-class', area: '700px', title: '打包备份', closeBtn: 2, shift: 0, shadeClose: false, content: "
    \ \
    \ \ "+body+"\
    文件名称文件大小打包时间操作
    "+frdata.page+"
    " }); },'json'); } 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 eMenu = ''; eMenu = "

    子目录绑定

    " +"

    网站目录

    " +"

    流量限制

    " +"

    伪静态

    " +"

    默认文档

    " +"

    配置文件

    " +"

    SSL

    " +"

    PHP版本

    " // +"

    重定向

    " // +"

    反向代理

    " +"

    防盗链

    " +"

    响应日志

    "; layer.open({ type: 1, area: '640px', title: '站点修改['+website+'] -- 添加时间['+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/get_dir_binding',{'id':id},function(data){ var rdata = data['data']; var echoHtml = ''; for(var i=0;i"+rdata.binding[i].port+""+rdata.binding[i].path+"伪静态 | 删除"; } var dirList = ''; for(var n=0;n"+rdata.dirs[n]+""; } var body = "
    " + "域名:" + "子目录:" + "" + "
    " + "
    " + "" + "" + echoHtml + "" + "
    域名端口子目录操作
    "; $("#webedit-con").html(body); },'json'); } //子目录伪静态 function setDirRewrite(id){ $.post('/site/get_dir_bind_rewrite','id='+id,function(rdata){ if(!rdata.status){ var confirmObj = layer.confirm('你真的要为这个子目录创建独立的伪静态规则吗?',{icon:3,closeBtn:2},function(){ $.post('/site/get_dir_bind_rewrite','id='+id+'&add=1',function(rdata){ layer.close(confirmObj); showRewrite(rdata); },'json'); }); return; } showRewrite(rdata); },'json'); } //显示伪静态 function showRewrite(rdata){ var rList = ''; for(var i=0;i"+rdata.rlist[i]+""; } var webBakHtml = "
    \
    \ \
    \ \
      \
    • 请选择您的应用,若设置伪静态后,网站无法正常访问,请尝试设置回default
    • \
    • 您可以对伪静态规则进行修改,修改完后保存即可。
    • \
    \
    "; layer.open({ type: 1, area: '500px', title: '配置伪静态规则', closeBtn: 2, shift: 5, shadeClose: true, content:webBakHtml }); $("#myRewrite").change(function(){ var rewriteName = $(this).val(); $.post('/files/get_body','path='+rdata['rewrite_dir']+'/'+rewriteName+'.conf',function(fileBody){ $("#rewriteBody").val(fileBody.data.data); },'json'); }); } //添加子目录绑定 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/add_dir_bind',data,function(rdata){ dirBinding(id); layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); } //删除子目录绑定 function delDirBind(id,siteId){ layer.confirm(lan.site.s_bin_del,{icon:3,closeBtn:2},function(){ $.post('/site/del_dir_bind','id='+id,function(rdata){ dirBinding(siteId); layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); }); } //反向代理 function proxyList(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); }); } //文件验证 // function file_check(){ // $(".check_message").html('
    \ // \ // \ //
    '); // $("#lets_help").html('
  • 申请之前,请确保域名已解析,如未解析会导致审核失败
  • \ //
  • Let\'s Encrypt免费证书,有效期3个月,支持多域名。默认会自动续签
  • \ //
  • 若您的站点使用了CDN或301重定向会导致续签失败
  • \ //
  • 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
  • '); // } //证书夹 function sslAdmin(siteName){ var loadT = layer.msg('正在提交任务...',{icon:16,time:0,shade: [0.3, '#000']}); $.get('/site/get_cert_list',function(data){ layer.close(loadT); var rdata = data['data']; var tbody = ''; for(var i=0;i'+rdata[i].dns.join('
    ')+''+rdata[i].notAfter+''+rdata[i].issuer+'部署 | 删除' } var txt = '
    \ \
    \ '+tbody+'\
    域名信任名称到期时间品牌操作
    '; $(".tab-con").html(txt); },'json'); } //删除证书 function removeSsl(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 setCertSsl(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); opSSL('lets',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/get_ssl','siteName='+siteName,function(rdata){ layer.close(loadT); $("#toHttps").attr('checked',rdata.data.httpTohttps); switch(rdata.data.type){ case 1: $(".tab-nav span").eq(1).addClass("on").siblings().removeClass("on"); setCookie('letssl',1); var lets = '
    密钥(KEY)
    ' + '
    证书(PEM格式)
    ' + '
    ' + '
    • 已为您自动生成Let\'s Encrypt免费证书;
    • \
    • 如需使用其他SSL,请切换其他证书后粘贴您的KEY以及PEM内容,然后保存即可。
    ' $(".tab-con").html(lets); $(".help-info-text").after("
    "); break; case 0: case 3: $(".tab-nav span").eq(1).addClass("on").siblings().removeClass("on"); opSSL('other',id,siteName); break; case 2: $(".tab-nav span").eq(0).addClass("on").siblings().removeClass("on"); opSSL('a',id,siteName); break; } },'json'); } function closeSSL(siteName){ var loadT = layer.msg(lan.site.the_msg,{icon:16,time:0,shade: [0.3, '#000']}); $.post('/site/get_ssl','siteName='+siteName,function(rdata){ layer.close(loadT); switch(rdata.data.type){ case -1: var txt = "
    本站点未设置SSL,如需设置SSL,请选择切换类目申请开启SSL
    \

    关闭SSL以后,请务必清除浏览器缓存再访问站点

    "; setCookie('letssl',0); $(".tab-con").html(txt); break; case 0: var txt = "Let's Encrypt"; closeSSLHTML(txt,siteName); break; case 1: var txt = '其它'; closeSSLHTML(txt,siteName); break; case 2: var txt = 'SSL'; closeSSLHTML(txt,siteName); break; } },'json'); } //关闭SSL内容 function closeSSLHTML(txt,siteName){ $(".tab-con").html("
    "+lan.get('ssl_enable',[txt])+"
    "); } //设置httpToHttps function httpToHttps(siteName){ var isHttps = $("#toHttps").attr('checked'); if(isHttps){ layer.confirm('关闭强制HTTPS后需要清空浏览器缓存才能看到效果,继续吗?',{icon:3,title:"关闭强制HTTPS"},function(){ $.post('/site/close_to_https','siteName='+siteName,function(rdata){ layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); }); }else{ $.post('/site/http_to_https','siteName='+siteName,function(rdata){ layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); } } //SSL function opSSL(type,id,siteName){ var lets = '
    ' + '
    验证方式
    \
    ' + '
    ' + '
    管理员邮箱
    ' + '
    域名
      ' + '
      ' + '
      • 申请之前,请确保域名已解析,如未解析会导致审核失败
      • \
      • Let\'s Encrypt免费证书,有效期3个月,支持多域名。默认会自动续签
      • \
      • 若您的站点使用了CDN或301重定向会导致续签失败
      • \
      • 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
      ' + '
      '; var other = '
      密钥(KEY)
      ' + '
      证书(PEM格式)
      ' + '
      ' + '
      • 粘贴您的*.key以及*.pem内容,然后保存即可[帮助]
      • \
      • 如果浏览器提示证书链不完整,请检查是否正确拼接PEM证书
      • PEM格式证书 = 域名证书.crt + 根证书(root_bundle).crt
      • \
      • 在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点
      '; switch(type){ case 'lets': if(getCookie('letssl') == 1){ $.post('/site/get_ssl','siteName='+siteName,function(data){ var rdata = data['data']; if(rdata.csr === false){ setCookie('letssl',0); opSSL(type,id,siteName); return; } var lets = '
      密钥(KEY)
      ' + '
      证书(PEM格式)
      ' + '
      ' + '
      • 已为您自动生成Let\'s Encrypt免费证书
      • \
      • 如需使用其他SSL,请切换其他证书后粘贴您的KEY以及PEM内容,然后保存即可。
      '; $(".tab-con").html(lets); $(".help-info-text").after("
      "); },'json'); 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关闭SSL"); } if(rdata.key == false) rdata.key = ''; if(rdata.csr == false) rdata.csr = ''; $("#key").val(rdata.key); $("#csr").val(rdata.csr); },'json'); break; } } //一键部署证书 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('正在获取证书列表,请稍后..',{icon:16,time:0,shade: [0.3, '#000']}); $.post("/site/"+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 = "

      证书获取失败:


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

      错误类型: "+rdata.out[i].Type+"

      " + "

      详情: "+rdata.out[i].Detail+"

      " + "
      "; } layer.msg(data,{icon:2,time:0,shade:0.3,shadeClose:true}); return; } setCookie('letssl',0); layer.msg(rdata.msg,{icon:rdata.status?1:2}); if(action == 'close_ssl_conf'){ layer.msg('已关闭SSL,请务必清除浏览器缓存后再访问站点!',{icon:1,time:5000}); } $(".tab-nav .on").click(); },'json'); } //生成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/create_let','siteName='+siteName+'&domains='+domains+'&updateOf=1&email='+email + force,function(rdata){ layer.close(loadT) if(rdata.status){ var mykeyhtml = '
      密钥(KEY)
      ' + '
      证书(PEM格式)
      ' + '
      ' + '
      • 已为您自动生成Let\'s Encrypt免费证书;
      • \
      • 如需使用其他SSL,请切换其他证书后粘贴您的KEY以及PEM内容,然后保存即可。
      '; $(".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}); },'json'); } //保存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/set_ssl',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}); } },'json'); } //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 = "
      \
      \ PHP版本\
      \ \ \
      \ \
      \
        \
      • 请根据您的程序需求选择版本
      • \
      • 若非必要,请尽量不要使用PHP5.2,这会降低您的服务器安全性;
      • \
      • PHP7不支持mysql扩展,默认安装mysqli以及mysql-pdo。
      • \
      \
      \
      "; $("#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: '保存为Rewrite模板', 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: '修改默认页', 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); } function getClassType(){ var select = $('.site_type > select'); $.post('/site/get_site_types',function(rdata){ $(select).html(''); $(select).append(''); for (var i = 0; i'+rdata[i]['name']+''); } },'json'); } getClassType(); function setClassType(){ $.post('/site/get_site_types',function(rdata){ var list = ''; for (var i = 0; i\ 编辑 | 删除\ '; } layer.open({ type: 1, area: '350px', title: '网站分类管理', closeBtn: 2, shift: 0, content: '
      \
      \
      \
      \
      \ \ \ '+list+'\
      名称操作
      \
      \
      ' }); },'json'); } function addClassType(){ var name = $("input[name=type_name]").val(); $.post('/site/add_site_type','name='+name, function(rdata){ showMsg(rdata.msg,function(){ if (rdata.status){ layer.closeAll(); setClassType(); getClassType(); } },{icon:rdata.status?1:2}); },'json'); } function removeClassType(id,name){ if (id == 0){ layer.msg('默认分类不可删除/不可编辑!',{icon:2}); return; } layer.confirm('是否确定删除分类?',{title: '删除分类【'+ name +'】' }, function(){ $.post('/site/remove_site_type','id='+id, function(rdata){ showMsg(rdata.msg,function(){ if (rdata.status){ layer.closeAll(); setClassType(); getClassType(); } },{icon:rdata.status?1:2}); },'json'); }); } function editClassType(id,name){ if (id == 0){ layer.msg('默认分类不可删除/不可编辑!',{icon:2}); return; } layer.open({ type: 1, area: '350px', title: '修改分类管理【' + name + '】', closeBtn: 2, shift: 0, content: "
      \
      \ 分类名称\
      \
      \
      \ \
      \
      " }); $('#site_type_mod').unbind().click(function(){ var _name = $('input[name=site_type_mod]').val(); $.post('/site/modify_site_type_name','id='+id+'&name='+_name, function(rdata){ showMsg(rdata.msg,function(){ if (rdata.status){ layer.closeAll(); setClassType(); getClassType(); } },{icon:rdata.status?1:2}); },'json'); }); }