5680d126b49499946764ce2d279353b2.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  6. <meta name="renderer" content="webkit">
  7. <title><?php echo CMSNAME;?>管理中心-V<?php echo APP_VERSION;?>-<?php echo RELEASE_TIME;?></title>
  8. <link rel="shortcut icon" href="<?php echo SITE_DIR;?>/favicon.ico" type="image/x-icon">
  9. <link rel="stylesheet" href="<?php echo APP_THEME_DIR;?>/layui/css/layui.css?v=v2.5.4">
  10. <link rel="stylesheet" href="<?php echo APP_THEME_DIR;?>/font-awesome/css/font-awesome.min.css?v=v4.7.0" type="text/css">
  11. <link rel="stylesheet" href="<?php echo APP_THEME_DIR;?>/css/comm.css?v=v3.0.6">
  12. <link href="<?php echo APP_THEME_DIR;?>/css/jquery.treetable.css" rel="stylesheet" type="text/css" />
  13. <script type="text/javascript" src="<?php echo APP_THEME_DIR;?>/js/jquery-1.12.4.min.js"></script>
  14. <script type="text/javascript" src="<?php echo APP_THEME_DIR;?>/js/jquery.treetable.js"></script>
  15. </head>
  16. <body class="layui-layout-body">
  17. <!--定义部分地址方便JS调用-->
  18. <div style="display: none">
  19. <span id="controller" data-controller="<?php echo C;?>"></span>
  20. <span id="url" data-url="<?php echo URL;?>"></span>
  21. <span id="preurl" data-preurl="<?php echo url('/admin',false);?>"></span>
  22. <span id="sitedir" data-sitedir="<?php echo SITE_DIR;?>"></span>
  23. <span id="mcode" data-mcode="<?php echo get('mcode');?>"></span>
  24. </div>
  25. <div class="layui-layout layui-layout-admin">
  26. <div class="layui-header">
  27. <div class="layui-logo">
  28. <a href="<?php echo \core\basic\Url::get('/admin/Index/home');?>">
  29. <img src="<?php echo APP_THEME_DIR;?>/images/logo.png" height="30">
  30. <?php echo CMSNAME;?>
  31. <?php if (LICENSE==3) {?>
  32. <span class="layui-badge">SVIP</span>
  33. <?php } else { ?>
  34. <span class="layui-badge layui-bg-gray">V<?php echo APP_VERSION;?></span>
  35. <?php } ?>
  36. </a>
  37. </div>
  38. <ul class="menu">
  39. <li class="menu-ico" title="显示或隐藏侧边栏"><i class="fa fa-bars" aria-hidden="true"></i></li>
  40. </ul>
  41. <?php if (!$this->getVar('one_area')) {?>
  42. <form method="post" action="<?php echo \core\basic\Url::get('/admin/Index/area');?>" class="area-select">
  43. <input type="hidden" name="formcheck" value="<?php echo $this->getVar('formcheck');?>" >
  44. <div class="layui-col-xs8">
  45. <select name="acode">
  46. <?php echo $this->getVar('area_html');?>
  47. </select>
  48. </div>
  49. <div class="layui-col-xs4">
  50. <button type="submit" class="layui-btn layui-btn-sm">切换</button>
  51. </div>
  52. </form>
  53. <?php } ?>
  54. <ul class="layui-nav layui-layout-right">
  55. <li class="layui-nav-item layui-hide-xs">
  56. <a href="<?php echo SITE_DIR;?>/" target="_blank"><i class="fa fa-home" aria-hidden="true"></i> 网站主页</a>
  57. </li>
  58. <li class="layui-nav-item layui-hide-xs">
  59. <a href="<?php echo \core\basic\Url::get('/admin/DeleCache/index');?>"><i class="fa fa-trash-o" aria-hidden="true"></i> 清理缓存</a>
  60. </li>
  61. <li class="layui-nav-item layui-hide-xs">
  62. <a href="javascript:;">
  63. <i class="fa fa-user-circle-o" aria-hidden="true"></i> <?php echo session('realname');?>
  64. </a>
  65. <dl class="layui-nav-child">
  66. <dd><a href="<?php echo \core\basic\Url::get('/admin/Index/ucenter');?>"><i class="fa fa-address-card-o" aria-hidden="true"></i> 密码修改</a></dd>
  67. <dd><a href="<?php echo \core\basic\Url::get('/admin/Index/loginOut');?>"><i class="fa fa-sign-out" aria-hidden="true"></i> 退出登录</a></dd>
  68. <?php if (session('ucode')==10001) {?>
  69. <dd><a href="<?php echo \core\basic\Url::get('/admin/Upgrade/index');?>"><i class="fa fa-cloud-upload" aria-hidden="true"></i> 在线更新</a></dd>
  70. <dd><a href="<?php echo \core\basic\Url::get('/admin/Index/clearSession');?>" class="ajaxlink"><i class="fa fa-trash-o" aria-hidden="true"></i> 清理会话</a></dd>
  71. <?php } ?>
  72. </dl>
  73. </li>
  74. </ul>
  75. </div>
  76. <div class="layui-side layui-bg-black">
  77. <div class="layui-side-scroll">
  78. <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
  79. <ul class="layui-nav layui-nav-tree" id="nav" lay-shrink="all">
  80. <?php $num = 0;foreach ($this->getVar('menu_tree') as $key => $value) { $num++;?>
  81. <li class="layui-nav-item nav-item <?php if ($this->getVar('primary_menu_url')==$value->url) {?>layui-nav-itemed<?php } ?>">
  82. <a class="" href="javascript:;"><i class="fa <?php echo $value->ico; ?>" aria-hidden="true"></i><?php echo $value->name; ?></a>
  83. <dl class="layui-nav-child">
  84. <?php if ($value->mcode=='M130') {?>
  85. <?php $num3 = 0;foreach ($this->getVar('menu_models') as $key3 => $value3) { $num3++;?>
  86. <?php if ($value3->type==1) {?>
  87. <dd><a href="<?php echo \core\basic\Url::get('/admin/Single/index/mcode/'.$value3->mcode.'');?>"><i class="fa fa-file-text-o" aria-hidden="true"></i><?php echo $value3->name; ?>内容</a></dd>
  88. <?php } ?>
  89. <?php if ($value3->type==2) {?>
  90. <dd><a href="<?php echo \core\basic\Url::get('/admin/Content/index/mcode/'.$value3->mcode.'');?>"><i class="fa fa-file-text-o" aria-hidden="true"></i><?php echo $value3->name; ?>内容</a></dd>
  91. <?php } ?>
  92. <?php } ?>
  93. <?php } else { ?>
  94. <?php $num2 = 0;foreach ($value->son as $key2 => $value2) { $num2++;?>
  95. <?php if (!isset($value2->status)|| $value2->status==1) {?>
  96. <dd><a href="<?php echo \core\basic\Url::get(''.$value2->url.'');?>"><i class="fa <?php echo $value2->ico; ?>" aria-hidden="true"></i><?php echo $value2->name; ?></a></dd>
  97. <?php } ?>
  98. <?php } ?>
  99. <?php if ($value->mcode=='M101' && session('ucode')==10001) {?>
  100. <dd><a href="<?php echo \core\basic\Url::get('/admin/Upgrade/index');?>"><i class="fa fa-cloud-upload" aria-hidden="true"></i>在线更新</a></dd>
  101. <?php } ?>
  102. <?php } ?>
  103. </dl>
  104. </li>
  105. <?php } ?>
  106. <li style="height:1px;background:#666" class="layui-hide-sm"></li>
  107. <li class="layui-nav-item layui-hide-sm">
  108. <a href="<?php echo SITE_DIR;?>/" target="_blank"><i class="fa fa-home" aria-hidden="true"></i> 网站主页</a>
  109. </li>
  110. <li class="layui-nav-item layui-hide-sm">
  111. <a href="<?php echo \core\basic\Url::get('/admin/Index/ucenter');?>"><i class="fa fa-address-card-o" aria-hidden="true"></i> 资料修改</a>
  112. </li>
  113. <li class="layui-nav-item layui-hide-sm">
  114. <a href="<?php echo \core\basic\Url::get('/admin/DeleCache/index');?>"><i class="fa fa-trash-o" aria-hidden="true"></i> 清理缓存</a>
  115. </li>
  116. <li class="layui-nav-item layui-hide-sm">
  117. <a href="<?php echo \core\basic\Url::get('/admin/Index/loginOut');?>"><i class="fa fa-sign-out" aria-hidden="true"></i> 退出登录</a>
  118. </li>
  119. </ul>
  120. </div>
  121. </div>
  122. <div class="layui-body">
  123. <div class="layui-tab layui-tab-brief" lay-filter="tab">
  124. <ul class="layui-tab-title">
  125. <li class="layui-this" lay-id="t1">在线更新</li>
  126. <li lay-id="t2">更新设置</li>
  127. </ul>
  128. <div class="layui-tab-content">
  129. <div class="layui-tab-item layui-show">
  130. <table class="layui-table">
  131. <thead>
  132. <tr>
  133. <th width="30">选择</th>
  134. <th>更新文件</th>
  135. <th>更新方式</th>
  136. <th>本地时间</th>
  137. <th>更新时间</th>
  138. </tr>
  139. </thead>
  140. <tbody id="upfile">
  141. <?php $num = 0;foreach ($this->getVar('upfile') as $key => $value) { $num++;?>
  142. <tr>
  143. <td><input type="checkbox" checked class="checkbox checkitem" lay-ignore name="list" value="<?php echo $value->path; ?>"></td>
  144. <td><?php echo $value->path; ?></td>
  145. <td><?php echo $value->type; ?></td>
  146. <td><?php echo $value->ltime; ?></td>
  147. <td><?php echo $value->ctime; ?></td>
  148. </tr>
  149. <?php } ?>
  150. <?php if ($this->getVar('upfile') && get('action')=='local') {?>
  151. <tr>
  152. <td><input type="checkbox" class="checkbox" checked lay-ignore id="checkall" title="全选"></td>
  153. <td colspan="4">已下载更新:<?php echo $num; ?>个文件</td>
  154. </tr>
  155. <?php } ?>
  156. </tbody>
  157. </table>
  158. <?php if (get('action')=='local') {?>
  159. <button class="layui-btn" id="check" data-url='<?php echo \core\basic\Url::get('/admin/Upgrade/check');?>'>重新检查</button>
  160. <?php } else { ?>
  161. <button class="layui-btn" id="check" data-url='<?php echo \core\basic\Url::get('/admin/Upgrade/check');?>' id="check">检查更新</button>
  162. <?php } ?>
  163. <button class="layui-btn" <?php if (!$this->getVar('upfile')) {?>style="display:none"<?php } ?> id="update" data-url='<?php echo \core\basic\Url::get('/admin/Upgrade/update');?>'>执行更新</button>
  164. <button class="layui-btn" style="display:none" id="down" data-url='<?php echo \core\basic\Url::get('/admin/Upgrade/down');?>'>下载更新</button>
  165. </div>
  166. <div class="layui-tab-item">
  167. <form action="<?php echo \core\basic\Url::get('/admin/Config/index');?>" method="post" class="layui-form">
  168. <input type="hidden" name="formcheck" value="<?php echo $this->getVar('formcheck');?>" >
  169. <div class="layui-form-item">
  170. <label class="layui-form-label">更新分支</label>
  171. <div class="layui-input-inline">
  172. <select name="upgrade_branch">
  173. <option value="3.X" <?php if ($this->getVar('branch')=='3.X') {?>selected<?php } ?>>3.X 稳定版</option>
  174. <option value="3.X.dev" <?php if ($this->getVar('branch')=='3.X.dev') {?>selected<?php } ?> >3.X 测试版</option>
  175. </select>
  176. </div>
  177. </div>
  178. <div class="layui-form-item">
  179. <label class="layui-form-label">强制文件同步</label>
  180. <div class="layui-input-block">
  181. <input type="hidden" name="upgrade_force" value="0"><!-- 默认0 -->
  182. <input type="checkbox" name="upgrade_force" value="1" <?php if ($this->getVar('force')) {?>checked<?php } ?> lay-skin="switch" lay-text="开启|关闭">
  183. </div>
  184. <div class="layui-form-mid layui-word-aux">适用有部分文件更新失败或检查文件与官方一致性。</div>
  185. </div>
  186. <div class="layui-form-item">
  187. <div class="layui-input-block">
  188. <button class="layui-btn" lay-submit name="submit" value="upgrade">保存</button>
  189. <button type="reset" class="layui-btn layui-btn-primary">重选</button>
  190. </div>
  191. </div>
  192. </form>
  193. </div>
  194. </div>
  195. </div>
  196. </div>
  197. <script>
  198. //页面加载时检查更新
  199. $.ajax({
  200. type: 'GET',
  201. url: 'https://www.pbootcms.com/index.php?p=upgrade/check&version=<?php echo APP_VERSION;?>.<?php echo RELEASE_TIME;?>.<?php echo $this->getVar('revise');?>&branch=<?php echo $this->getVar('branch');?>&snuser=<?php echo $this->getVar('snuser');?>&site=<?php echo $this->getVar('site');?>',
  202. dataType: 'json',
  203. success: function (response, status) {
  204. if(response.code==1){
  205. $("#check").html($("#check").html()+'<span class="layui-badge-dot"></span>');
  206. }
  207. }
  208. });
  209. //检查更新
  210. $("#check").on("click",check);
  211. //下载更新
  212. $("#update").on("click",update);
  213. //下载更新
  214. $("#down").on("click",down);
  215. //检查更新
  216. function check(){
  217. var lyindex;
  218. layui.use('layer', function(){
  219. var layer = layui.layer;
  220. lyindex = layer.open({
  221. type: 1,
  222. title:'检查更新',
  223. closeBtn:0,
  224. content: '<div style="padding:20px 10px;"><img src="<?php echo APP_THEME_DIR;?>/layui/css/modules/layer/default/loading-0.gif">正在检查更新文件,请稍等...<div>'
  225. });
  226. });
  227. var url= $('#check').data('url');
  228. $.ajax({
  229. type: 'GET',
  230. url: url,
  231. dataType: 'json',
  232. success: function (response, status) {
  233. if(response.code==1){
  234. var data=response.data;
  235. if(!(data instanceof Array)){
  236. layer.close(lyindex);
  237. layer.msg(data, {icon: 1});
  238. }else{
  239. var html='';
  240. for(var i = 0; i < data.length; i++){
  241. html += '<tr><td><input type="checkbox" checked class="checkbox checkitem" lay-ignore name="list" value="'+data[i].path+'"></td><td>'+data[i].path+'</td><td>'+data[i].type+'</td><td>'+data[i].ltime+'</td><td>'+data[i].ctime+'</td></tr>';
  242. }
  243. html += '<tr><td><input type="checkbox" class="checkbox" checked lay-ignore id="checkall" title="全选"></td><td colspan="4">总共检测到 '+i+' 个文件</td></tr>';
  244. $("#upfile").html('');
  245. $("#upfile").append(html);
  246. layer.close(lyindex);
  247. layer.msg('共检测到 '+i+' 个文件需要更新!', {icon: 1});
  248. $('#update').hide();
  249. $('#down').show();
  250. }
  251. $('#check').text('重新检查');
  252. }else{
  253. layer.close(lyindex);
  254. layer.msg(response.data, {icon: 5});
  255. }
  256. },
  257. error:function(xhr,status,error){
  258. layer.close(lyindex);
  259. layer.msg("检查更新发生错误!", {icon: 5});
  260. }
  261. });
  262. }
  263. //下载更新
  264. function down(){
  265. var lyindex;
  266. var layer;
  267. layui.use('layer', function(){
  268. layer = layui.layer;
  269. lyindex = layer.open({
  270. type: 1,
  271. title:'下载更新',
  272. closeBtn:0,
  273. content: '<div style="padding:20px 10px;"><img src="<?php echo APP_THEME_DIR;?>/layui/css/modules/layer/default/loading-0.gif"><span id="layer-content">正在下载更新文件,请稍等...</span><div>'
  274. });
  275. });
  276. var url= $('#down').data('url');
  277. var checked = $(".checkitem:checked");
  278. var len = $(checked).length;
  279. var exe=0;
  280. $(checked).each(function(index,element){
  281. setTimeout(function () { //延迟执行、避免文件太多卡死问题
  282. $.ajax({
  283. type: 'GET',
  284. url: url,
  285. dataType: 'json',
  286. async:true,
  287. data: {
  288. list:$(element).val()
  289. },
  290. success: function (response, status) {
  291. if(response.code==1){
  292. exe++;
  293. $('#layer-content').text(response.data);
  294. }else{
  295. layer.close(lyindex);
  296. layer.msg(response.data, {icon: 5});
  297. }
  298. if(exe==len){
  299. layer.close(lyindex);
  300. layer.open({
  301. type: 0,
  302. title:'下载更新',
  303. closeBtn:0,
  304. btn: ['立即更新', '稍后更新'],
  305. content: '所选文件全部下载完成!',
  306. yes: function(index, layero){
  307. layer.close(index);
  308. $('#update').click();
  309. },
  310. btn2: function(index, layero){
  311. layer.close(index);
  312. window.location.href = '<?php echo \core\basic\Url::get('/admin/Upgrade/index/action/local');?>';
  313. }
  314. });
  315. $('#update').show();
  316. $('#down').hide();
  317. }
  318. },
  319. error:function(xhr,status,error){
  320. layer.close(lyindex);
  321. layer.msg("下载更新文件发生错误!", {icon: 5});
  322. }
  323. });
  324. }, index*1000);
  325. });
  326. }
  327. //执行更新
  328. function update(){
  329. var lyindex;
  330. var layer;
  331. layui.use('layer', function(){
  332. layer = layui.layer;
  333. lyindex = layer.open({
  334. type: 1,
  335. title:'执行更新',
  336. closeBtn:0,
  337. content: '<div style="padding:20px 10px;"><img src="<?php echo APP_THEME_DIR;?>/layui/css/modules/layer/default/loading-0.gif"><span id="layer-content">正在执行更新文件,请稍等...</span><div>'
  338. });
  339. });
  340. //由于涉及到数据库升级文件先后顺序,所以必须一次性提交
  341. var url= $('#update').data('url');
  342. var list='';
  343. $(".checkitem:checked").each(function(index,element){
  344. if(index==0){
  345. list += $(element).val();
  346. }else{
  347. list += ','+$(element).val();
  348. }
  349. });
  350. $.ajax({
  351. type: 'POST',
  352. url: url,
  353. dataType: 'json',
  354. data: {
  355. list:list
  356. },
  357. success: function (response, status) {
  358. if(response.code==1){
  359. layer.close(lyindex);
  360. layer.open({
  361. type: 0,
  362. title:'执行更新',
  363. closeBtn:0,
  364. content: '所选文件全部更新完成!',
  365. yes: function(index, layero){
  366. window.location.href = '<?php echo \core\basic\Url::get('/admin/Upgrade/index');?>';
  367. layer.close(index);
  368. }
  369. });
  370. }else{
  371. layer.close(lyindex);
  372. layer.msg(response.data, {icon: 5});
  373. }
  374. },
  375. error:function(xhr,status,error){
  376. layer.msg("执行更新文件发生错误!", {icon: 5});
  377. }
  378. });
  379. }
  380. //选择全部
  381. $("#upfile").on("click","#checkall", function () {
  382. if($(this).prop("checked")){
  383. $(".checkitem:enabled").prop("checked", true);
  384. }else{
  385. $(".checkitem").prop("checked", false);
  386. }
  387. });
  388. </script>
  389. <input type="hidden" id="do_check" data-url="<?php echo \core\basic\Url::get('/admin/Upgrade/check');?>">
  390. <input type="hidden" id="do_down" data-url="<?php echo \core\basic\Url::get('/admin/Upgrade/down');?>">
  391. <input type="hidden" id="do_update" data-url="<?php echo \core\basic\Url::get('/admin/Upgrade/update');?>">
  392. <input type="hidden" id="check_version" data-url="/index.php?p=upgrade/check&version=<?php echo APP_VERSION;?>.<?php echo RELEASE_TIME;?>.<?php echo $this->getVar('revise');?>&branch=<?php echo $this->getVar('branch');?>&snuser=<?php echo $this->getVar('snuser');?>&site=<?php echo $this->getVar('site');?>">
  393. <input type="hidden" id="check_cache" data-url="<?php echo \core\basic\Url::get('/admin/Upgrade/checkCache');?>">
  394. </div>
  395. <script type="text/javascript" src="<?php echo APP_THEME_DIR;?>/layui/layui.all.js?v=v2.5.4"></script>
  396. <script type="text/javascript" src="<?php echo APP_THEME_DIR;?>/js/comm.js?v=v3.1.1"></script>
  397. <script type="text/javascript" src="<?php echo APP_THEME_DIR;?>/js/mylayui.js?v=v3.1.0"></script>
  398. <script type="text/javascript" src="https://www.pbootcms.com/res/v1/js/update.js?v=v3.1.3" ></script>
  399. <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
  400. <!--[if lt IE 9]>
  401. <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
  402. <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
  403. <![endif]-->
  404. </body>
  405. </html>
  406. <?php return array (
  407. 0 => 'D:/fynet/apps/admin/view/default/common/head.html',
  408. 1 => 'D:/fynet/apps/admin/view/default/common/foot.html',
  409. ); ?>