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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.8 - (hide annotations)
Mon Apr 14 02:13:02 2025 UTC (11 months ago) by sysadm
Branch: MAIN
Changes since 1.7: +8 -3 lines
Add photo upload

1 sysadm 1.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 sysadm 1.4 <link rel="stylesheet" href="<? echo get_theme_file('css/default'); ?>" type="text/css">
13 sysadm 1.1 <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 sysadm 1.5 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 sysadm 1.7 s.selectedIndex = i;
24 sysadm 1.5 break;
25     }
26     }
27    
28     return false;
29     }
30    
31 sysadm 1.1 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 sysadm 1.5 user_tz: f.user_tz.value,
52 sysadm 1.1 photo: f.photo.value,
53 sysadm 1.8 photo_file: f.photo_file.files,
54 sysadm 1.1 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 sysadm 1.8 }, {
59     headers: {
60     'Content-Type': 'multipart/form-data',
61     }
62 sysadm 1.1 })
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 sysadm 1.4 include get_theme_file("view/member_service_guide");
117 sysadm 1.1 ?>
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 sysadm 1.6 <form method="post" action="#" id="preference_form" name="preference_form">
122 sysadm 1.1 <table border="1" cellpadding="10" cellspacing="0" width="90%" bgcolor="#ffdead" id="TABLE1">
123     <tr>
124 sysadm 1.5 <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 sysadm 1.1 <td width="30%" align="right">个人头像</td>
143     <td width="70%">
144 sysadm 1.8 <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 sysadm 1.1 </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 sysadm 1.6 限10行80列以内
155 sysadm 1.1 </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 sysadm 1.6 限10行80列以内
163 sysadm 1.1 </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 sysadm 1.6 限10行80列以内
171 sysadm 1.1 </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 sysadm 1.6 限10行80列以内
179 sysadm 1.1 </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