/[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.10 - (hide annotations)
Sat Apr 19 11:49:45 2025 UTC (10 months, 4 weeks ago) by sysadm
Branch: MAIN
Changes since 1.9: +7 -1 lines
Merge JS code to web page

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 src="../js/polyfill.min.js"></script>
14     <script src="../js/axios.min.js"></script>
15     <script type="text/javascript">
16 sysadm 1.10 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 sysadm 1.5 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 sysadm 1.7 s.selectedIndex = i;
30 sysadm 1.5 break;
31     }
32     }
33    
34     return false;
35     }
36    
37 sysadm 1.1 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('preference_service.php', {
57 sysadm 1.5 user_tz: f.user_tz.value,
58 sysadm 1.1 photo: f.photo.value,
59 sysadm 1.8 photo_file: f.photo_file.files,
60 sysadm 1.1 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 sysadm 1.8 }, {
65     headers: {
66     'Content-Type': 'multipart/form-data',
67     }
68 sysadm 1.1 })
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     <?
122 sysadm 1.4 include get_theme_file("view/member_service_guide");
123 sysadm 1.1 ?>
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 sysadm 1.6 <form method="post" action="#" id="preference_form" name="preference_form">
128 sysadm 1.9 <table border="1" cellpadding="10" cellspacing="0" width="1050" bgcolor="#ffdead">
129 sysadm 1.1 <tr>
130 sysadm 1.5 <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     <?
135     $timezone_identifiers = DateTimeZone::listIdentifiers();
136     foreach ($timezone_identifiers as $tz)
137     {
138     ?>
139     <option value="<? echo $tz; ?>" <? echo ($tz == $result_set["data"]["user_tz"] ? "selected" : ""); ?>><? echo $tz; ?></option>
140     <?
141     }
142     ?>
143     </select>
144     <a class="s2" href="#" onclick="return tz_select(user_tz, '<? echo $BBS_timezone; ?>');">恢复默认</a>
145     </td>
146     </tr>
147     <tr>
148 sysadm 1.9 <td width="25%" align="right">个人头像</td>
149     <td width="75%">
150 sysadm 1.8 <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="<? echo $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 sysadm 1.1 </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"><? echo htmlspecialchars($result_set["data"]["introduction"], ENT_HTML401, 'UTF-8'); ?></textarea>
160 sysadm 1.6 限10行80列以内
161 sysadm 1.1 </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"><? echo htmlspecialchars($result_set["data"]["sign_1"], ENT_HTML401, 'UTF-8'); ?></textarea>
168 sysadm 1.6 限10行80列以内
169 sysadm 1.1 </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"><? echo htmlspecialchars($result_set["data"]["sign_2"], ENT_HTML401, 'UTF-8'); ?></textarea>
176 sysadm 1.6 限10行80列以内
177 sysadm 1.1 </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"><? echo htmlspecialchars($result_set["data"]["sign_3"], ENT_HTML401, 'UTF-8'); ?></textarea>
184 sysadm 1.6 限10行80列以内
185 sysadm 1.1 </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