Initial project files: BESCMS full source
This commit is contained in:
@@ -0,0 +1,347 @@
|
||||
{template "header.html"}
|
||||
<div class="note note-danger">
|
||||
{if $list['phpcmf']['backup_tpl']}
|
||||
<p style="color: green">模板备份目录:{$list['phpcmf']['backup_tpl']}</p>
|
||||
{else}
|
||||
<p>升级程序之前,请务必备份全站数据</p>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="right-card-box">
|
||||
<form class="form-horizontal" role="form" id="myform">
|
||||
{dr_form_hidden()}
|
||||
<div class="table-scrollable">
|
||||
<table class="table table-striped table-bordered table-hover table-checkable dataTable">
|
||||
<thead>
|
||||
<tr class="heading">
|
||||
{if !$is_oem}<th class="myselect"></th>{/if}
|
||||
<th width="80" style="text-align: center"> 类型</th>
|
||||
<th width="310"> 程序名称</th>
|
||||
<th width="170"> 更新时间 </th>
|
||||
<th width="80"> 版本 </th>
|
||||
<th width="110" style="text-align: center"> 备份 </th>
|
||||
<th><a onclick="dr_update_version_all()" class="badge badge-danger badge-roundless"> {dr_lang('检测全部')} </a> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{php $i=1;$dirs=[];}
|
||||
{loop $list $dir $t}
|
||||
<tr class="odd gradeX">
|
||||
{php $dirs[$t.id]=$dir;}
|
||||
{if !$is_oem}<td class="myselect">
|
||||
{if $t.type == 'app'}
|
||||
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
|
||||
<input type="checkbox" class="checkboxes" name="ids[]" value="{$t.id}" />
|
||||
<span></span>
|
||||
</label>{/if}
|
||||
</td>{/if}
|
||||
<td style="text-align: center">{$t.tname}</td>
|
||||
<td>{$t.name}{if $t.type == 'app'} / {$dir}{/if}
|
||||
{if !$is_oem && $t.vip}
|
||||
<span class="label label-danger"> {$t.vip} </span>
|
||||
{/if}
|
||||
</td>
|
||||
<td> {$t.updatetime} </td>
|
||||
<td>{if !$is_oem}
|
||||
<a href="javascript:dr_show_log('{$t.id}', '{$t.version}');">{$t.version}</a>
|
||||
{else}
|
||||
{$t.version}
|
||||
{/if}
|
||||
</td>
|
||||
<td style="text-align: center">
|
||||
{if $t.backup}
|
||||
<a href="javascript:dr_show_info('<p>文件备份时间:{$t.backup_time}</p><p>程序备份目录:{$t.backup}</p><p>模板备份目录:{if $t.backup_tpl}{$t.backup_tpl}{else}未备份{/if}</p>');" class="label label-success"> 已备份 </a>
|
||||
{else}
|
||||
<span class="label label-warning"> 未备份 </span>
|
||||
{/if}
|
||||
</td>
|
||||
<td>
|
||||
<label style="display: none" id="dr_update_{$dir}">
|
||||
<button type="button" onclick="dr_update_cms('{dr_url('cloud/todo_update', ['id'=>$t.id, 'dir'=>$dir])}', '{dr_lang('升级前请做好系统备份,你确定要升级吗?')}', 1)" class="btn red btn-xs"> <i class="fa fa-cloud-upload"></i> {dr_lang('在线升级')}</button>
|
||||
{if !$is_oem}
|
||||
{if $dir == 'phpcmf'}
|
||||
<a href="https://www.xunruicms.com/member.php?action=down&cid={$cmf_version.id}&is_update=v{$t.version}&vs={$vs}&php={PHP_VERSION}" target="_blank" class="btn green btn-xs"> <i class="fa fa-cloud-download"></i> {dr_lang('离线下载升级包')}</a>
|
||||
{else}
|
||||
<a href="javascript:dr_down_cms('{$t.id}');" class="btn green btn-xs"> <i class="fa fa-cloud-download"></i> {dr_lang('离线下载升级包')}</a>
|
||||
{/if}
|
||||
{/if}
|
||||
</label>
|
||||
<label style="display: none" id="dr_duibi_{$dir}">
|
||||
{if IS_DEV}
|
||||
<button type="button" onclick="dr_update_cms('{dr_url('cloud/todo_update', ['id'=>$t.id, 'dir'=>$dir])}', '{dr_lang('更新前请做好系统备份,你确定要更新吗?')}', 1)" class="btn red btn-xs"> <i class="fa fa-cloud-upload"></i> {dr_lang('在线升级')}</button>
|
||||
{/if}
|
||||
<a href="https://www.xunruicms.com/member.php?action=down&cid={$cmf_version.id}&is_update=v{$t.version}&vs={$vs}&php={PHP_VERSION}" target="_blank" class="btn green btn-xs"> <i class="fa fa-cloud-download"></i> {dr_lang('离线下载升级包')}</a>
|
||||
</label>
|
||||
<label class="dr_check_version" id="dr_row_{$dir}">
|
||||
<a onclick="dr_update_version('{$dir}', '{$t.id}', '{$t.version}')" class="badge badge-danger badge-roundless"> {dr_lang('检测版本')} </a>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
{php $i++;}
|
||||
{/loop}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{if !$is_oem}
|
||||
<div class="row fc-list-footer table-checkable ">
|
||||
<div class="col-md-12 fc-list-select">
|
||||
<label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
|
||||
<input type="checkbox" class="group-checkable" data-set=".checkboxes" />
|
||||
<span></span>
|
||||
</label>
|
||||
<label style="margin-left: 15px;"><button type="button" onclick="dr_update_all()" class="btn blue btn-sm"> <i class="fa fa-cloud-download"></i> {dr_lang('批量在线升级')}</button></label>
|
||||
<label><button type="button" onclick="dr_down_all()" class="btn green btn-sm"> <i class="fa fa-cloud-download"></i> {dr_lang('批量离线下载')}</button></label>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
|
||||
function dr_down_cms(id) {
|
||||
var login_url = '{dr_url("cloud/login")}';
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '登录官方云账号',
|
||||
fix:true,
|
||||
scrollbar: false,
|
||||
shadeClose: true,
|
||||
shade: 0,
|
||||
area: ['500px', '260px'],
|
||||
btn: [lang['ok'], lang['esc']],
|
||||
yes: function(index, layero){
|
||||
var body = layer.getChildFrame('body', index);
|
||||
$(body).find('.form-group').removeClass('has-error');
|
||||
// 延迟加载
|
||||
var loading = layer.load(2, {
|
||||
shade: [0.3,'#fff'], //0.1透明度的白色背景
|
||||
time: 100000000
|
||||
});
|
||||
$.ajax({type: "POST",dataType:"json", url: login_url, data: $(body).find('#myform').serialize(),
|
||||
success: function(json) {
|
||||
layer.close(loading);
|
||||
if (json.code == 1) {
|
||||
layer.close(index);
|
||||
var yz_url = '{dr_url("cloud/down_app")}&id='+id+'&vs={$vs}&ls='+json.data;
|
||||
location.href= yz_url;
|
||||
} else {
|
||||
$(body).find('#dr_row_'+json.data.field).addClass('has-error');
|
||||
dr_tips(0, json.msg);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
error: function(HttpRequest, ajaxOptions, thrownError) {
|
||||
dr_ajax_alert_error(HttpRequest, this, thrownError);
|
||||
}
|
||||
});
|
||||
return false;
|
||||
},
|
||||
content: login_url+'&is_iframe=1'
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function dr_down_all() {
|
||||
var ids = new Array();
|
||||
var idss = '';
|
||||
var i = 0;
|
||||
$(".checkboxes:checked").each(function(){
|
||||
ids[i] = this.value;
|
||||
idss+= ','+this.value;
|
||||
i++;
|
||||
});
|
||||
if (ids.length < 1) {
|
||||
dr_tips(0, '你还没有选中需要下载的选项');
|
||||
return false;
|
||||
}
|
||||
dr_down_cms(idss);
|
||||
}
|
||||
|
||||
function dr_update_all() {
|
||||
var dirs_array = {json_encode($dirs)};
|
||||
var ids = new Array();
|
||||
var dirs = '';
|
||||
var idss = '';
|
||||
var i = 0;
|
||||
$(".checkboxes:checked").each(function(){
|
||||
ids[i] = this.value;
|
||||
idss+= ','+this.value;
|
||||
dirs+= ','+dirs_array[this.value];
|
||||
i++;
|
||||
});
|
||||
if (ids.length < 1) {
|
||||
dr_tips(0, '你还没有选中需要升级的选项');
|
||||
return false;
|
||||
}
|
||||
var url = "{dr_url('cloud/todo_update')}&id="+idss+"&vs={$vs}&dir="+dirs;
|
||||
layer.confirm(
|
||||
"升级前请做好系统备份,你确定要升级吗?",
|
||||
{
|
||||
icon: 3,
|
||||
shade: 0,
|
||||
title: lang['ts'],
|
||||
btn: ['直接升级','备份再升级', lang['esc']]
|
||||
}, function(index, layero){
|
||||
layer.close(index);
|
||||
dr_todo_cms(url+'&is_bf=1');
|
||||
}, function(index){
|
||||
layer.close(index);
|
||||
dr_todo_cms(url+'&is_bf=0');
|
||||
});
|
||||
}
|
||||
|
||||
function dr_update_cms(url, msg, remove) {
|
||||
layer.confirm(
|
||||
msg,
|
||||
{
|
||||
icon: 3,
|
||||
shade: 0,
|
||||
title: lang['ts'],
|
||||
btn: ['直接升级','备份再升级', lang['esc']]
|
||||
}, function(index, layero){
|
||||
layer.close(index);
|
||||
dr_todo_cms(url+'&is_bf=1');
|
||||
}, function(index){
|
||||
layer.close(index);
|
||||
dr_todo_cms(url+'&is_bf=0');
|
||||
});
|
||||
}
|
||||
|
||||
function dr_todo_cms(url) {
|
||||
var login_url = '{dr_url("cloud/login")}';
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '登录官方云账号',
|
||||
fix:true,
|
||||
scrollbar: false,
|
||||
shadeClose: true,
|
||||
shade: 0,
|
||||
area: ['500px', '260px'],
|
||||
btn: [lang['ok'], lang['esc']],
|
||||
yes: function(index, layero){
|
||||
var body = layer.getChildFrame('body', index);
|
||||
$(body).find('.form-group').removeClass('has-error');
|
||||
// 延迟加载
|
||||
var loading = layer.load(2, {
|
||||
shade: [0.3,'#fff'], //0.1透明度的白色背景
|
||||
time: 100000000
|
||||
});
|
||||
$.ajax({type: "POST",dataType:"json", url: login_url, data: $(body).find('#myform').serialize(),
|
||||
success: function(json) {
|
||||
layer.close(loading);
|
||||
if (json.code == 1) {
|
||||
layer.close(index);
|
||||
var yz_url = url+'&'+$('#myform').serialize()+'&ls='+json.data;
|
||||
// 验证成功
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '升级程序',
|
||||
scrollbar: false,
|
||||
resize: true,
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
shade: 0,
|
||||
area: ['80%', '80%'],
|
||||
success: function(layero, index){
|
||||
// 主要用于后台权限验证
|
||||
dr_iframe_error(layero, index, 0);
|
||||
},
|
||||
content: yz_url
|
||||
});
|
||||
} else {
|
||||
$(body).find('#dr_row_'+json.data.field).addClass('has-error');
|
||||
dr_tips(0, json.msg);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
error: function(HttpRequest, ajaxOptions, thrownError) {
|
||||
dr_ajax_alert_error(HttpRequest, this, thrownError);
|
||||
}
|
||||
});
|
||||
return false;
|
||||
},
|
||||
content: login_url+'&is_iframe=1'
|
||||
});
|
||||
}
|
||||
|
||||
function dr_beifen_cms(url, msg, remove) {
|
||||
layer.confirm(
|
||||
msg,
|
||||
{
|
||||
icon: 3,
|
||||
shade: 0,
|
||||
title: lang['ts'],
|
||||
btn: [lang['ok'], lang['esc']]
|
||||
}, function(index){
|
||||
layer.close(index);
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '备份程序',
|
||||
scrollbar: false,
|
||||
resize: true,
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
shade: 0,
|
||||
area: ['80%', '80%'],
|
||||
success: function(layero, index){
|
||||
// 主要用于后台权限验证
|
||||
dr_iframe_error(layero, index, 0);
|
||||
},
|
||||
content: url
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function dr_show_log(id, v) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '版本日志',
|
||||
scrollbar: false,
|
||||
resize: true,
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
shade: 0,
|
||||
area: ['80%', '80%'],
|
||||
content: '{dr_url("cloud/log_show")}&id='+id+'&version='+v,
|
||||
//content: 'http://www.phpcmf.net/version.php?id='+id+'&version='+v,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function dr_update_version_all() {
|
||||
{loop $list $dir $t}
|
||||
{if $t.id}
|
||||
dr_update_version("{$dir}", "{$t.id}", "{$t.version}");
|
||||
{/if}
|
||||
{/loop}
|
||||
}
|
||||
|
||||
function dr_update_version(dir, id, version) {
|
||||
$("#dr_row_"+dir).html("<img style='height:17px' src='{THEME_PATH}assets/images/loading-0.gif'>");
|
||||
$("#dr_update_"+dir).hide();
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
url: "{dr_url('cloud/check_version')}&id="+id+"&version="+version,
|
||||
success: function(json) {
|
||||
if (json.code == 1) {
|
||||
$("#dr_row_"+dir).html(json.msg);
|
||||
$("#dr_update_"+dir).show();
|
||||
} else if (json.code == 2) {
|
||||
$("#dr_row_"+dir).html(json.msg);
|
||||
$("#dr_duibi_"+dir).show();
|
||||
} else {
|
||||
$("#dr_row_"+dir).html("<a onclick=\"dr_update_version('"+dir+"', '"+id+"', '"+version+"')\" class=\"badge badge-danger badge-roundless\"> {dr_lang('检测版本')} </a>");
|
||||
$("#dr_row_"+dir).append(" <font color='red'>"+json.msg+"</font>");
|
||||
}
|
||||
},
|
||||
error: function(HttpRequest, ajaxOptions, thrownError) {
|
||||
$("#dr_row_"+dir).html("<a onclick=\"dr_update_version('"+dir+"', '"+id+"', '"+version+"')\" class=\"badge badge-danger badge-roundless\"> {dr_lang('检测版本')} </a>");
|
||||
$("#dr_row_"+dir).append(" <font color='red'>网络异常,请稍后再试</font>");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
{template "footer.html"}
|
||||
Reference in New Issue
Block a user