/[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.17 - (show annotations)
Wed Dec 3 05:44:29 2025 UTC (3 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.16: +2 -42 lines
Refact user_action mapping

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

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