/[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.14 - (show annotations)
Fri Oct 31 06:22:33 2025 UTC (4 months, 2 weeks ago) by sysadm
Branch: MAIN
Changes since 1.13: +1 -1 lines
Adopt new LML() with html_trans and new str_length() with skip_ctrl_seq

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

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