/[LeafOK_CVS]/fenglin/bbs/article_service_excerption.php
ViewVC logotype

Annotation of /fenglin/bbs/article_service_excerption.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Sun Apr 27 04:18:22 2025 UTC (10 months, 2 weeks ago) by sysadm
Branch: MAIN
Changes since 1.1: +7 -7 lines
Trim trailing whitespaces

1 sysadm 1.1 <?php
2     require_once "../lib/db_open.inc.php";
3     require_once "./article_op.inc.php";
4     require_once "./session_init.inc.php";
5    
6     $data = json_decode(file_get_contents("php://input"), true);
7    
8     $id = (isset($data["id"]) ? intval($data["id"]) : 0);
9     $set = (isset($data["set"]) && $data["set"] == "1" ? 1 : 0);
10    
11     $result_set = array(
12     "return" => array(
13     "code" => 0,
14     "message" => "",
15     "errorFields" => array(),
16     )
17     );
18    
19     header("Content-Type:application/json; charset=utf-8");
20    
21     if (!isset($_SESSION["BBS_uid"]) || $_SESSION["BBS_uid"] == 0)
22     {
23     $result_set["return"]["code"] = -1;
24     $result_set["return"]["message"] = "没有登录";
25    
26     mysqli_close($db_conn);
27     exit(json_encode($result_set));
28     }
29    
30     // Begin transaction
31     $rs = mysqli_query($db_conn, "SET autocommit=0");
32     if ($rs == false)
33     {
34     $result_set["return"]["code"] = -2;
35     $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
36    
37     mysqli_close($db_conn);
38     exit(json_encode($result_set));
39     }
40 sysadm 1.2
41 sysadm 1.1 $rs = mysqli_query($db_conn, "BEGIN");
42     if ($rs == false)
43     {
44     $result_set["return"]["code"] = -2;
45     $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
46    
47     mysqli_close($db_conn);
48     exit(json_encode($result_set));
49     }
50    
51     $sql = "SELECT UID, TID, SID, transship, excerption FROM bbs
52     WHERE AID = $id AND visible FOR UPDATE";
53    
54     $rs = mysqli_query($db_conn, $sql);
55     if ($rs == false)
56     {
57     $result_set["return"]["code"] = -2;
58     $result_set["return"]["message"] = "Query article error: " . mysqli_error($db_conn);
59    
60     mysqli_close($db_conn);
61     exit(json_encode($result_set));
62     }
63    
64     if($row = mysqli_fetch_array($rs))
65     {
66     $uid = $row["UID"];
67     $tid = $row["TID"];
68     $sid = $row["SID"];
69     $transship = $row["transship"];
70     $excerption = $row["excerption"];
71     }
72     else
73     {
74     $result_set["return"]["code"] = -1;
75     $result_set["return"]["message"] = "文章不存在";
76    
77     mysqli_close($db_conn);
78     exit(json_encode($result_set));
79     }
80     mysqli_free_result($rs);
81    
82     if (!($_SESSION["BBS_priv"]->checkpriv($sid, S_POST | S_MAN_S)))
83     {
84     $result_set["return"]["code"] = -1;
85     $result_set["return"]["message"] = "没有权限";
86    
87     mysqli_close($db_conn);
88     exit(json_encode($result_set));
89     }
90    
91     // Check if already set
92     if ($excerption == $set)
93     {
94     $result_set["return"]["code"] = 1;
95     $result_set["return"]["message"] = "已设置";
96    
97     mysqli_close($db_conn);
98     exit(json_encode($result_set));
99     }
100    
101     $sql = "UPDATE bbs SET excerption = $set WHERE AID = $id";
102    
103     $rs = mysqli_query($db_conn, $sql);
104     if ($rs == false)
105     {
106     $result_set["return"]["code"] = -2;
107     $result_set["return"]["message"] = "Set excerption error: " . mysqli_error($db_conn);
108    
109     mysqli_close($db_conn);
110     exit(json_encode($result_set));
111     }
112    
113     // Clear gen_ex if unset excerption
114     if ($set == 0)
115     {
116     $sql = "UPDATE bbs SET gen_ex = 0, static = 0 WHERE AID = $id OR TID = $id";
117    
118     $rs = mysqli_query($db_conn, $sql);
119     if ($rs == false)
120     {
121     $result_set["return"]["code"] = -2;
122     $result_set["return"]["message"] = "Set gen_ex error: " . mysqli_error($db_conn);
123 sysadm 1.2
124 sysadm 1.1 mysqli_close($db_conn);
125     exit(json_encode($result_set));
126     }
127    
128     //Delete ex_dir path if head of thread
129     if ($tid == 0)
130     {
131     $sql = "DELETE FROM ex_file WHERE AID = $id";
132    
133     $rs = mysqli_query($db_conn, $sql);
134     if ($rs == false)
135     {
136     $result_set["return"]["code"] = -2;
137     $result_set["return"]["message"] = "Delete ex_file error: " . mysqli_error($db_conn);
138 sysadm 1.2
139 sysadm 1.1 mysqli_close($db_conn);
140     exit(json_encode($result_set));
141     }
142     }
143     }
144 sysadm 1.2
145 sysadm 1.1 //Change UID of attachments
146     $sql = "UPDATE upload_file SET UID = " . ($set ? 0 : $uid) .
147     " WHERE ref_AID = $id AND deleted = 0";
148    
149     $rs = mysqli_query($db_conn, $sql);
150     if ($rs == false)
151     {
152     $result_set["return"]["code"] = -2;
153     $result_set["return"]["message"] = "Set attachment status error: " . mysqli_error($db_conn);
154 sysadm 1.2
155 sysadm 1.1 mysqli_close($db_conn);
156     exit(json_encode($result_set));
157     }
158    
159     //Modify exp
160     if ($_SESSION["BBS_priv"]->checkpriv($sid, S_GETEXP)) //Except in test section
161     {
162     $rs = user_exp_change($uid, ($set ? 1 : -1) * ($tid == 0 ? ($transship ? 20 : 50) : 10), $db_conn);
163    
164     if ($rs == false)
165     {
166     $result_set["return"]["code"] = -2;
167     $result_set["return"]["message"] = "Change exp error: " . mysqli_error($db_conn);
168 sysadm 1.2
169 sysadm 1.1 mysqli_close($db_conn);
170     exit(json_encode($result_set));
171     }
172     }
173    
174     //Add log
175     $rs = article_op_log($id, $_SESSION["BBS_uid"], ($set ? "E" : "O"), client_addr(), $db_conn);
176     if ($rs == false)
177     {
178     $result_set["return"]["code"] = -2;
179     $result_set["return"]["message"] = "Add log error: " . mysqli_error($db_conn);
180 sysadm 1.2
181 sysadm 1.1 mysqli_close($db_conn);
182     exit(json_encode($result_set));
183     }
184    
185     // Commit transaction
186     $rs = mysqli_query($db_conn, "COMMIT");
187     if ($rs == false)
188     {
189     $result_set["return"]["code"] = -2;
190     $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
191    
192     mysqli_close($db_conn);
193     exit(json_encode($result_set));
194     }
195    
196     mysqli_close($db_conn);
197     exit(json_encode($result_set));
198     ?>

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