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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.12 - (hide annotations)
Thu Oct 30 15:52:32 2025 UTC (4 months, 2 weeks ago) by sysadm
Branch: MAIN
Changes since 1.11: +3 -1 lines
Update width limit

1 sysadm 1.1 <?php
2     // Prevent load standalone
3     if (!isset($result_set))
4     {
5     exit();
6     }
7    
8 sysadm 1.12 require_once "../lib/lml.inc.php";
9     require_once "../lib/str_process.inc.php";
10 sysadm 1.1 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 sysadm 1.2 instance.post('user_service_transfer_score.php', {
35 sysadm 1.1 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 sysadm 1.4 <?php
295 sysadm 1.5 foreach($result_set["data"]["current_action"] as $current_action)
296 sysadm 1.4 {
297 sysadm 1.5 switch($current_action)
298     {
299     case "MENU":
300     $current_action_name = "菜单选择";
301     break;
302 sysadm 1.8 case "LOGIN":
303     $current_action_name = "进入大厅";
304     break;
305 sysadm 1.7 case "USER_LIST":
306     $current_action_name = "查花名册";
307     break;
308     case "USER_ONLINE":
309     $current_action_name = "环顾四周";
310     break;
311 sysadm 1.5 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 sysadm 1.11 case "WWW":
333 sysadm 1.6 $current_action_name = "Web浏览";
334     break;
335 sysadm 1.5 default:
336 sysadm 1.6 $current_action_name = $current_action;
337 sysadm 1.5 }
338 sysadm 1.4
339 sysadm 1.5 if ($current_action_name != "")
340     {
341     echo " <font color=green>[" . $current_action_name . "]</font>";
342     }
343 sysadm 1.4 }
344     ?>
345 sysadm 1.1 </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 sysadm 1.12 <pre><?= split_line(LML(htmlspecialchars($result_set["data"]["introduction"], ENT_HTML401, 'UTF-8'), true, 80 + 1), "", 80, 10); ?></pre>
464 sysadm 1.1 </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