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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (show annotations)
Mon Apr 14 11:23:46 2025 UTC (11 months ago) by sysadm
Branch: MAIN
Changes since 1.8: +3 -3 lines
Update page layout

1 <?
2 // Prevent load standalone
3 if (!isset($result_set))
4 {
5 exit();
6 }
7 ?>
8 <html>
9 <head>
10 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
11 <title>更改个人设定</title>
12 <link rel="stylesheet" href="<? echo get_theme_file('css/default'); ?>" type="text/css">
13 <script type="text/javascript" src="../js/nw_open.js"></script>
14 <script src="../js/polyfill.min.js"></script>
15 <script src="../js/axios.min.js"></script>
16 <script type="text/javascript">
17 function tz_select(s, value)
18 {
19 for (i = 0; i < s.options.length; i++)
20 {
21 if (s.options[i].value == value)
22 {
23 s.selectedIndex = i;
24 break;
25 }
26 }
27
28 return false;
29 }
30
31 function refresh_err_msg(errorFieldMap)
32 {
33 document.getElementsByName("err_msg").forEach(element => {
34 element.innerHTML = (errorFieldMap.has(element.id) ? errorFieldMap.get(element.id) : "");
35 });
36 }
37
38 function refresh_textarea(updateFieldMap)
39 {
40 document.getElementsByName("textarea").forEach(element => {
41 if (updateFieldMap.has(element.id))
42 {
43 element.value = updateFieldMap.get(element.id);
44 }
45 });
46 }
47
48 function update_preference(f)
49 {
50 instance.post('preference_service.php', {
51 user_tz: f.user_tz.value,
52 photo: f.photo.value,
53 photo_file: f.photo_file.files,
54 introduction: f.textarea_introduction.value,
55 sign_1: f.textarea_sign_1.value,
56 sign_2: f.textarea_sign_2.value,
57 sign_3: f.textarea_sign_3.value,
58 }, {
59 headers: {
60 'Content-Type': 'multipart/form-data',
61 }
62 })
63 .then(function (response) {
64 var ret = response.data;
65 var errorFieldMap = new Map();
66 var updateFieldMap = new Map();
67 switch (ret.return.code)
68 {
69 case 0: // OK
70 errorFieldMap.set("err_msg_prompt", "更新成功");
71 refresh_err_msg(errorFieldMap);
72 break;
73 case -1: // Input validation failed
74 ret.return.errorFields.forEach(field => {
75 errorFieldMap.set("err_msg_" + field.id, field.errMsg + "<br />");
76 updateFieldMap.set("textarea_" + field.id, field.updateValue);
77 });
78 refresh_err_msg(errorFieldMap);
79 refresh_textarea(updateFieldMap);
80 break;
81 case -2: // Internal error
82 console.log(ret.return.message);
83 errorFieldMap.set("err_msg_prompt", "内部错误");
84 refresh_err_msg(errorFieldMap);
85 break;
86 default:
87 console.log(ret.return.code);
88 break;
89 }
90 })
91 .catch(function (error) {
92 console.log(error);
93 });
94
95 return false;
96 }
97
98 const instance = axios.create({
99 withCredentials: true,
100 timeout: 3000,
101 baseURL: document.location.protocol + '//' + document.location.hostname + (document.location.port=='' ? '' : (':' + document.location.port)) + '/bbs/',
102 });
103
104 window.addEventListener("load", () => {
105 var f = document.getElementById("preference_form");
106 f.addEventListener("submit", (e) => {
107 e.preventDefault();
108 update_preference(f);
109 });
110 });
111
112 </script>
113 </head>
114 <body>
115 <?
116 include get_theme_file("view/member_service_guide");
117 ?>
118 <center>
119 <p style="FONT-WEIGHT: bold; FONT-SIZE: 16px; COLOR: red; FONT-FAMILY: 楷体">更改个人设定</p>
120 <p><span id="err_msg_prompt" name="err_msg" style="color: red"></span></p>
121 <form method="post" action="#" id="preference_form" name="preference_form">
122 <table border="1" cellpadding="10" cellspacing="0" width="1050" bgcolor="#ffdead">
123 <tr>
124 <td align="right">时区设置</td>
125 <td>
126 <span id="err_msg_user_tz" name="err_msg" style="color: red;"></span>
127 <select id="user_tz" name="user_tz" size="1">
128 <?
129 $timezone_identifiers = DateTimeZone::listIdentifiers();
130 foreach ($timezone_identifiers as $tz)
131 {
132 ?>
133 <option value="<? echo $tz; ?>" <? echo ($tz == $result_set["data"]["user_tz"] ? "selected" : ""); ?>><? echo $tz; ?></option>
134 <?
135 }
136 ?>
137 </select>
138 <a class="s2" href="#" onclick="return tz_select(user_tz, '<? echo $BBS_timezone; ?>');">恢复默认</a>
139 </td>
140 </tr>
141 <tr>
142 <td width="25%" align="right">个人头像</td>
143 <td width="75%">
144 <a class="s2" href="#" onclick="return NW_open('facelist.php', 'bbs_face', 250, 400);">选择系统头像</a>
145 <input type="text" maxlength="3" id="photo" name="photo" size="3" value="<? echo $result_set["data"]["photo"]; ?>"><br />
146 上传头像:<input type="file" size="20" name="photo_file" id="photo_file"><span id="err_msg_photo_file" name="err_msg" style="color: red;"></span>
147 </td>
148 </tr>
149 <tr>
150 <td align="right">个人介绍</td>
151 <td>
152 <span id="err_msg_introduction" name="err_msg" style="color: red;"></span>
153 <textarea id="textarea_introduction" name="textarea" cols="80" rows="7"><? echo htmlspecialchars($result_set["data"]["introduction"], ENT_HTML401, 'UTF-8'); ?></textarea>
154 限10行80列以内
155 </td>
156 </tr>
157 <tr>
158 <td align="right">签名1</td>
159 <td>
160 <span id="err_msg_sign_1" name="err_msg" style="color: red;"></span>
161 <textarea id="textarea_sign_1" name="textarea" cols="80" rows="7"><? echo htmlspecialchars($result_set["data"]["sign_1"], ENT_HTML401, 'UTF-8'); ?></textarea>
162 限10行80列以内
163 </td>
164 </tr>
165 <tr>
166 <td align="right">签名2</td>
167 <td>
168 <span id="err_msg_sign_2" name="err_msg" style="color: red;"></span>
169 <textarea id="textarea_sign_2" name="textarea" cols="80" rows="7"><? echo htmlspecialchars($result_set["data"]["sign_2"], ENT_HTML401, 'UTF-8'); ?></textarea>
170 限10行80列以内
171 </td>
172 </tr>
173 <tr>
174 <td align="right">签名3</td>
175 <td>
176 <span id="err_msg_sign_3" name="err_msg" style="color: red;"></span>
177 <textarea id="textarea_sign_3" name="textarea" cols="80" rows="7"><? echo htmlspecialchars($result_set["data"]["sign_3"], ENT_HTML401, 'UTF-8'); ?></textarea>
178 限10行80列以内
179 </td>
180 </tr>
181 </table>
182 <p>
183 <input type="submit" value="提交" name="Submit">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
184 <input type="reset" value="重填" name="Reset">
185 </p>
186 </form>
187 </center>
188 </body>
189 </html>

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