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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (hide annotations)
Wed Apr 23 05:13:57 2025 UTC (10 months, 3 weeks ago) by sysadm
Branch: MAIN
Changes since 1.8: +32 -32 lines
Refine deprecated PHP short tags

1 sysadm 1.9 <?php
2 sysadm 1.1 // 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.9 <link rel="stylesheet" href="<?= get_theme_file('css/default'); ?>" type="text/css">
13     <script type="text/javascript" src="<?= get_theme_file('js/lml_assistant'); ?>"></script>
14 sysadm 1.1 <script src="../js/polyfill.min.js"></script>
15     <script src="../js/axios.min.js"></script>
16     <script type="text/javascript">
17     function refresh_err_msg(errorFieldMap)
18     {
19     document.getElementsByName("err_msg").forEach(element => {
20     element.innerHTML = (errorFieldMap.has(element.id) ? errorFieldMap.get(element.id) : "");
21     });
22     }
23    
24     function refresh_textarea(updateFieldMap)
25     {
26     document.getElementsByName("textarea").forEach(element => {
27     if (updateFieldMap.has(element.id))
28     {
29     element.value = updateFieldMap.get(element.id);
30     }
31     });
32     }
33    
34     function post_article(f)
35     {
36     instance.post('post_service.php', {
37 sysadm 1.9 id: <?= $result_set["data"]["id"]; ?>,
38     reply_id: <?= $result_set["data"]["reply_id"]; ?>,
39     sid: <?= $result_set["data"]["sid"]; ?>,
40 sysadm 1.1 title: f.textarea_title.value,
41     transship: (f.transship != null && f.transship.checked ? "1" : "0"),
42     content: f.textarea_content.value,
43     emoji: f.emoji.value,
44     sign_id: f.sign_id.value,
45     reply_note: (f.reply_note.checked ? "1" : "0"),
46     attachment: f.attachment.files,
47     }, {
48     headers: {
49     'Content-Type': 'multipart/form-data',
50     }
51     })
52     .then(function (response) {
53     var ret = response.data;
54     var errorFieldMap = new Map();
55     var updateFieldMap = new Map();
56     switch (ret.return.code)
57     {
58     case 0: // OK
59     var returnPath = "view_article.php?id=" + ret.return.aid + "#" + ret.return.aid;
60     document.location = returnPath;
61     refresh_err_msg(errorFieldMap);
62     break;
63     case -1: // Input validation failed
64     ret.return.errorFields.forEach(field => {
65     errorFieldMap.set("err_msg_" + field.id, "<br />" + field.errMsg);
66     updateFieldMap.set("textarea_" + field.id, field.updateValue);
67     });
68     refresh_err_msg(errorFieldMap);
69     refresh_textarea(updateFieldMap);
70     break;
71     case -2: // Internal error
72     console.log(ret.return.message);
73     errorFieldMap.set("err_msg_prompt", "内部错误");
74     refresh_err_msg(errorFieldMap);
75     break;
76     default:
77     console.log(ret.return.code);
78     break;
79     }
80     })
81     .catch(function (error) {
82     console.log(error);
83     });
84    
85     return false;
86     }
87    
88     function upload_del(id)
89     {
90     if (window.confirm('真的要删除吗?') == false)
91     {
92     return false;
93     }
94    
95     instance.post('upload_del.php', {
96     aid: id
97     })
98     .then(function (response) {
99     var ret = response.data;
100     var errorFieldMap = new Map();
101     switch (ret.return.code)
102     {
103     case 0: // OK
104     case 1: // Already deleted
105     document.getElementById("attachment_" + id).style.display = "none";
106     refresh_err_msg(errorFieldMap);
107     break;
108     case -1: // Input validation failed
109     errorFieldMap.set("err_msg_attachment", "<br />" + ret.return.message);
110     refresh_err_msg(errorFieldMap);
111     break;
112     case -2: // Internal error
113     console.log(ret.return.message);
114     errorFieldMap.set("err_msg_prompt", "内部错误");
115     refresh_err_msg(errorFieldMap);
116     break;
117     default:
118     console.log(ret.return.code);
119     break;
120     }
121     })
122     .catch(function (error) {
123     console.log(error);
124     });
125    
126     return false;
127     }
128    
129     const instance = axios.create({
130     withCredentials: true,
131     timeout: 3000,
132     baseURL: document.location.protocol + '//' + document.location.hostname + (document.location.port=='' ? '' : (':' + document.location.port)) + '/bbs/',
133     });
134    
135     window.addEventListener("load", () => {
136     var f = document.getElementById("post_form");
137     f.addEventListener("submit", (e) => {
138     e.preventDefault();
139     post_article(f);
140     });
141     });
142    
143     </script>
144     </head>
145     <body>
146     <center>
147 sysadm 1.6 <table border="0" cellpadding="1" cellspacing="0" width="1050">
148 sysadm 1.1 <tr>
149     <td>
150 sysadm 1.9 <a class="s2" href="main.php?sid=<?= $result_set["data"]["sid"]; ?>"><?= $BBS_name; ?></a>&gt;&gt;<a class="s2" href="list.php?sid=<?= $result_set["data"]["sid"]; ?>"><?= $result_set["data"]["section_title"]; ?></a>&gt;&gt;<?php
151 sysadm 1.1 if ($result_set["data"]["id"] == 0)
152     {
153     if ($result_set["data"]["reply_id"] > 0)
154     {
155 sysadm 1.9 ?><a class="s2" href="view_article.php?id=<?= $result_set["data"]["reply_id"] . "#" . $result_set["data"]["reply_id"]; ?>"><?= split_line(htmlspecialchars($result_set["data"]["title"], ENT_HTML401, 'UTF-8'), "", 65, 2, "<br />"); ?></a>&gt;&gt;<a class="s2" href="#" onclick="return false;">回复文章</a><?php
156 sysadm 1.1 }
157     else
158     {
159 sysadm 1.9 ?><a class="s2" href="#" onclick="return false;">发表新文章</a><?php
160 sysadm 1.1 }
161     }
162     else
163     {
164 sysadm 1.9 ?><a class="s2" href="view_article.php?id=<?= $result_set["data"]["id"] . "#" . $result_set["data"]["id"]; ?>"><?= split_line(htmlspecialchars($result_set["data"]["title"], ENT_HTML401, 'UTF-8'), "", 65, 2, "<br />"); ?></a>&gt;&gt;<a class="s2" href="#" onclick="return false;">修改文章</a><?php
165 sysadm 1.1 }
166     ?>
167     </td>
168     </tr>
169     </table>
170     <form method="POST" ENCTYPE="multipart/form-data" id="post_form" name="post_form" action="#">
171 sysadm 1.6 <table border="0" cellpadding="5" cellspacing="0" width="1050">
172 sysadm 1.1 <tr>
173     <td colspan="2" align="center" style="color:red;">别忙着发贴,请先看一下<a class="s0" href="doc/management.xml" target=_blank>《论坛管理章程》</a>吧!<br>
174     (请对您的言论负责,遵守有关法律、法规,尊重网络道德)</td>
175     </tr>
176     <tr height="10">
177     <td colspan="2" align="center"><span id="err_msg_prompt" name="err_msg" style="color: red;"></span></td>
178     </tr>
179     <tr>
180 sysadm 1.6 <td width="20%" align="right">标题<span id="err_msg_title" name="err_msg" style="color: red;"></span></td>
181     <td width="80%">
182 sysadm 1.9 <input type="text" name="textarea" id="textarea_title" size="90" <?= ($result_set["data"]["id"] != 0 ? "readonly" : ""); ?> value="<?= ($result_set["data"]["reply_id"] > 0 ? split_line(htmlspecialchars($result_set["data"]["title"], ENT_QUOTES | ENT_HTML401, 'UTF-8'), "Re: ", 80, 1) : htmlspecialchars($result_set["data"]["title"], ENT_QUOTES | ENT_HTML401, 'UTF-8')); ?>">
183     <?php
184 sysadm 1.1 if ($result_set["data"]["id"] == 0 && $result_set["data"]["reply_id"] == 0)
185     {
186     ?>
187     <input type="checkbox" name="transship">转载
188 sysadm 1.9 <?php
189 sysadm 1.1 }
190     ?></td>
191     </tr>
192     <tr>
193     <td align="right">正文<span id="err_msg_content" name="err_msg" style="color: red;"></span></td>
194     <td>
195 sysadm 1.9 <textarea name="textarea" id="textarea_content" cols="90" rows="25"><?php
196 sysadm 1.1 if ($result_set["data"]["reply_id"] == 0)
197     {
198     echo htmlspecialchars($result_set["data"]["content"], ENT_HTML401, 'UTF-8');
199     }
200     else if ($quote)
201     {
202     ?>
203    
204    
205    
206 sysadm 1.9 【 在 <?= htmlspecialchars($result_set["data"]["r_username"], ENT_HTML401, 'UTF-8'); ?> (<?= htmlspecialchars($result_set["data"]["r_nickname"], ENT_HTML401, 'UTF-8'); ?>) 的大作中提到: 】
207     <?php
208 sysadm 1.1 echo htmlspecialchars(LMLtagFilter(LML(split_line($result_set["data"]["content"], ": ", 76, 20), false, false, 1024)), ENT_HTML401, 'UTF-8');
209     }
210     ?></textarea>
211     </td>
212     </tr>
213     <tr>
214 sysadm 1.8 <td align="right"><a class="s0" href="lml.htm" target=_blank>LML</a>助手</td>
215 sysadm 1.1 <td>
216 sysadm 1.3 <INPUT type="button" value="B" onclick="b_bold(textarea_content)" style="font-weight:bold; width:25px;">
217     <INPUT type="button" value="I" onclick="b_italic(textarea_content)" style="font-style:italic; width:25px;">
218     <INPUT type="button" value="U" onclick="b_underline(textarea_content)" style="text-decoration:underline; width:25px;">
219     <INPUT type="button" value="[" onclick="b_left(textarea_content)" style="width:20px;">
220     <INPUT type="button" value="]" onclick="b_right(textarea_content)" style="width:20px;">
221     <INPUT type="button" value="Aa" onclick="b_size(textarea_content)" style="width:30px;">
222     <INPUT type="button" value="A" onclick="b_color(textarea_content)" style="font-weight:bold; color:red; width:25px;">
223     <INPUT type="button" value="@" onclick="b_email(textarea_content)" style="width:25px;">
224     <INPUT type="button" value="Link" onclick="b_link(textarea_content)" style="text-decoration:underline; color:blue; width:40px;">
225     <INPUT type="button" value="主题" onclick="b_article(textarea_content)" style="text-decoration:underline; color:green; width:40px;">
226     <INPUT type="button" value="图片" onclick="b_image(textarea_content)" style="width:40px;">
227     <INPUT type="button" value="字幕" onclick="b_marquee(textarea_content)" style="width:40px;">
228 sysadm 1.1 </td>
229     </tr>
230     <tr>
231     <td align="right">上传附件<span id="err_msg_attachment" name="err_msg" style="color: red;"></span></td>
232     <td>
233 sysadm 1.9 单个文件大小不能超过<?= $BBS_upload_size_limit; ?>M,
234     单次上传不超过<?= $BBS_upload_count_limit; ?>个文件<br />
235 sysadm 1.1 文件类型限于BMP,GIF,JPEG,PNG,TIFF,TXT,ZIP,RAR<br />
236 sysadm 1.5 <INPUT TYPE="file" size="40" name="attachment[]" id="attachment" multiple>
237 sysadm 1.9 <?php
238 sysadm 1.1 if ($result_set["data"]["id"] != 0) // Modify article
239     {
240     if (count($result_set["data"]["attachments"]) > 0)
241     {
242     ?>
243     <hr width="80%" align="left" />已上传附件<br />
244 sysadm 1.9 <?php
245 sysadm 1.1 }
246    
247     foreach ($result_set["data"]["attachments"] as $aid => $attachment)
248     {
249     $filename = $attachment["filename"];
250     $ext = strtolower(substr($filename, (strrpos($filename, ".") ? strrpos($filename, ".") + 1 : 0)));
251     ?>
252 sysadm 1.9 <span id="attachment_<?= $aid; ?>"><img src="images/closed.gif"><a class="s2" href="dl_file.php?aid=<?= $aid; ?>" target="_target"><?= $filename; ?></a> (<?= $attachment["size"]; ?>字节)
253     <?php
254 sysadm 1.1 if ($attachment["check"] == 0)
255     {
256 sysadm 1.9 ?><font color="red">未审核</font><?php
257 sysadm 1.1 }
258     ?>
259 sysadm 1.9 <a class="s2" href="#" onclick="return upload_del(<?= $aid; ?>);">删除</a>
260 sysadm 1.1 <br /></span>
261 sysadm 1.9 <?php
262 sysadm 1.1 }
263     }
264     ?>
265     </td>
266     </tr>
267     <tr>
268     <td align="right">表情<span id="err_msg_emoji" name="err_msg" style="color: red;"></span></td>
269 sysadm 1.9 <td><?php
270 sysadm 1.1 for ($i = 1; $i <= $BBS_emoji_count; $i++)
271     {
272 sysadm 1.9 ?><input type="radio" name="emoji" value="<?= $i; ?>" <?= ($i == $result_set["data"]["emoji"] ? "checked" : ""); ?>><img src="images/expression/<?= $i; ?>.gif" width="15" height="15" alt="<?= $i; ?>.gif"><?php
273 sysadm 1.1 if (($i % 12)==0)
274     {
275     ?><br><?
276     }
277     }
278     ?></td>
279     </tr>
280 sysadm 1.9 <?php
281 sysadm 1.1 if ($result_set["data"]["id"] == 0)
282     {
283     ?>
284     <tr>
285     <td align="right">签名<span id="err_msg_sign" name="err_msg" style="color: red;"></span></td>
286     <td>
287     <input type="radio" id="sign_id_0" name="sign_id" value="0" checked>不使用&nbsp;
288     <input type="radio" id="sign_id_1" name="sign_id" value="1">1&nbsp;
289     <input type="radio" id="sign_id_2" name="sign_id" value="2">2&nbsp;
290     <input type="radio" id="sign_id_3" name="sign_id" value="3">3&nbsp;
291     <a class="s0" href="preference.php" target=_blank>设置个人签名</a>
292     </td>
293     </tr>
294 sysadm 1.9 <?php
295 sysadm 1.1 }
296     else
297     {
298     ?>
299     <input type="hidden" id="sign_id_0" name="sign_id" value="0">
300 sysadm 1.9 <?php
301 sysadm 1.1 }
302     ?>
303     <tr>
304     <td align="right"></td>
305 sysadm 1.9 <td><input type="checkbox" name="reply_note" id="reply_note" <?= ($result_set["data"]["reply_note"] ? "checked":""); ?>>有人回复该主题时通知我</td>
306 sysadm 1.1 </tr>
307     </table>
308     <p><input type="submit" value="提交" name="submit">&nbsp;&nbsp;&nbsp;<input type="reset" value="重填" name="reset"></p>
309     </center>
310     </form>
311 sysadm 1.9 <?php
312 sysadm 1.1 include "./foot.inc.php";
313     ?>
314     </body>
315     </html>

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