/[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.12 - (show annotations)
Wed Apr 23 05:56:10 2025 UTC (10 months, 3 weeks ago) by sysadm
Branch: MAIN
Changes since 1.11: +1 -1 lines
Rename preference_service.php to user_service_update_pref.php

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

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