仰望星辰工作室

better-staridc-MNBT

better-staridc-MNBT/ templates/default/user/index.php 17.0 KB · 366 行 原始文件
1<!--
2 ============================================================
3 用户端主框架(侧边栏 + 头部 + 多标签 iframe 容器)
4 ------------------------------------------------------------
5 【二次开发修改说明】
6 修改者 :zfhsh <3933415854@qq.com>
7 修改日期 :2026-10-01
8 修改内容 :
9 1. 引入 StarIDC「新拟态 2.0」主题覆盖层 user-neomorphism.css
10 2. 侧边栏 / 头部 / 内容容器应用新拟态阴影与圆角
11 3. 头部工具按钮(刷新、主题配色)改为新拟态凸起样式
12 4. iframe 多标签、菜单、AJAX 交互逻辑保持原样未改动
13 原项目版权归梦奈云所有;本修改遵循 MNBT 宽松许可证,
14 保留原作者版权声明并在此注明修改内容。
15 ============================================================
16-->
17<html lang="zh">
18<head>
19<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
20<meta http-equiv="X-UA-Compatible" content="IE=edge">
21<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimal-ui">
22<meta name="keywords" content="MNBT控制面板,<?=$conf['name']?>-控制面板">
23<meta name="description" content="MNBT控制面板,<?=$conf['name']?>-控制面板">
24<meta name="author" content="yinq">
25<title><?=$conf['name']?>-控制面板</title>
26<link rel="icon" href="<?=mnbt_asset_url('upload_logo/logo.head.png')?>?<?=$conf['auther']?>" type="image/ico">
27<meta name="apple-mobile-web-app-capable" content="yes">
28<meta name="apple-touch-fullscreen" content="yes">
29<meta name="apple-mobile-web-app-status-bar-style" content="default">
30
31<!-- 基础依赖 -->
32<link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('css/materialdesignicons.min.css')?>">
33<link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('css/bootstrap.min.css')?>">
34<link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('js/bootstrap-multitabs/multitabs.min.css')?>">
35<link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('css/animate.min.css')?>">
36<link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('css/style.min.css')?>">
37
38<!-- 弹窗 -->
39<link rel="stylesheet" type="text/css" href="<?=mnbt_asset_url('js/jquery-confirm/jquery-confirm.min.css')?>">
40
41<!-- ===== StarIDC 新拟态 2.0 主题(覆盖层,放在最末以确保优先级) ===== -->
42<link href="<?=mnbt_theme_asset('user-neomorphism.css')?>" rel="stylesheet">
43
44<script type="text/javascript" src="<?=mnbt_asset_url('js/fn-hs.js')?>"></script>
45
46<style>
47@keyframes rotate { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }
48#iframe_shuax { cursor: pointer; }
49
50/* 侧边栏 logo 区域渐变标题(可选) */
51.sidebar-header .sidebar-brand-text {
52 font-size: 1.3rem;
53 font-weight: 800;
54 background: var(--n-gradient-accent);
55 -webkit-background-clip: text;
56 -webkit-text-fill-color: transparent;
57 background-clip: text;
58 letter-spacing: -0.5px;
59}
60</style>
61</head>
62
63<body>
64<div class="lyear-layout-web">
65<div class="lyear-layout-container">
66<!--左侧导航-->
67<aside class="lyear-layout-sidebar">
68
69<!-- logo -->
70<div id="logo" class="sidebar-header">
71 <a href="index.php">
72 <img src="<?=mnbt_asset_url('upload_logo/logo.index.png')?>?<?=$conf['auther']?>" title="MN_logo" alt="MN_logo" />
73 </a>
74</div>
75<div class="lyear-layout-sidebar-info lyear-scroll">
76<nav class="sidebar-main">
77<ul class="nav-drawer">
78<li class="nav-item active"> <a href="sy.php" class="multitabs"> <i class="mdi mdi-home"></i> <span>控制面板</span> </a> </li>
79<li class="nav-item"> <a href="site_stats.php" class="multitabs"> <i class="mdi mdi-chart-bar"></i> <span>站点统计</span> </a> </li>
80<li class="nav-item nav-item-has-subnav"> <a href="javascript:void(0)"> <i class="mdi mdi-console"></i> <span>基本配置</span> </a>
81 <ul class="nav nav-subnav">
82 <li> <a class="multitabs" href="set.php?gn=php">PHP版本切换</a> </li>
83 <li> <a class="multitabs" href="set.php?gn=url">域名修改</a> </li>
84 <li> <a class="multitabs" href="set.php?gn=pass">设置密码访问</a> </li>
85 <li> <a class="multitabs" href="set.php?gn=mrwd">修改默认文档</a> </li>
86 <li> <a class="multitabs" href="set.php?gn=yxml">设置运行目录</a> </li>
87 <li> <a class="multitabs" href="set.php?gn=wjt">设置伪静态</a> </li>
88 <li> <a class="multitabs" href="set.php?gn=ssl">SSL配置</a> </li>
89 <li> <a class="multitabs" href="set.php?gn=fdl">防盗链</a> </li>
90 <li> <a class="multitabs" href="set.php?gn=gzip">Gzip配置</a> </li>
91 <li> <a class="multitabs" href="set.php?gn=cache">缓存配置</a> </li>
92 <li> <a class="multitabs" href="set.php?gn=xgpass">修改密码</a> </li>
93 </ul>
94</li>
95<li class="nav-item nav-item-has-subnav"> <a href="javascript:void(0)"> <i class="mdi mdi-format-align-justify"></i> <span>数据管理</span> </a>
96 <ul class="nav nav-subnav">
97 <li> <a class="multitabs" href="ftp.php">在线文件管理</a> </li>
98 <li> <a target="_blank" href="mysql.php">SQL管理面板</a> </li>
99 <li> <a class="multitabs" href="sqlgl.php">SQL数据备份</a> </li>
100 <li> <a class="multitabs" href="set.php?gn=mysqlcz">SQL权限设置</a> </li>
101 </ul>
102</li>
103<li class="nav-item nav-item-has-subnav"> <a href="javascript:void(0)"> <i class="mdi mdi-sitemap"></i> <span>网站管理</span> </a>
104 <ul class="nav nav-subnav">
105 <li> <a class="multitabs" href="webgl.php?gn=yjbs">一键部署</a> </li>
106 <li> <a class="multitabs" href="monitor.php">监控任务</a> </li>
107 <li> <a class="multitabs" href="notice.php">通知日志</a> </li>
108 </ul>
109</li>
110<?php
111if (function_exists('mnbt_plugin_render_menu_user_html')) {
112 echo mnbt_plugin_render_menu_user_html();
113}
114?>
115</ul>
116<div class="sidebar-footer">
117 <p class="copyright">
118 <?=$conf['hxp']?>
119 </p>
120</div>
121</div>
122</aside>
123<!--End 左侧导航-->
124
125<!--头部信息-->
126<header class="lyear-layout-header">
127 <nav class="navbar">
128 <div class="navbar-left">
129 <div class="lyear-aside-toggler float-left">
130 <span class="lyear-toggler-bar"></span>
131 <span class="lyear-toggler-bar"></span>
132 <span class="lyear-toggler-bar"></span>
133 </div>
134 <i class="ml-2 mdi mdi-refresh mdi-18px" id="iframe_shuax" style="color: var(--n-muted); cursor: pointer; padding: 6px; border-radius: 50%; box-shadow: 4px 4px 8px var(--n-shadow-dark), -4px -4px 8px var(--n-shadow-light);"></i>
135 </div>
136 <ul class="navbar-right d-flex align-items-center">
137 <!--切换主题配色-->
138 <li class="dropdown dropdown-skin"> <span data-toggle="dropdown" class="icon-item" style="cursor: pointer; padding: 6px; border-radius: 50%; box-shadow: 4px 4px 8px var(--n-shadow-dark), -4px -4px 8px var(--n-shadow-light); color: var(--n-muted); display: inline-flex;"> <i class="mdi mdi-palette"></i> </span>
139 <ul class="dropdown-menu dropdown-menu-right" data-stopPropagation="true">
140 <li class="drop-title">
141 <p>LOGO</p>
142 </li>
143 <li class="drop-skin-li clearfix"> <span class="inverse">
144 <input type="radio" name="logo_bg" value="default" id="logo_bg_1" checked>
145 <label for="logo_bg_1"></label>
146 </span> <span>
147 <input type="radio" name="logo_bg" value="color_2" id="logo_bg_2">
148 <label for="logo_bg_2"></label>
149 </span> <span>
150 <input type="radio" name="logo_bg" value="color_3" id="logo_bg_3">
151 <label for="logo_bg_3"></label>
152 </span> <span>
153 <input type="radio" name="logo_bg" value="color_4" id="logo_bg_4">
154 <label for="logo_bg_4"></label>
155 </span> <span>
156 <input type="radio" name="logo_bg" value="color_5" id="logo_bg_5">
157 <label for="logo_bg_5"></label>
158 </span> <span>
159 <input type="radio" name="logo_bg" value="color_6" id="logo_bg_6">
160 <label for="logo_bg_6"></label>
161 </span> <span>
162 <input type="radio" name="logo_bg" value="color_7" id="logo_bg_7">
163 <label for="logo_bg_7"></label>
164 </span> <span>
165 <input type="radio" name="logo_bg" value="color_8" id="logo_bg_8">
166 <label for="logo_bg_8"></label>
167 </span> </li>
168 <li class="drop-title">
169 <p>头部</p>
170 </li>
171 <li class="drop-skin-li clearfix"> <span class="inverse">
172 <input type="radio" name="header_bg" value="default" id="header_bg_1" checked>
173 <label for="header_bg_1"></label>
174 </span> <span>
175 <input type="radio" name="header_bg" value="color_2" id="header_bg_2">
176 <label for="header_bg_2"></label>
177 </span> <span>
178 <input type="radio" name="header_bg" value="color_3" id="header_bg_3">
179 <label for="header_bg_3"></label>
180 </span> <span>
181 <input type="radio" name="header_bg" value="color_4" id="header_bg_4">
182 <label for="header_bg_4"></label>
183 </span> <span>
184 <input type="radio" name="header_bg" value="color_5" id="header_bg_5">
185 <label for="header_bg_5"></label>
186 </span> <span>
187 <input type="radio" name="header_bg" value="color_6" id="header_bg_6">
188 <label for="header_bg_6"></label>
189 </span> <span>
190 <input type="radio" name="header_bg" value="color_7" id="header_bg_7">
191 <label for="header_bg_7"></label>
192 </span> <span>
193 <input type="radio" name="header_bg" value="color_8" id="header_bg_8">
194 <label for="header_bg_8"></label>
195 </span> </li>
196 <li class="drop-title">
197 <p>侧边栏</p>
198 </li>
199 <li class="drop-skin-li clearfix"> <span class="inverse">
200 <input type="radio" name="sidebar_bg" value="default" id="sidebar_bg_1" checked>
201 <label for="sidebar_bg_1"></label>
202 </span> <span>
203 <input type="radio" name="sidebar_bg" value="color_2" id="sidebar_bg_2">
204 <label for="sidebar_bg_2"></label>
205 </span> <span>
206 <input type="radio" name="sidebar_bg" value="color_3" id="sidebar_bg_3">
207 <label for="sidebar_bg_3"></label>
208 </span> <span>
209 <input type="radio" name="sidebar_bg" value="color_4" id="sidebar_bg_4">
210 <label for="sidebar_bg_4"></label>
211 </span> <span>
212 <input type="radio" name="sidebar_bg" value="color_5" id="sidebar_bg_5">
213 <label for="sidebar_bg_5"></label>
214 </span> <span>
215 <input type="radio" name="sidebar_bg" value="color_6" id="sidebar_bg_6">
216 <label for="sidebar_bg_6"></label>
217 </span> <span>
218 <input type="radio" name="sidebar_bg" value="color_7" id="sidebar_bg_7">
219 <label for="sidebar_bg_7"></label>
220 </span> <span>
221 <input type="radio" name="sidebar_bg" value="color_8" id="sidebar_bg_8">
222 <label for="sidebar_bg_8"></label>
223 </span> </li>
224 </ul>
225 </li>
226 <!--切换主题配色-->
227 <li class="dropdown dropdown-profile"> <a href="javascript:void(0)" data-toggle="dropdown" class="dropdown-toggle"> <img class="img-avatar img-avatar-48 m-r-10" src="<?=mnbt_asset_url('upload_logo/logo.head.png')?>?<?=$conf['auther']?>" alt="<?=$user?>" /> <span>
228 <?=$user?>
229 </span> </a>
230 <ul class="dropdown-menu dropdown-menu-right">
231 <li> <a class="dropdown-item" onclick="chteci();"> <i class="mdi mdi-logout-variant"> 退出登录</i> </a> </li>
232 </ul>
233 </li>
234 </ul>
235 </nav>
236</header>
237<!--End 头部信息-->
238
239<!--页面主要内容-->
240<main class="lyear-layout-content">
241 <div id="iframe-content"></div>
242</main>
243<!--End 页面主要内容-->
244</div>
245</div>
246
247<!-- Scripts -->
248<script type="text/javascript" src="<?=mnbt_asset_url('js/jquery.min.js')?>"></script>
249<script type="text/javascript" src="<?=mnbt_asset_url('js/popper.min.js')?>"></script>
250<script type="text/javascript" src="<?=mnbt_asset_url('js/bootstrap.min.js')?>"></script>
251<script type="text/javascript" src="<?=mnbt_asset_url('js/perfect-scrollbar.min.js')?>"></script>
252<script type="text/javascript" src="<?=mnbt_asset_url('js/bootstrap-multitabs/multitabs.min.js')?>"></script>
253<script type="text/javascript" src="<?=mnbt_asset_url('js/jquery.cookie.min.js')?>"></script>
254<script type="text/javascript" src="<?=mnbt_asset_url('js/index.min.js')?>"></script>
255
256<!-- 消息提示 -->
257<script type="text/javascript" src="<?=mnbt_asset_url('js/jquery-confirm/jquery-confirm.min.js')?>"></script>
258<script type="text/javascript" src="<?=mnbt_asset_url('js/lyear-loading.js')?>"></script>
259<script type="text/javascript" src="<?=mnbt_asset_url('js/main.min.js')?>"></script>
260<script type="text/javascript" src="<?=mnbt_asset_url('js/fn-hs.js')?>"></script>
261<script type="text/javascript" src="<?=mnbt_asset_url('js/bootstrap-notify.min.js')?>"></script>
262
263<script type="text/javascript">
264function xiaole()
265{
266 $.confirm({
267 title: '邮箱绑定',
268 content: '<div class="form-group p-1 mb-0">' +
269 ' <label class="control-label">请输入你的邮箱,必须输入邮箱</label>' +
270 ' <input autofocus="" type="text" id="input-name" placeholder="请输入您的邮箱" class="form-control">' +
271 '</div>',
272 buttons: {
273 sayMyName: {
274 text: '提交',
275 btnClass: 'btn-primary',
276 action: function() {
277 var input = this.$content.find('input#input-name');
278 var emailRegex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
279 if (!emailRegex.test(input.val()) || !$.trim(input.val())) {
280 $.alert({ content: "邮箱错误", type: 'red' });
281 return false;
282 }
283 msloading('正在处理中,请稍后...');
284 let data = {};
285 data["gn"] = "mailbd";
286 data['mail'] = input.val();
287 $.post('./ajax.php', data, function (date) {
288 var jsoe = JSON.parse(date);
289 var qk = jsoe.code;
290 if (qk == "绑定成功") {
291 msalert(1, '绑定成功!将在两秒后跳转登录!', 2000);
292 setTimeout(function() { window.location.href = "./index.php"; }, 2000);
293 } else {
294 msalert(4, qk, 2000);
295 setTimeout(function() { window.location.href = "./index.php"; }, 2000);
296 }
297 });
298 }
299 }
300 }
301 });
302}
303
304function chteci() {
305 msloading('正在退出登录中...', 'text-info', 'text-info');
306 let data = {};
307 data["gn"] = "login";
308 data["logout"] = "tclogin";
309 $.post('./ajax.php', data, function (date) {
310 var jsoe = JSON.parse(date);
311 var qk = jsoe.code;
312 msalert(1, qk, 2000);
313 window.location.href = "./login.php";
314 msloadingde();
315 });
316}
317
318//页面加载动画
319$thisTabs = $('#iframe-content');
320var datasl = [];
321$thisTabs.bind('DOMNodeInserted', function() {
322 var xzl = $(this)[0].innerText;
323 var dqs = xzl.split('\n');
324 if (datasl.indexOf(dqs[dqs.length-1]) == -1) {
325 setTimeout(function() {
326 var $thisTabs = parent.$('.mt-nav-bar .nav-tabs').find('a.active');
327 var ifarid = $thisTabs.attr('data-id');
328 $('#'+ifarid).contents().find('body').html(
329 '<link href="<?=mnbt_asset_url('css/style.min.css')?>" rel="stylesheet">'+
330 '<link href="<?=mnbt_asset_url('css/bootstrap.min.css')?>" rel="stylesheet">'+
331 '<link href="<?=mnbt_asset_url('css/index.loading.css')?>" rel="stylesheet">'+
332 '<div class="loading_upds"><div class="ctn-preloader"><div class="round_spinner"><div class="spinner"></div><img src="<?=mnbt_asset_url('upload_logo/logo.head.png')?>?<?=$conf['auther']?>" alt=""></div></div></div>'
333 );
334 }, 2);
335 }
336 datasl = dqs;
337});
338
339//页面刷新
340$("#iframe_shuax").on('click', function() {
341 var $thisTabs = parent.$('.mt-nav-bar .nav-tabs').find('a.active');
342 var ifarid = $thisTabs.attr('data-id');
343 $(this).css({ animation: "rotate 0.5s linear 1", display: "inline-block" });
344 setTimeout(function() { $("#iframe_shuax").removeAttr('style'); }, 500);
345
346 $('#'+ifarid).contents().find('body').html(
347 '<link href="<?=mnbt_asset_url('css/style.min.css')?>" rel="stylesheet">'+
348 '<link href="<?=mnbt_asset_url('css/bootstrap.min.css')?>" rel="stylesheet">'+
349 '<link href="<?=mnbt_asset_url('css/index.loading.css')?>" rel="stylesheet">'+
350 '<div class="loading_upds"><div class="ctn-preloader"><div class="round_spinner"><div class="spinner"></div><img src="<?=mnbt_asset_url('upload_logo/logo.head.png')?>?<?=$conf['auther']?>" alt=""></div></div></div>'
351 );
352
353 $('#'+ifarid).attr('src', $('#'+ifarid).attr('src'));
354});
355</script>
356</body>
357</html>
358<?php
359if($conf['zjyxbd'] == "true")
360{
361 if($yhc['mailuser'] == "" || $yhc['mailuser'] == null)
362 {
363 echo '<script>xiaole()</script>';
364 }
365}
366?>