/[LeafOK_CVS]/fenglin/bbs/themes/default/view_user.view.php
ViewVC logotype

Contents of /fenglin/bbs/themes/default/view_user.view.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.11 - (show annotations)
Fri Oct 24 10:58:43 2025 UTC (4 months, 3 weeks ago) by sysadm
Branch: MAIN
Changes since 1.10: +1 -1 lines
Add action

1 <?php
2 // Prevent load standalone
3 if (!isset($result_set))
4 {
5 exit();
6 }
7
8 require_once "../lib/astro.inc.php";
9 ?>
10 <html>
11 <head>
12 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
13 <title>查看用户资料</title>
14 <link rel="stylesheet" href="<?= get_theme_file('css/default'); ?>" type="text/css">
15 <script src="../js/polyfill.min.js"></script>
16 <script src="../js/axios.min.js"></script>
17 <script type="text/javascript">
18 function refresh_err_msg(errorFieldMap)
19 {
20 document.getElementsByName("err_msg").forEach(element => {
21 element.innerHTML = (errorFieldMap.has(element.id) ? errorFieldMap.get(element.id) : "");
22 });
23 }
24
25 function transfer_score(f)
26 {
27 if (window.confirm('真的要转让吗?') == false)
28 {
29 return false;
30 }
31
32 instance.post('user_service_transfer_score.php', {
33 uid: <?= $result_set["data"]["uid"]; ?>,
34 amount: f.amount.value,
35 })
36 .then(function (response) {
37 var ret = response.data;
38 var errorFieldMap = new Map();
39 switch (ret.return.code)
40 {
41 case 0: // OK
42 errorFieldMap.set("err_msg_transfer", "积分转让成功<br />");
43 refresh_err_msg(errorFieldMap);
44 break;
45 case -1: // Input validation failed
46 ret.return.errorFields.forEach(field => {
47 errorFieldMap.set("err_msg_" + field.id, field.errMsg + "<br />");
48 });
49 refresh_err_msg(errorFieldMap);
50 break;
51 case -2: // Internal error
52 console.log(ret.return.message);
53 errorFieldMap.set("err_msg_transfer", "内部错误<br />");
54 refresh_err_msg(errorFieldMap);
55 break;
56 default:
57 console.log(ret.return.code);
58 break;
59 }
60 })
61 .catch(function (error) {
62 console.log(error);
63 });
64
65 return false;
66 }
67
68 function set_life(f)
69 {
70 instance.post('user_service_life.php', {
71 uid: <?= $result_set["data"]["uid"]; ?>,
72 life: f.life.value,
73 })
74 .then(function (response) {
75 var ret = response.data;
76 var errorFieldMap = new Map();
77 switch (ret.return.code)
78 {
79 case 0: // OK
80 refresh_err_msg(errorFieldMap);
81 document.location = "view_user.php?uid=<?= $result_set["data"]["uid"]; ?>&ts=" + Date.now();
82 break;
83 case -1: // Input validation failed
84 errorFieldMap.set("err_msg_life", ret.return.message + "<br />");
85 refresh_err_msg(errorFieldMap);
86 break;
87 case -2: // Internal error
88 console.log(ret.return.message);
89 errorFieldMap.set("err_msg_life", "内部错误<br />");
90 refresh_err_msg(errorFieldMap);
91 break;
92 default:
93 console.log(ret.return.code);
94 break;
95 }
96 })
97 .catch(function (error) {
98 console.log(error);
99 });
100
101 return false;
102 }
103
104 function ban_user(f)
105 {
106 instance.post('user_service_ban.php', {
107 uid: <?= $result_set["data"]["uid"]; ?>,
108 ban: f.ban.value,
109 sid: f.sid.value,
110 day: f.day.value,
111 reason: f.reason.value,
112 })
113 .then(function (response) {
114 var ret = response.data;
115 var errorFieldMap = new Map();
116 switch (ret.return.code)
117 {
118 case 0: // OK
119 errorFieldMap.set("err_msg_ban", "操作成功<br />");
120 refresh_err_msg(errorFieldMap);
121 break;
122 case -1: // Input validation failed
123 errorFieldMap.set("err_msg_ban", ret.return.message + "<br />");
124 refresh_err_msg(errorFieldMap);
125 break;
126 case -2: // Internal error
127 console.log(ret.return.message);
128 errorFieldMap.set("err_msg_ban", "内部错误<br />");
129 refresh_err_msg(errorFieldMap);
130 break;
131 default:
132 console.log(ret.return.code);
133 break;
134 }
135 })
136 .catch(function (error) {
137 console.log(error);
138 });
139
140 return false;
141 }
142
143 function set_friend(set)
144 {
145 instance.post('user_service_friend.php', {
146 uid: <?= $result_set["data"]["uid"]; ?>,
147 set: set,
148 })
149 .then(function (response) {
150 var ret = response.data;
151 var errorFieldMap = new Map();
152 switch (ret.return.code)
153 {
154 case 0: // OK
155 case 1: // Already set
156 refresh_err_msg(errorFieldMap);
157 document.location = "view_user.php?uid=<?= $result_set["data"]["uid"]; ?>&ts=" + Date.now();
158 break;
159 case -1: // Input validation failed
160 errorFieldMap.set("err_msg_friend", ret.return.message);
161 refresh_err_msg(errorFieldMap);
162 break;
163 case -2: // Internal error
164 console.log(ret.return.message);
165 errorFieldMap.set("err_msg_friend", "内部错误");
166 refresh_err_msg(errorFieldMap);
167 break;
168 default:
169 console.log(ret.return.code);
170 break;
171 }
172 })
173 .catch(function (error) {
174 console.log(error);
175 });
176
177 return false;
178 }
179
180 const instance = axios.create({
181 withCredentials: true,
182 timeout: 3000,
183 baseURL: document.location.protocol + '//' + document.location.hostname + (document.location.port=='' ? '' : (':' + document.location.port)) + '/bbs/',
184 });
185
186 window.addEventListener("load", () => {
187 var f1 = document.getElementById("transfer_score");
188 if (f1)
189 {
190 f1.addEventListener("submit", (e) => {
191 e.preventDefault();
192 transfer_score(f1);
193 });
194 }
195
196 var f2 = document.getElementById("set_life");
197 if (f2)
198 {
199 f2.addEventListener("submit", (e) => {
200 e.preventDefault();
201 set_life(f2);
202 });
203 }
204
205 var f3 = document.getElementById("ban_user");
206 if (f3)
207 {
208 f3.addEventListener("submit", (e) => {
209 e.preventDefault();
210 ban_user(f3);
211 });
212 }
213
214 });
215
216 </script>
217 </head>
218 <body>
219 <center>
220 <table border="0" cellpadding="0" cellspacing="10" width="1050">
221 <tr>
222 <td colspan="2" align="center" style="font-size: 16px; font-family: 楷体; font-weight: bold; color: red">
223 <?= $result_set["data"]["username"]; ?>的个人资料
224 </td>
225 </tr>
226 <tr height="1" bgcolor="gray">
227 <td colspan="2">
228 </td>
229 </tr>
230 <tr>
231 <td width="35%" align="right">
232 头像:
233 </td>
234 <td width="65%">
235 <img src="<?= $result_set["data"]["photo"]; ?>" border="0">
236 </td>
237 </tr>
238 <tr height="1" bgcolor="gray">
239 <td colspan="2">
240 </td>
241 </tr>
242 <tr>
243 <td align="right">
244 昵称:
245 </td>
246 <td>
247 <span style="color: #909090; ">
248 <?= $result_set["data"]["nickname"]; ?>
249 </span>
250 </td>
251 </tr>
252 <tr>
253 <td align="right">
254 星座:
255 </td>
256 <td>
257 <?php
258 $astro = Date2Astro(intval($result_set["data"]["birthday"]->format("m")), intval($result_set["data"]["birthday"]->format("d"))) . "座";
259
260 if ($result_set["data"]["gender_pub"])
261 {
262 if ($result_set["data"]["gender"] == "M")
263 {
264 ?><span style="color:blue;"><?= $astro; ?></span><?php
265 }
266 else if ($result_set["data"]["gender"] == "F")
267 {
268 ?><span style="color:red;"><?= $astro; ?></span><?php
269 }
270 }
271 else
272 {
273 ?><span style="color:green;"><?= $astro; ?></span><?php
274 }
275 ?>
276 </td>
277 </tr>
278 <tr>
279 <td align="right">
280 注册时间:
281 </td>
282 <td>
283 <?= $result_set["data"]["signup_dt"]->format("Y年m月d日 H:i:s"); ?>
284 </td>
285 </tr>
286 <tr>
287 <td align="right">
288 最后活动:
289 </td>
290 <td>
291 <?= $result_set["data"]["last_tm"]->format("Y年m月d日 H:i:s"); ?>
292 <?php
293 foreach($result_set["data"]["current_action"] as $current_action)
294 {
295 switch($current_action)
296 {
297 case "MENU":
298 $current_action_name = "菜单选择";
299 break;
300 case "LOGIN":
301 $current_action_name = "进入大厅";
302 break;
303 case "USER_LIST":
304 $current_action_name = "查花名册";
305 break;
306 case "USER_ONLINE":
307 $current_action_name = "环顾四周";
308 break;
309 case "VIEW_FILE":
310 $current_action_name = "查看文档";
311 break;
312 case "VIEW_ARTICLE":
313 $current_action_name = "阅读文章";
314 break;
315 case "POST_ARTICLE":
316 $current_action_name = "撰写文章";
317 break;
318 case "EDIT_ARTICLE":
319 $current_action_name = "修改文章";
320 break;
321 case "REPLY_ARTICLE":
322 $current_action_name = "回复文章";
323 break;
324 case "BBS_NET":
325 $current_action_name = "站点穿梭";
326 break;
327 case "CHICKEN":
328 $current_action_name = "电子小鸡";
329 break;
330 case "WWW":
331 $current_action_name = "Web浏览";
332 break;
333 default:
334 $current_action_name = $current_action;
335 }
336
337 if ($current_action_name != "")
338 {
339 echo " <font color=green>[" . $current_action_name . "]</font>";
340 }
341 }
342 ?>
343 </td>
344 </tr>
345 <tr>
346 <td align="right">
347 源IP地址:
348 </td>
349 <td>
350 <?= $result_set["data"]["ip"]; ?>
351 </td>
352 </tr>
353 <tr>
354 <td align="right">
355 经验值&nbsp;/&nbsp;生命值:
356 </td>
357 <td>
358 <span style="color: blue"><?= $result_set["data"]["exp"] . "&nbsp;/&nbsp;" . $result_set["data"]["life"]; ?></span>
359 </td>
360 </tr>
361 <?php
362 if ($_SESSION["BBS_priv"]->checklevel(P_ADMIN_M | P_ADMIN_S))
363 {
364 ?>
365 <tr>
366 <td>
367 </td>
368 <td>
369 <form method="POST" action="#" id="set_life" name="set_life">
370 <span id="err_msg_life" name="err_msg" style="color: red;"></span>
371 <input name="life" value="<?= $result_set["data"]["life"]; ?>" size="3">&nbsp;&nbsp;
372 <input type="submit" value="授予">
373 </form>
374 <?php
375 }
376 ?>
377 </td>
378 </tr>
379 <tr>
380 <td align="right">
381 等级:
382 </td>
383 <td>
384 <span style="color:orange; ">
385 <?= user_level($result_set["data"]["exp"]); ?>
386 </span>
387 </td>
388 </tr>
389 <tr>
390 <td align="right">
391 状态:
392 </td>
393 <td>
394 <?php
395 if (!$result_set["data"]["dead"] && $result_set["data"]["verified"])
396 {
397 if ($result_set["data"]["p_all"])
398 {
399 ?><span style="color: green">正常</span><?php
400 }
401 if (!$result_set["data"]["p_login"])
402 {
403 ?><span style="color: red">限制登陆</span><?php
404 }
405 if (!$result_set["data"]["p_post"])
406 {
407 ?><span style="color: red">限制发帖</span><?php
408 }
409 if (!$result_set["data"]["p_msg"])
410 {
411 ?><span style="color: red">限制消息</span><?php
412 }
413 }
414 else
415 {
416 if (!$result_set["data"]["verified"])
417 {
418 ?><span style="color: red">尚未确认</span><?php
419 }
420 if ($result_set["data"]["dead"])
421 {
422 ?><span style="color: red">已升天</span><?php
423 }
424 }
425
426 if ($result_set["data"]["online"])
427 {
428 ?>&nbsp;&nbsp;<span style="color: blue">在线</span><?php
429 }
430 else
431 {
432 ?>&nbsp;&nbsp;<span style="color: gray">离线</span><?php
433 }
434 ?>
435 </td>
436 </tr>
437 <tr>
438 <td align="right">
439 最近发表的主题:
440 </td>
441 <td>
442 <a class="s7" href="search_article.php?uid=<?= $result_set["data"]["uid"]; ?>" target=_blank>查看&gt;&gt;</a>
443 </td>
444 </tr>
445 <tr height="1" bgcolor="gray">
446 <td colspan="2">
447 </td>
448 </tr>
449 <tr>
450 <td align="right">
451 个人介绍:
452 </td>
453 <td>
454 </td>
455 </tr>
456 <tr>
457 <td colspan="2" align="center">
458 <table border="0" cellspacing="0" cellpadding="0" width="80%">
459 <tr>
460 <td style="color:gray; font-size:14px;">
461 <pre><?= LML(htmlspecialchars($result_set["data"]["introduction"], ENT_HTML401, 'UTF-8'), true, 80); ?></pre>
462 </td>
463 </tr>
464 </table>
465 </td>
466 </tr>
467 <tr height="1" bgcolor="gray">
468 <td colspan="2">
469 </td>
470 </tr>
471 <tr>
472 <td align="right">
473 用户操作:
474 </td>
475 <td>
476 <?php
477 if ($_SESSION["BBS_priv"]->checkpriv(0, S_MSG) && $result_set["data"]["uid"] != $BBS_sys_uid)
478 {
479 ?>
480 <a class="s2" href="msg_read.php?sent=1&uid=<?= $result_set["data"]["uid"]; ?>" target=_blank>发送消息</a>
481 <?php
482 }
483
484 if ($_SESSION["BBS_uid"] > 0 && $_SESSION["BBS_uid"] != $result_set["data"]["uid"])
485 {
486 ?>
487 <a class="s2" href="#" onclick="return set_friend(<?= ($result_set["data"]["is_friend"] ? 0 : 1); ?>);"><?= ($result_set["data"]["is_friend"]? "删除好友" : "加为好友"); ?></a>
488 <span id="err_msg_friend" name="err_msg" style="color: red;"></span>
489 <?php
490 }
491 ?>
492 </td>
493 </tr>
494 <?php
495 if ($_SESSION["BBS_uid"] > 0 && $_SESSION["BBS_uid"] != $result_set["data"]["uid"])
496 {
497 ?>
498 <tr>
499 <td align="right">
500 积分转让:
501 </td>
502 <td>
503 <span id="err_msg_transfer" name="err_msg" style="color: red;"></span>
504 <form method="post" action="#" id="transfer_score" name="transfer_score">
505 <input id="amount" name="amount" value="0" size="3">&nbsp;&nbsp;
506 <input type="submit" value="转让">
507 </form>
508 转让额必须是10的倍数,单次限额10000。<br />
509 <span style="color:red; ">服务费率为转让额的10%</span>
510 </td>
511 </tr>
512 <?php
513 }
514
515 if ($_SESSION["BBS_priv"]->checklevel(P_ADMIN_M | P_ADMIN_S | P_MAN_M))
516 {
517 ?>
518 <tr height="1" bgcolor="gray">
519 <td colspan="2">
520 </td>
521 </tr>
522 <tr>
523 <td align="right">
524 封禁权限:
525 </td>
526 <td>
527 <form method="POST" action="#" id="ban_user" name="ban_user">
528 <p>
529 <span id="err_msg_ban" name="err_msg" style="color: red;"></span>
530 <input type="radio" name="ban" value="1" checked>封
531 <input type="radio" name="ban" value="0">解封
532 <select id="sid" name="sid" size="1">
533 <option value="0">全站发帖</option>
534 <option value="-1">用户登录</option>
535 <option value="-2">站内消息</option>
536 <?php
537 foreach ($result_set["data"]["section_hierachy"] as $c_index => $section_class)
538 {
539 ?>
540 <option value="-100">==<?= $section_class["title"]; ?>==</option>
541 <?php
542 foreach ($section_class["sections"] as $s_index => $section)
543 {
544 ?>
545 <option value="<?= $section["sid"]; ?>">&nbsp;&nbsp;├<?= $section["title"]; ?></option>
546 <?php
547 }
548 }
549 ?>
550 </select>
551 权限
552 <input name="day" size="3">天(最多365)<br />
553 理由:<br />
554 <textarea name="reason" cols="40" rows="5"></textarea>
555 </p>
556 <input type="submit" value="提交">
557 </form>
558 </td>
559 </tr>
560 <?php
561 }
562 ?>
563 <tr height="1" bgcolor="gray">
564 <td colspan="2">
565 </td>
566 </tr>
567 </table>
568 </center>
569 </body>
570 </html>

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1