| @@ -32,14 +32,14 @@ if (empty($dopost)) { | |||||
| exit; | exit; | ||||
| } elseif ($dopost == 'get_articles') { | } elseif ($dopost == 'get_articles') { | ||||
| ?> | ?> | ||||
| <table class="table"> | |||||
| <table class="table table-borderless"> | |||||
| <?php | <?php | ||||
| $userCatalogSql = ''; | $userCatalogSql = ''; | ||||
| if (count($admin_catalogs) > 0) { | if (count($admin_catalogs) > 0) { | ||||
| $admin_catalog = join(',', $admin_catalogs); | $admin_catalog = join(',', $admin_catalogs); | ||||
| $userCatalogSql = "AND arc.typeid IN($admin_catalog) "; | $userCatalogSql = "AND arc.typeid IN($admin_catalog) "; | ||||
| } | } | ||||
| $query = "SELECT arc.id, arc.arcrank, arc.title, arc.typeid, arc.mid, arc.pubdate, arc.channel, ch.editcon, tp.typename FROM `#@__archives` arc LEFT JOIN `#@__channeltype` ch ON ch.id = arc.channel LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id WHERE arc.arcrank<>-2 {$userCatalogSql} AND arc.mid={$cuserLogin->getUserID()} ORDER BY arc.id DESC LIMIT 0,13"; | |||||
| $query = "SELECT arc.id, arc.arcrank, arc.title, arc.typeid, arc.mid, arc.pubdate, arc.channel, ch.editcon, tp.typename FROM `#@__archives` arc LEFT JOIN `#@__channeltype` ch ON ch.id = arc.channel LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id WHERE arc.arcrank<>-2 {$userCatalogSql} AND arc.mid={$cuserLogin->getUserID()} ORDER BY arc.id DESC LIMIT 0,20"; | |||||
| $arcArr = array(); | $arcArr = array(); | ||||
| $dsql->Execute('m', $query); | $dsql->Execute('m', $query); | ||||
| while($row = $dsql->GetArray('m')) | while($row = $dsql->GetArray('m')) | ||||
| @@ -23,18 +23,32 @@ function ViewDedeBIZ() { | |||||
| ShowMsg("启动商业组件失败"); | ShowMsg("启动商业组件失败"); | ||||
| return; | return; | ||||
| } | } | ||||
| ShowMsg(`<table class="table table-borderless w-100"> | |||||
| ShowMsg(`<table class="table table-borderless"> | |||||
| <tr> | <tr> | ||||
| <td width="120">版本号:</td> | |||||
| <td>V${dedebizInfo.result.server_version}</td> | |||||
| <td width="120">服务器系统:</td> | |||||
| <td>${dedebizInfo.result.server_goos}(${dedebizInfo.result.server_goarch})</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td>运行时间:</td> | |||||
| <td>${dedebizInfo.result.server_run_time}</td> | |||||
| <td>内存占用:</td> | |||||
| <td>${dedebizInfo.result.server_memory_usage}%</td> | |||||
| <td width="25%"> | |||||
| <div class="web-info"> | |||||
| <p>版本号</p> | |||||
| <span>${dedebizInfo.result.server_version}</span> | |||||
| </div> | |||||
| </td> | |||||
| <td width="25%"> | |||||
| <div class="web-info"> | |||||
| <p>服务器系统</p> | |||||
| <span>${dedebizInfo.result.server_goos}</span> | |||||
| </div> | |||||
| </td> | |||||
| <td width="25%"> | |||||
| <div class="web-info"> | |||||
| <p>运行时间</p> | |||||
| <span>${dedebizInfo.result.server_run_time}</span> | |||||
| </div> | |||||
| </td> | |||||
| <td width="25%"> | |||||
| <div class="web-info"> | |||||
| <p>内存占用</p> | |||||
| <span>${dedebizInfo.result.server_memory_usage}%</span> | |||||
| </div> | |||||
| </td> | |||||
| </tr> | </tr> | ||||
| </table>`); | </table>`); | ||||
| } | } | ||||
| @@ -50,18 +64,35 @@ function LoadServer() { | |||||
| let infoStr = `<table class="table table-borderless">`; | let infoStr = `<table class="table table-borderless">`; | ||||
| if (typeof rsp.result.domain !== "undefined") { | if (typeof rsp.result.domain !== "undefined") { | ||||
| infoStr += `<tr> | infoStr += `<tr> | ||||
| <td width="90">授权域名:</td> | |||||
| <td>${rsp.result.domain}</td> | |||||
| <td width="90">授权版本:</td> | |||||
| <td>${rsp.result.auth_version}.x.x(时间:${rsp.result.auth_at})</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td>站点名称:</td> | |||||
| <td>${rsp.result.title}(${rsp.result.stype})</td> | |||||
| <td>站点证书:</td> | |||||
| <td> | |||||
| <a href="${cfg_biz_dedebizUrl}/auth/?domain=${rsp.result.domain}" target="_blank" class="btn btn-success btn-sm">授权证书</a> | |||||
| <a href="javascript:ViewDedeBIZ()" class="btn btn-primary btn-sm">组件状态</a> | |||||
| <td width="20%"> | |||||
| <div class="web-info"> | |||||
| <p>授权域名</p> | |||||
| <span>${rsp.result.domain}</span> | |||||
| </div> | |||||
| </td> | |||||
| <td width="20%"> | |||||
| <div class="web-info"> | |||||
| <p>授权版本</p> | |||||
| <span>${rsp.result.auth_version}.x.x</span> | |||||
| </div> | |||||
| </td> | |||||
| <td width="20%"> | |||||
| <div class="web-info"> | |||||
| <p>站点名称</p> | |||||
| <span>${rsp.result.title}</span> | |||||
| </div> | |||||
| </td> | |||||
| <td width="20%"> | |||||
| <div class="web-info"> | |||||
| <p>站点证书</p> | |||||
| <span><a href="${cfg_biz_dedebizUrl}/auth/?domain=${rsp.result.domain}" target="_blank">查看证书</a></span> | |||||
| </div> | |||||
| </td> | |||||
| <td width="20%"> | |||||
| <div class="web-info"> | |||||
| <p>商业组件</p> | |||||
| <span><a href="javascript:ViewDedeBIZ()">组件状态</a></span> | |||||
| </div> | |||||
| </td> | </td> | ||||
| </tr>`; | </tr>`; | ||||
| } | } | ||||
| @@ -70,10 +101,12 @@ function LoadServer() { | |||||
| } else { | } else { | ||||
| $("#system-info").html(`<table class="table table-borderless"> | $("#system-info").html(`<table class="table table-borderless"> | ||||
| <tr> | <tr> | ||||
| <td>${rsp.msg}</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td>您已购买了商业版授权,登录DedeBIZ官网会员中心可查看相关授权信息。若授权结果与实际授权存在差异,购买到其它非商业授权,及时与我们取得联系。</td> | |||||
| <td> | |||||
| <div class="web-info"> | |||||
| <p>${rsp.msg}</p> | |||||
| <span>您已购买了商业版授权,登录DedeBIZ官网会员中心可查看相关授权信息。</span> | |||||
| </div> | |||||
| </td> | |||||
| </tr> | </tr> | ||||
| </table>`); | </table>`); | ||||
| } | } | ||||
| @@ -0,0 +1,132 @@ | |||||
| var currentStep = 1; | |||||
| var hasNewVer = false; | |||||
| //步骤 | |||||
| function dedeAlter(msg, t = 'info', loading = false) { | |||||
| let loadingStr = loading ? '<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>' : ''; | |||||
| return `<div class="alert alert-${t}">${loadingStr} | |||||
| ${msg} | |||||
| </div>`; | |||||
| } | |||||
| //显示步骤区域 | |||||
| function showStepArea(step) { | |||||
| $(".stepArea").hide(); | |||||
| $(".btnStep").hide(); | |||||
| $("#stepArea" + step).show(); | |||||
| $("#btnStep" + step).show(); | |||||
| } | |||||
| function update() { | |||||
| $.get("api.php?action=update", function (rs) { | |||||
| if (rs.code === 0) { | |||||
| $("#_updateMsg").html(rs.msg); | |||||
| if (rs.data.finish === false) { | |||||
| setTimeout(() => { | |||||
| update(); | |||||
| }, 500); | |||||
| } else { | |||||
| currentStep++ | |||||
| $("#_msgInfo").html(''); | |||||
| $("#_msgInfo").hide(); | |||||
| showStepArea(currentStep); | |||||
| } | |||||
| } | |||||
| }) | |||||
| } | |||||
| function hasNewVersion() { | |||||
| $.get("api.php?action=has_new_version", function (rs) { | |||||
| try { | |||||
| if (rs.code === 0) { | |||||
| if (rs.result.HasNew === true) { | |||||
| hasNewVer = true; | |||||
| $(".updates-dot").show(); | |||||
| } else { | |||||
| hasNewVer = false; | |||||
| $(".updates-dot").hide(); | |||||
| } | |||||
| } else { | |||||
| $(".updates-dot").hide(); | |||||
| showStepArea(0); | |||||
| } | |||||
| } catch (error) { | |||||
| console.log("获取软件信息失败") | |||||
| } | |||||
| }) | |||||
| } | |||||
| $(document).ready(function () { | |||||
| hasNewVersion(); | |||||
| $("#btnCancel").click(function () { | |||||
| currentStep = 1; | |||||
| $("#_fileList").html(``); | |||||
| }) | |||||
| $("#btnBackup").click(function () { | |||||
| let alertMsg = dedeAlter("正在备份差异文件", 'info', true); | |||||
| $("#_msgInfo").html(alertMsg); | |||||
| $("#_msgInfo").show(); | |||||
| $.get("api.php?action=update_backup", function (rs) { | |||||
| if (rs.code === 0) { | |||||
| alertMsg = dedeAlter(`成功备份差异文件,目录:${rs.data.backupdir}`, 'success'); | |||||
| $("#_msgInfo").html(alertMsg); | |||||
| } | |||||
| }) | |||||
| }) | |||||
| $("#systemUpdate").click(function () { | |||||
| if (hasNewVer === false) { | |||||
| currentStep = 5; | |||||
| showStepArea(currentStep); | |||||
| $('#mdlUpdate').modal('show'); | |||||
| return; | |||||
| } | |||||
| $('#mdlUpdate').modal('show'); | |||||
| showStepArea(currentStep); | |||||
| currentStep++; | |||||
| $.get("api.php?action=get_changed_files", function (rs) { | |||||
| if (rs.code === 0) { | |||||
| let fstr = '<ul class="list-group list-group-flush">'; | |||||
| let i = 1; | |||||
| rs.data.files.forEach(file => { | |||||
| fstr += `<li class='list-group-item'>第${i}个文件:${file['filename']}</li>`; | |||||
| i++; | |||||
| }); | |||||
| fstr += '</ul>'; | |||||
| $("#_fileList").html(fstr); | |||||
| showStepArea(currentStep); | |||||
| } else { | |||||
| showStepArea(0); | |||||
| } | |||||
| }) | |||||
| }) | |||||
| $('#mdlUpdate').on('hidden.bs.modal', function (event) { | |||||
| currentStep = 1; | |||||
| $("#_msgInfo").html(''); | |||||
| $("#_msgInfo").hide(); | |||||
| }) | |||||
| $("#btnGoStep3").click(function () { | |||||
| currentStep++ | |||||
| $("#_msgInfo").html(''); | |||||
| $("#_msgInfo").hide(); | |||||
| showStepArea(currentStep); | |||||
| $.get("api.php?action=get_update_versions", function (rs) { | |||||
| if (rs.code === 0) { | |||||
| let fstr = '<ul class="list-group list-group-flush">'; | |||||
| let i = 1; | |||||
| rs.result.Versions.forEach(ver => { | |||||
| fstr += `<li class='list-group-item'>版本号:${ver.ver},发布日期:${ver.r} <a href='https://www.zhelixie.com/DedeBIZ/DedeV6/commits/tag/${ver.ver}' class='btn btn-outline-success float-right' target='_blank'>更新记录</a></li>`; | |||||
| i++; | |||||
| }); | |||||
| fstr += '</ul>'; | |||||
| $("#_verList").html(fstr); | |||||
| } else { | |||||
| showStepArea(0); | |||||
| } | |||||
| }) | |||||
| }) | |||||
| $("#btnGoStep4").click(function () { | |||||
| currentStep++ | |||||
| $("#_msgInfo").html(''); | |||||
| $("#_msgInfo").hide(); | |||||
| showStepArea(currentStep); | |||||
| update(); | |||||
| }) | |||||
| $("#btnOK").click(function () { | |||||
| hasNewVersion(); | |||||
| }) | |||||
| }) | |||||
| @@ -13,6 +13,7 @@ | |||||
| <script src="../static/web/js/webajax.js"></script> | <script src="../static/web/js/webajax.js"></script> | ||||
| <script src="../static/web/js/chart.min.js"></script> | <script src="../static/web/js/chart.min.js"></script> | ||||
| <script src="js/body.js"></script> | <script src="js/body.js"></script> | ||||
| <script src="js/update.js"></script> | |||||
| <script src="js/main.js"></script> | <script src="js/main.js"></script> | ||||
| <base target="_self"> | <base target="_self"> | ||||
| </head> | </head> | ||||
| @@ -35,11 +36,11 @@ | |||||
| <td width="20%" class="border-top-0">访问次数(VV)</td> | <td width="20%" class="border-top-0">访问次数(VV)</td> | ||||
| </tr> | </tr> | ||||
| <tr> | <tr> | ||||
| <td class="today">今日记录</td> | |||||
| <td class="today" id="today_pv">0</td> | |||||
| <td class="today" id="today_uv">0</td> | |||||
| <td class="today" id="today_ip">0</td> | |||||
| <td class="today" id="today_vv">0</td> | |||||
| <td>今日记录</td> | |||||
| <td id="today_pv">0</td> | |||||
| <td id="today_uv">0</td> | |||||
| <td id="today_ip">0</td> | |||||
| <td id="today_vv">0</td> | |||||
| </tr> | </tr> | ||||
| <tr> | <tr> | ||||
| <td>昨日记录</td> | <td>昨日记录</td> | ||||
| @@ -68,37 +69,37 @@ | |||||
| <div class="card-body"> | <div class="card-body"> | ||||
| <table class="table table-borderless"> | <table class="table table-borderless"> | ||||
| <tr> | <tr> | ||||
| <td> | |||||
| <td width="16%"> | |||||
| <div class="web-info"> | <div class="web-info"> | ||||
| <p>操作系统</p> | <p>操作系统</p> | ||||
| <span><?php echo PHP_OS;?></span> | <span><?php echo PHP_OS;?></span> | ||||
| </div> | </div> | ||||
| </td> | </td> | ||||
| <td> | |||||
| <td width="16%"> | |||||
| <div class="web-info"> | <div class="web-info"> | ||||
| <p>WEB服务器</p> | <p>WEB服务器</p> | ||||
| <span><?php echo GetSimpleServerSoftware();?></span> | <span><?php echo GetSimpleServerSoftware();?></span> | ||||
| </div> | </div> | ||||
| </td> | </td> | ||||
| <td> | |||||
| <td width="16%"> | |||||
| <div class="web-info"> | <div class="web-info"> | ||||
| <p>IP地址</p> | <p>IP地址</p> | ||||
| <span><?php echo gethostbyname($_SERVER['SERVER_NAME']);?></span> | <span><?php echo gethostbyname($_SERVER['SERVER_NAME']);?></span> | ||||
| </div> | </div> | ||||
| </td> | </td> | ||||
| <td> | |||||
| <td width="16%"> | |||||
| <div class="web-info"> | <div class="web-info"> | ||||
| <p>PHP版本</p> | <p>PHP版本</p> | ||||
| <span><?php echo @phpversion();?></span> | <span><?php echo @phpversion();?></span> | ||||
| </div> | </div> | ||||
| </td> | </td> | ||||
| <td> | |||||
| <td width="16%"> | |||||
| <div class="web-info"> | <div class="web-info"> | ||||
| <p>数据库版本</p> | <p>数据库版本</p> | ||||
| <span><?php echo $dsql->GetVersion();?></span> | <span><?php echo $dsql->GetVersion();?></span> | ||||
| </div> | </div> | ||||
| </td> | </td> | ||||
| <td> | |||||
| <td width="16%"> | |||||
| <div class="web-info"> | <div class="web-info"> | ||||
| <p>上传限制</p> | <p>上传限制</p> | ||||
| <span><?php echo ini_get("post_max_size")?></span> | <span><?php echo ini_get("post_max_size")?></span> | ||||
| @@ -192,139 +193,5 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <script> | |||||
| var currentStep = 1; | |||||
| var hasNewVer = false; | |||||
| //步骤 | |||||
| function dedeAlter(msg, t = 'info', loading = false) { | |||||
| let loadingStr = loading ? '<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>' : ''; | |||||
| return `<div class="alert alert-${t}">${loadingStr} | |||||
| ${msg} | |||||
| </div>`; | |||||
| } | |||||
| //显示步骤区域 | |||||
| function showStepArea(step) { | |||||
| $(".stepArea").hide(); | |||||
| $(".btnStep").hide(); | |||||
| $("#stepArea" + step).show(); | |||||
| $("#btnStep" + step).show(); | |||||
| } | |||||
| function update() { | |||||
| $.get("api.php?action=update", function (rs) { | |||||
| if (rs.code === 0) { | |||||
| $("#_updateMsg").html(rs.msg); | |||||
| if (rs.data.finish === false) { | |||||
| setTimeout(() => { | |||||
| update(); | |||||
| }, 500); | |||||
| } else { | |||||
| currentStep++ | |||||
| $("#_msgInfo").html(''); | |||||
| $("#_msgInfo").hide(); | |||||
| showStepArea(currentStep); | |||||
| } | |||||
| } | |||||
| }) | |||||
| } | |||||
| function hasNewVersion() { | |||||
| $.get("api.php?action=has_new_version", function (rs) { | |||||
| try { | |||||
| if (rs.code === 0) { | |||||
| if (rs.result.HasNew === true) { | |||||
| hasNewVer = true; | |||||
| $(".updates-dot").show(); | |||||
| } else { | |||||
| hasNewVer = false; | |||||
| $(".updates-dot").hide(); | |||||
| } | |||||
| } else { | |||||
| $(".updates-dot").hide(); | |||||
| showStepArea(0); | |||||
| } | |||||
| } catch (error) { | |||||
| console.log("获取软件信息失败") | |||||
| } | |||||
| }) | |||||
| } | |||||
| $(document).ready(function () { | |||||
| hasNewVersion(); | |||||
| $("#btnCancel").click(function () { | |||||
| currentStep = 1; | |||||
| $("#_fileList").html(``); | |||||
| }) | |||||
| $("#btnBackup").click(function () { | |||||
| let alertMsg = dedeAlter("正在备份差异文件", 'info', true); | |||||
| $("#_msgInfo").html(alertMsg); | |||||
| $("#_msgInfo").show(); | |||||
| $.get("api.php?action=update_backup", function (rs) { | |||||
| if (rs.code === 0) { | |||||
| alertMsg = dedeAlter(`成功备份差异文件,目录:${rs.data.backupdir}`, 'success'); | |||||
| $("#_msgInfo").html(alertMsg); | |||||
| } | |||||
| }) | |||||
| }) | |||||
| $("#systemUpdate").click(function () { | |||||
| if (hasNewVer === false) { | |||||
| currentStep = 5; | |||||
| showStepArea(currentStep); | |||||
| $('#mdlUpdate').modal('show'); | |||||
| return; | |||||
| } | |||||
| $('#mdlUpdate').modal('show'); | |||||
| showStepArea(currentStep); | |||||
| currentStep++; | |||||
| $.get("api.php?action=get_changed_files", function (rs) { | |||||
| if (rs.code === 0) { | |||||
| let fstr = '<ul class="list-group list-group-flush">'; | |||||
| let i = 1; | |||||
| rs.data.files.forEach(file => { | |||||
| fstr += `<li class='list-group-item'>第${i}个文件:${file['filename']}</li>`; | |||||
| i++; | |||||
| }); | |||||
| fstr += '</ul>'; | |||||
| $("#_fileList").html(fstr); | |||||
| showStepArea(currentStep); | |||||
| } else { | |||||
| showStepArea(0); | |||||
| } | |||||
| }) | |||||
| }) | |||||
| $('#mdlUpdate').on('hidden.bs.modal', function (event) { | |||||
| currentStep = 1; | |||||
| $("#_msgInfo").html(''); | |||||
| $("#_msgInfo").hide(); | |||||
| }) | |||||
| $("#btnGoStep3").click(function () { | |||||
| currentStep++ | |||||
| $("#_msgInfo").html(''); | |||||
| $("#_msgInfo").hide(); | |||||
| showStepArea(currentStep); | |||||
| $.get("api.php?action=get_update_versions", function (rs) { | |||||
| if (rs.code === 0) { | |||||
| let fstr = '<ul class="list-group list-group-flush">'; | |||||
| let i = 1; | |||||
| rs.result.Versions.forEach(ver => { | |||||
| fstr += `<li class='list-group-item'>版本号:${ver.ver},发布日期:${ver.r} <a href='https://www.zhelixie.com/DedeBIZ/DedeV6/commits/tag/${ver.ver}' class='btn btn-outline-success float-right' target='_blank'>更新记录</a></li>`; | |||||
| i++; | |||||
| }); | |||||
| fstr += '</ul>'; | |||||
| $("#_verList").html(fstr); | |||||
| } else { | |||||
| showStepArea(0); | |||||
| } | |||||
| }) | |||||
| }) | |||||
| $("#btnGoStep4").click(function () { | |||||
| currentStep++ | |||||
| $("#_msgInfo").html(''); | |||||
| $("#_msgInfo").hide(); | |||||
| showStepArea(currentStep); | |||||
| update(); | |||||
| }) | |||||
| $("#btnOK").click(function () { | |||||
| hasNewVersion(); | |||||
| }) | |||||
| }) | |||||
| </script> | |||||
| </body> | </body> | ||||
| </html> | </html> | ||||
| @@ -317,6 +317,15 @@ body.hidemenu .body-right { | |||||
| .card-body { | .card-body { | ||||
| padding:.65rem | padding:.65rem | ||||
| } | } | ||||
| .card-height { | |||||
| height:490px; | |||||
| overflow:auto | |||||
| } | |||||
| .web-info { | |||||
| padding:10px; | |||||
| background:#f5f5f5; | |||||
| white-space:nowrap | |||||
| } | |||||
| #fz-0 { | #fz-0 { | ||||
| font-size:0 | font-size:0 | ||||
| } | } | ||||
| @@ -531,11 +540,6 @@ body.hidemenu .body-right { | |||||
| .admin-input-xs { | .admin-input-xs { | ||||
| width:60px | width:60px | ||||
| } | } | ||||
| .web-info { | |||||
| padding:10px; | |||||
| background:#f5f5f5; | |||||
| text-align:center | |||||
| } | |||||
| .thumbnail-md { | .thumbnail-md { | ||||
| max-width:200px; | max-width:200px; | ||||
| max-height:120px | max-height:120px | ||||