1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Xoopsmodules\Smallworld; |
4
|
|
|
/** |
5
|
|
|
* You may not change or alter any portion of this comment or credits |
6
|
|
|
* of supporting developers from this source code or any supporting source code |
7
|
|
|
* which is considered copyrighted (c) material of the original comment or credit authors. |
8
|
|
|
* |
9
|
|
|
* This program is distributed in the hope that it will be useful, |
10
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
11
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
12
|
|
|
*/ |
13
|
|
|
|
14
|
|
|
/** |
15
|
|
|
* SmallWorld |
16
|
|
|
* |
17
|
|
|
* @copyright The XOOPS Project (https://xoops.org) |
18
|
|
|
* @copyright 2011 Culex |
19
|
|
|
* @license GNU GPL (http://www.gnu.org/licenses/gpl-2.0.html/) |
20
|
|
|
* @package SmallWorld |
21
|
|
|
* @since 1.0 |
22
|
|
|
* @author Michael Albertsen (http://culex.dk) <[email protected]> |
23
|
|
|
*/ |
24
|
|
|
class SmallWorldDB |
25
|
|
|
{ |
26
|
|
|
/** |
27
|
|
|
* getJobsToDiv function |
28
|
|
|
* @param int $id |
29
|
|
|
* @return array |
30
|
|
|
*/ |
31
|
|
View Code Duplication |
public function getJobsToDiv($id) |
|
|
|
|
32
|
|
|
{ |
33
|
|
|
global $xoopsUser, $xoopsDB; |
34
|
|
|
$msg = []; |
35
|
|
|
$new = []; |
|
|
|
|
36
|
|
|
$sql = 'SELECT employer,position,jobstart,jobstop,description FROM ' . $xoopsDB->prefix('smallworld_user') . " WHERE userid ='" . $id . "'"; |
37
|
|
|
$result = $xoopsDB->query($sql); |
38
|
|
|
while ($row = $xoopsDB->fetchArray($result)) { |
39
|
|
|
$employer = unserialize($row['employer']); |
40
|
|
|
$position = unserialize($row['position']); |
41
|
|
|
$jobstart = unserialize($row['jobstart']); |
42
|
|
|
$jobstop = unserialize($row['jobstop']); |
43
|
|
|
$description = unserialize($row['description']); |
44
|
|
|
} |
45
|
|
|
$start = 0; |
46
|
|
|
$end = count($employer) - 1; |
|
|
|
|
47
|
|
|
while ($start <= $end) { |
48
|
|
|
$msg[$start]['employer'] = $employer[$start]; |
49
|
|
|
$msg[$start]['position'] = $position[$start]; |
|
|
|
|
50
|
|
|
$msg[$start]['jobstart'] = $jobstart[$start]; |
|
|
|
|
51
|
|
|
$msg[$start]['jobstop'] = $jobstop[$start]; |
|
|
|
|
52
|
|
|
$msg[$start]['description'] = $description[$start]; |
|
|
|
|
53
|
|
|
++$start; |
54
|
|
|
} |
55
|
|
|
return $msg; |
56
|
|
|
} |
57
|
|
|
|
58
|
|
|
/** |
59
|
|
|
* getSchoolToDiv function |
60
|
|
|
* @param int $id |
61
|
|
|
* @return array |
62
|
|
|
*/ |
63
|
|
View Code Duplication |
public function getSchoolToDiv($id) |
|
|
|
|
64
|
|
|
{ |
65
|
|
|
global $xoopsUser, $xoopsDB, $arr7; |
66
|
|
|
$msg = []; |
67
|
|
|
$sql = 'SELECT school_type,school,schoolstart,schoolstop FROM ' . $xoopsDB->prefix('smallworld_user') . " WHERE userid ='" . $id . "'"; |
68
|
|
|
$result = $xoopsDB->query($sql); |
69
|
|
|
while ($row = $xoopsDB->fetchArray($result)) { |
70
|
|
|
$school_type = unserialize($row['school_type']); |
71
|
|
|
$school = unserialize($row['school']); |
72
|
|
|
$schoolstart = unserialize($row['schoolstart']); |
73
|
|
|
$schoolstop = unserialize($row['schoolstop']); |
74
|
|
|
} |
75
|
|
|
$start = 0; |
76
|
|
|
$end = count($school_type) - 1; |
|
|
|
|
77
|
|
|
while ($start <= $end) { |
78
|
|
|
$msg[$start]['school_type'] = $school_type[$start]; |
79
|
|
|
$msg[$start]['school'] = $arr7[$school[$start]]; |
|
|
|
|
80
|
|
|
$msg[$start]['schoolstart'] = $schoolstart[$start]; |
|
|
|
|
81
|
|
|
$msg[$start]['schoolstop'] = $schoolstop[$start]; |
|
|
|
|
82
|
|
|
$start++; |
83
|
|
|
} |
84
|
|
|
return $msg; |
85
|
|
|
} |
86
|
|
|
|
87
|
|
|
/** |
88
|
|
|
* getScreennamesToDiv function |
89
|
|
|
* @param int $id |
90
|
|
|
* @return array |
91
|
|
|
*/ |
92
|
|
View Code Duplication |
public function getScreennamesToDiv($id) |
|
|
|
|
93
|
|
|
{ |
94
|
|
|
global $xoopsUser, $xoopsDB, $arr06; |
95
|
|
|
$msg = []; |
96
|
|
|
$sql = 'SELECT screenname_type,screenname FROM ' . $xoopsDB->prefix('smallworld_user') . " WHERE userid ='" . $id . "'"; |
97
|
|
|
$result = $xoopsDB->query($sql); |
98
|
|
|
while ($row = $xoopsDB->fetchArray($result)) { |
99
|
|
|
$screenname_type = unserialize($row['screenname_type']); |
100
|
|
|
$screenname = unserialize($row['screenname']); |
101
|
|
|
} |
102
|
|
|
$start = 0; |
103
|
|
|
$end = count($screenname_type) - 1; |
|
|
|
|
104
|
|
|
while ($start <= $end) { |
105
|
|
|
$msg[$start]['screenname'] = $screenname_type[$start]; |
106
|
|
|
$msg[$start]['screenname_type'] = $arr06[$screenname[$start]]; |
|
|
|
|
107
|
|
|
$msg[$start]['link'] = "<span class='smallworld_website'>" . Smallworld_sociallinks($screenname[$start], $msg[$start]['screenname']); |
108
|
|
|
++$start; |
109
|
|
|
} |
110
|
|
|
return $msg; |
111
|
|
|
} |
112
|
|
|
|
113
|
|
|
/** |
114
|
|
|
* getVar function |
115
|
|
|
* @param int $id |
116
|
|
|
* @param string $var |
117
|
|
|
* @return array|int |
118
|
|
|
*/ |
119
|
|
View Code Duplication |
public function getVar($id, $var) |
|
|
|
|
120
|
|
|
{ |
121
|
|
|
global $xoopsUser, $xoopsDB; |
122
|
|
|
$sql = 'SELECT ' . $var . ' FROM ' . $xoopsDB->prefix('smallworld_user') . " WHERE userid = '" . $id . "'"; |
123
|
|
|
$result = $xoopsDB->queryF($sql); |
124
|
|
|
if ($xoopsDB->getRowsNum($result) < 1) { |
125
|
|
|
return 0;//_SMALLWORLD_REPLY_NOTSPECIFIED; |
126
|
|
|
} |
127
|
|
|
while ($row = $xoopsDB->fetchArray($result)) { |
128
|
|
|
$msg[$var] = $row[$var]; |
|
|
|
|
129
|
|
|
} |
130
|
|
|
return $msg[$var]; |
|
|
|
|
131
|
|
|
} |
132
|
|
|
|
133
|
|
|
/** |
134
|
|
|
* updateSingleValue function |
135
|
|
|
* @param string $table |
136
|
|
|
* @param int $userid |
137
|
|
|
* @param string $field |
138
|
|
|
* @param int $value |
139
|
|
|
* @return void |
140
|
|
|
*/ |
141
|
|
View Code Duplication |
public function updateSingleValue($table, $userid, $field, $value) |
|
|
|
|
142
|
|
|
{ |
143
|
|
|
global $xoopsUser, $xoopsDB; |
144
|
|
|
$myts = \MyTextSanitizer::getInstance(); |
145
|
|
|
$sql = 'UPDATE ' . $xoopsDB->prefix($table) . ' SET ' . $field . "='" . $myts->addSlashes($value) . "' WHERE userid='" . (int)$userid . "'"; |
146
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
147
|
|
|
} |
148
|
|
|
|
149
|
|
|
/** |
150
|
|
|
* saveImage function |
151
|
|
|
* @param $values |
152
|
|
|
* @return void |
153
|
|
|
*/ |
154
|
|
|
public function saveImage($values) |
155
|
|
|
{ |
156
|
|
|
global $xoopsUser, $xoopsDB; |
157
|
|
|
$GLOBALS['xoopsLogger']->activated = true; |
158
|
|
|
$myts = \MyTextSanitizer::getInstance(); |
|
|
|
|
159
|
|
|
$sql = "INSERT INTO " . $xoopsDB->prefix('smallworld_images') . " VALUES (" . $values . ")"; |
160
|
|
|
echo $sql; |
161
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
162
|
|
|
} |
163
|
|
|
|
164
|
|
|
/** |
165
|
|
|
* DeleteImage function |
166
|
|
|
* @param int $userid |
167
|
|
|
* @param string $imagename |
168
|
|
|
* @return void |
169
|
|
|
*/ |
170
|
|
View Code Duplication |
public function DeleteImage($userid, $imagename) |
|
|
|
|
171
|
|
|
{ |
172
|
|
|
global $xoopsUser, $xoopsDB; |
173
|
|
|
$myts = \MyTextSanitizer::getInstance(); |
|
|
|
|
174
|
|
|
$sql = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_images') . " WHERE imgname = '" . stripslashes($imagename) . "' AND userid='" . $userid . "'"; |
175
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
176
|
|
|
} |
177
|
|
|
|
178
|
|
|
/** |
179
|
|
|
* handlePosts function |
180
|
|
|
* @return void |
181
|
|
|
*/ |
182
|
|
View Code Duplication |
public function handlePosts() |
|
|
|
|
183
|
|
|
{ |
184
|
|
|
global $xoopsUser, $xoopsDB; |
185
|
|
|
$myts = \MyTextSanitizer::getInstance(); |
|
|
|
|
186
|
|
|
$uid = $xoopsUser->getVar('uid'); |
187
|
|
|
$user = new \XoopsUser($uid); |
188
|
|
|
$img = new SmallWorldImages; |
189
|
|
|
if ('' == $this->getVar($uid, 'userimage')) { |
190
|
|
|
$avatar = $user->user_avatar(); |
191
|
|
|
} else { |
192
|
|
|
$avatar = $this->getVar($uid, 'userimage'); |
193
|
|
|
} |
194
|
|
|
|
195
|
|
|
if ('2' != $_POST['relationship']) { |
196
|
|
|
$partner = Smallworld_sanitize($_POST['partner']); |
197
|
|
|
} else { |
198
|
|
|
$partner = ''; |
199
|
|
|
} |
200
|
|
|
|
201
|
|
|
$regdate = time(); |
202
|
|
|
$username = $user->uname(); |
203
|
|
|
$realname = Smallworld_sanitize($_POST['realname']); |
204
|
|
|
$gender = isset($_POST['gender']) ? $_POST['gender'] : ''; |
205
|
|
|
$intingender = isset($_POST['intingender']) ? Smallworld_sanitize(serialize($_POST['intingender'])) : Smallworld_sanitize(serialize([0 => '3'])); |
206
|
|
|
$relationship = Smallworld_sanitize($_POST['relationship']); |
207
|
|
|
$searchrelat = isset($_POST['searchrelat']) ? Smallworld_sanitize(serialize($_POST['searchrelat'])) : Smallworld_sanitize(serialize([0 => '0'])); |
208
|
|
|
$birthday = Smallworld_sanitize(Smallworld_euroToUsDate($_POST['birthday'])); |
209
|
|
|
$birthplace = Smallworld_sanitize($_POST['birthplace']); |
210
|
|
|
$birthplace_lat = Smallworld_sanitize($_POST['birthplace_lat']); |
211
|
|
|
$birthplace_lng = Smallworld_sanitize($_POST['birthplace_lng']); |
212
|
|
|
$birthplace_country = Smallworld_sanitize($_POST['birthplace_country']); |
213
|
|
|
$birthplace_country_img = isset($_POST['birthplace_country_img']) ? Smallworld_sanitize($_POST['birthplace_country_img']) : ''; |
|
|
|
|
214
|
|
|
$politic = Smallworld_sanitize($_POST['politic']); |
215
|
|
|
$religion = Smallworld_sanitize($_POST['religion']); |
216
|
|
|
$emailtype = Smallworld_sanitize(serialize($_POST['emailtype'])); |
217
|
|
|
$screenname_type = Smallworld_sanitize(serialize($_POST['screenname_type'])); |
218
|
|
|
$screenname = Smallworld_sanitize(serialize($_POST['screenname'])); |
219
|
|
|
$mobile = Smallworld_sanitize($_POST['mobile']); |
220
|
|
|
$phone = Smallworld_sanitize($_POST['phone']); |
221
|
|
|
$adress = Smallworld_sanitize($_POST['adress']); |
222
|
|
|
$present_city = Smallworld_sanitize($_POST['present_city']); |
223
|
|
|
$present_lat = Smallworld_sanitize($_POST['present_lat']); |
224
|
|
|
$present_lng = Smallworld_sanitize($_POST['present_lng']); |
225
|
|
|
$present_country = Smallworld_sanitize($_POST['present_country']); |
226
|
|
|
$present_country_img = isset($_POST['present_country_img']) ? Smallworld_sanitize($_POST['present_country_img']) : ''; |
|
|
|
|
227
|
|
|
$website = Smallworld_sanitize($_POST['website']); |
228
|
|
|
$interests = Smallworld_sanitize($_POST['interests']); |
229
|
|
|
$music = Smallworld_sanitize($_POST['music']); |
230
|
|
|
$tvshow = Smallworld_sanitize($_POST['tvshow']); |
231
|
|
|
$movie = Smallworld_sanitize($_POST['movie']); |
232
|
|
|
$books = Smallworld_sanitize($_POST['books']); |
233
|
|
|
$aboutme = Smallworld_sanitize($_POST['aboutme']); |
234
|
|
|
$school_type = Smallworld_sanitize(serialize($_POST['school_type'])); |
235
|
|
|
$school = Smallworld_sanitize(serialize($_POST['school'])); |
236
|
|
|
$schoolstart = Smallworld_sanitize(serialize($_POST['schoolstart'])); |
237
|
|
|
$schoolstop = Smallworld_sanitize(serialize($_POST['schoolstop'])); |
238
|
|
|
$jobemployer = Smallworld_sanitize(serialize($_POST['employer'])); |
239
|
|
|
$jobposition = Smallworld_sanitize(serialize($_POST['position'])); |
240
|
|
|
$jobstart = Smallworld_sanitize(serialize(Smallworld_YearOfArray($_POST['jobstart']))); |
241
|
|
|
$jobstop = Smallworld_sanitize(serialize(Smallworld_YearOfArray($_POST['jobstop']))); |
242
|
|
|
$jobdescription = Smallworld_sanitize(serialize($_POST['description'])); |
243
|
|
|
|
244
|
|
|
$sql = ''; |
|
|
|
|
245
|
|
|
|
246
|
|
|
if ('edit' === $_POST['function']) { |
247
|
|
|
// Update all values in user_table |
248
|
|
|
$sql = 'UPDATE ' . $xoopsDB->prefix('smallworld_user') . ' SET '; |
249
|
|
|
$sql .= "realname = '" . $realname . "', username= '" . $username . "', userimage = '" . $avatar . "', gender = '" . $gender . "',"; |
250
|
|
|
$sql .= "intingender = '" . $intingender . "',relationship = '" . $relationship . "', partner = '" . $partner . "', searchrelat = '" . $searchrelat . "',"; |
251
|
|
|
$sql .= "birthday = '" . $birthday . "',birthplace = '" . $birthplace . "',birthplace_lat = '" . (float)$birthplace_lat . "',"; |
252
|
|
|
$sql .= "birthplace_lng = '" . (float)$birthplace_lng . "',birthplace_country = '" . $birthplace_country . "',politic = '" . $politic . "',"; |
253
|
|
|
$sql .= "religion = '" . $religion . "',emailtype = '" . $emailtype . "',screenname_type = '" . $screenname_type . "',"; |
254
|
|
|
$sql .= "screenname = '" . $screenname . "',mobile = '" . (float)$mobile . "',phone = '" . (float)$phone . "',adress = '" . $adress . "',"; |
255
|
|
|
$sql .= "present_city = '" . $present_city . "',present_lat = '" . (float)$present_lat . "',present_lng = '" . (float)$present_lng . "',"; |
256
|
|
|
$sql .= "present_country = '" . $present_country . "',website = '" . $website . "',interests = '" . $interests . "',"; |
257
|
|
|
$sql .= "music = '" . $music . "',tvshow = '" . $tvshow . "',movie = '" . $movie . "',"; |
258
|
|
|
$sql .= "books = '" . $books . "',aboutme = '" . $aboutme . "',school_type = '" . $school_type . "',"; |
259
|
|
|
$sql .= "school = '" . $school . "', schoolstart = '" . $schoolstart . "',schoolstop = '" . $schoolstop . "',"; |
260
|
|
|
$sql .= "employer = '" . $jobemployer . "', position = '" . $jobposition . "',jobstart = '" . $jobstart . "',"; |
261
|
|
|
$sql .= "jobstop = '" . $jobstop . "', description = '" . $jobdescription . "' "; |
262
|
|
|
$sql .= "WHERE userid ='" . (int)$uid . "'"; |
263
|
|
|
$result = $xoopsDB->queryF($sql); |
264
|
|
|
if (false === $result) { |
265
|
|
|
die('SQL error:' . $sql . ''); |
266
|
|
|
} |
267
|
|
|
|
268
|
|
|
$this->EditAdmins($uid, $realname, $avatar); |
|
|
|
|
269
|
|
|
$img->createAlbum($uid); |
270
|
|
|
} |
271
|
|
|
|
272
|
|
|
if ('save' === $_POST['function']) { |
273
|
|
|
$sql = 'INSERT INTO ' |
274
|
|
|
. $xoopsDB->prefix('smallworld_user') |
275
|
|
|
. ' (userid, regdate, username, userimage, realname, gender, intingender, relationship, partner, searchrelat, birthday, birthplace, birthplace_lat, birthplace_lng, birthplace_country, politic, religion, emailtype, screenname_type, screenname, mobile, phone, adress, present_city, present_lat, present_lng, present_country, website, interests, music, tvshow, movie, books, aboutme, school_type, school, schoolstart, schoolstop, employer, position, jobstart, jobstop, description, friends, followers, admin_flag) '; |
276
|
|
|
$sql .= "VALUES ('" . (int)$uid . "', '" . $regdate . "', '" . $username . "', '" . $avatar . "', '" . $realname . "', '" . $gender . "', '" . $intingender . "', '" . $relationship . "', '" . $partner . "', '" . $searchrelat . "','"; |
277
|
|
|
$sql .= $birthday . "', '" . $birthplace . "', '" . (float)$birthplace_lat . "', '" . (float)$birthplace_lng . "', '" . $birthplace_country . "', '" . $politic . "', '" . $religion . "','"; |
278
|
|
|
$sql .= $emailtype . "', '" . $screenname_type . "', '" . $screenname . "', '" . (float)$mobile . "', '" . (float)$phone . "', '" . $adress . "', '" . $present_city . "', '" . (float)$present_lat . "','"; |
279
|
|
|
$sql .= (float)$present_lng . "', '" . $present_country . "', '" . $website . "', '" . $interests . "', '" . $music . "', '" . $tvshow . "', '" . $movie . "', '" . $books . "', '" . $aboutme . "', '"; |
280
|
|
|
$sql .= $school_type . "', '" . $school . "', '" . $schoolstart . "', '" . $schoolstop . "', '" . $jobemployer . "', '" . $jobposition . "', '" . $jobstart . "', '" . $jobstop . "', '" . $jobdescription . "', "; |
281
|
|
|
$sql .= "'0', '0', '0')"; |
282
|
|
|
$result = $xoopsDB->queryF($sql); |
283
|
|
|
if (false === $result) { |
284
|
|
|
die('SQL error:' . $sql . ''); |
285
|
|
|
} |
286
|
|
|
$this->SetAdmins($uid, $username, $realname, $avatar); |
|
|
|
|
287
|
|
|
$img->createAlbum($uid); |
288
|
|
|
} |
289
|
|
|
} |
290
|
|
|
|
291
|
|
|
/** |
292
|
|
|
* SetAdmins function |
293
|
|
|
* @param int $userID |
294
|
|
|
* @param string $username |
295
|
|
|
* @param string $realname |
296
|
|
|
* @param mixed $avatar |
297
|
|
|
* @return void |
298
|
|
|
*/ |
299
|
|
View Code Duplication |
public function SetAdmins($userID, $username, $realname, $avatar) |
|
|
|
|
300
|
|
|
{ |
301
|
|
|
global $xoopsDB, $xoopsUser; |
302
|
|
|
$ip = $_SERVER['REMOTE_ADDR']; |
303
|
|
|
$sql = 'INSERT INTO ' . $xoopsDB->prefix('smallworld_admin') . ' (userid,username, realname,userimage,ip,complaint,inspect_start, ' . "inspect_stop) VALUES ('" . $userID . "', '" . $username . "','" . $realname . "', '" . $avatar . "','" . $ip . "','0','0','0')"; |
304
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
305
|
|
|
} |
306
|
|
|
|
307
|
|
|
/** |
308
|
|
|
* EditAdmins function |
309
|
|
|
* @param int $userID |
310
|
|
|
* @param string $realname |
311
|
|
|
* @param mixed $avatar |
312
|
|
|
* @return void |
313
|
|
|
*/ |
314
|
|
|
public function EditAdmins($userID, $realname, $avatar) |
315
|
|
|
{ |
316
|
|
|
global $xoopsDB; |
317
|
|
|
$sql = 'UPDATE ' . $xoopsDB->prefix('smallworld_admin') . " SET realname = '" . $realname . "', userimage = '" . $avatar . "' WHERE userid = '" . (int)$userID . "'"; |
318
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
319
|
|
|
} |
320
|
|
|
|
321
|
|
|
/** |
322
|
|
|
* alreadycomplaint function |
323
|
|
|
* - Check if user has already sent complaint |
324
|
|
|
* @param string $msg |
325
|
|
|
* @param int $by |
326
|
|
|
* @param int $against |
327
|
|
|
* @return int |
328
|
|
|
*/ |
329
|
|
View Code Duplication |
public function alreadycomplaint($msg, $by, $against) |
|
|
|
|
330
|
|
|
{ |
331
|
|
|
global $xoopsDB; |
332
|
|
|
$sql = 'SELECT * FROM ' . $xoopsDB->prefix('smallworld_complaints') . " WHERE byuser_id = '" . (int)$by . "' AND owner = '" . (int)$against . "' AND link = '" . addslashes($msg) . "'"; |
333
|
|
|
$result = $xoopsDB->queryF($sql); |
334
|
|
|
$i = $xoopsDB->getRowsNum($result); |
335
|
|
|
if ($i < 1) { |
336
|
|
|
$query = 'INSERT INTO ' . $xoopsDB->prefix('smallworld_complaints') . " (complaint_id,link,byuser_id,owner) VALUES ('', '" . addslashes($msg) . "', '" . (int)$by . "', '" . (int)$against . "')"; |
337
|
|
|
$result = $xoopsDB->queryF($query); |
|
|
|
|
338
|
|
|
} else { |
339
|
|
|
} |
340
|
|
|
return $i; |
341
|
|
|
} |
342
|
|
|
|
343
|
|
|
/** |
344
|
|
|
* updateComplaint function |
345
|
|
|
* @param int $userID |
346
|
|
|
* @return void |
347
|
|
|
*/ |
348
|
|
|
public function updateComplaint($userID) |
349
|
|
|
{ |
350
|
|
|
global $xoopsDB; |
351
|
|
|
$sql = 'UPDATE ' . $xoopsDB->prefix('smallworld_admin') . ' SET complaint = complaint + 1 ' . "WHERE userid = '" . (int)$userID . "'"; |
352
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
353
|
|
|
} |
354
|
|
|
|
355
|
|
|
/** |
356
|
|
|
* updateInspection function |
357
|
|
|
* @param int $userID |
358
|
|
|
* @param int $start |
359
|
|
|
* @param int stop |
360
|
|
|
* @return void |
361
|
|
|
*/ |
362
|
|
View Code Duplication |
public function updateInspection($userID, $start, $stop) |
|
|
|
|
363
|
|
|
{ |
364
|
|
|
global $xoopsDB; |
365
|
|
|
$newstop = $time() + $stop; |
|
|
|
|
366
|
|
|
$sql = 'UPDATE ' . $xoopsDB->prefix('smallworld_admin') . " SET inspect_start = '" . $time() . "', instect_stop = '" . $newstop . "' WHERE userid ='" . (int)$userID . "'"; |
367
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
368
|
|
|
} |
369
|
|
|
|
370
|
|
|
/** |
371
|
|
|
* handleImageEdit function |
372
|
|
|
* @return void |
373
|
|
|
*/ |
374
|
|
View Code Duplication |
public function handleImageEdit() |
|
|
|
|
375
|
|
|
{ |
376
|
|
|
global $xoopsDB; |
377
|
|
|
for ($i = 0, $iMax = count($_POST['id']); $i < $iMax; ++$i) { |
378
|
|
|
$id = (int)$_POST['id'][$i]; |
379
|
|
|
$desc = $_POST['imgdesc'][$i]; |
380
|
|
|
$sql = 'UPDATE ' . $xoopsDB->prefix('smallworld_images') . " SET `desc` = '" . addslashes($desc) . "' WHERE `id`='" . $id . "'"; |
381
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
382
|
|
|
} |
383
|
|
|
} |
384
|
|
|
|
385
|
|
|
/** |
386
|
|
|
* updateInspection function |
387
|
|
|
* - insert aplication for friendship into db or delete if denied |
388
|
|
|
* @param int $status |
389
|
|
|
* @param int $friendid |
390
|
|
|
* @param int $userid |
391
|
|
|
* @return void |
392
|
|
|
*/ |
393
|
|
View Code Duplication |
public function toogleFriendInvite($status, $friendid, $userid) |
|
|
|
|
394
|
|
|
{ |
395
|
|
|
global $xoopsDB; |
396
|
|
|
if (0 == $status) { |
397
|
|
|
$sql = 'INSERT INTO ' . $xoopsDB->prefix('smallworld_friends') . " (me,you,status,date) VALUES ('" . $userid . "', '" . $friendid . "', '1', UNIX_TIMESTAMP())"; |
398
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
399
|
|
|
} |
400
|
|
|
if ($status > 0) { |
401
|
|
|
$sql = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_friends') . " WHERE me = '" . (int)$friendid . "' AND you = '" . (int)$userid . "'"; |
402
|
|
|
$sql2 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_friends') . " WHERE me = '" . (int)$userid . "' AND you = '" . (int)$friendid . "'"; |
403
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
404
|
|
|
$result2 = $xoopsDB->queryF($sql2); |
|
|
|
|
405
|
|
|
|
406
|
|
|
// Since friendship is canceled also following is deleted |
407
|
|
|
$this->toogleFollow(1, $userid, $friendid); |
408
|
|
|
} |
409
|
|
|
} |
410
|
|
|
|
411
|
|
|
/** |
412
|
|
|
* toogleFollow function |
413
|
|
|
* - Insert following to db or delete if requested |
414
|
|
|
* @param int $following |
415
|
|
|
* @param int $myUid |
416
|
|
|
* @param int $friend |
417
|
|
|
* @return void |
418
|
|
|
*/ |
419
|
|
View Code Duplication |
public function toogleFollow($following, $myUid, $friend) |
|
|
|
|
420
|
|
|
{ |
421
|
|
|
global $xoopsDB; |
422
|
|
|
if (0 == $following) { |
423
|
|
|
$sql = 'INSERT INTO ' . $xoopsDB->prefix('smallworld_followers') . " (me,you,status,date) VALUES ('" . $myUid . "', '" . $friend . "', '1', UNIX_TIMESTAMP())"; |
424
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
425
|
|
|
} |
426
|
|
|
if ($following > 0) { |
427
|
|
|
$sql = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_followers') . " WHERE you = '" . (int)$friend . "'"; |
428
|
|
|
$sql .= " AND me = '" . (int)$myUid . "'"; |
429
|
|
|
$sql2 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_followers') . " WHERE me = '" . (int)$friend . "'"; |
430
|
|
|
$sql2 .= " AND you = '" . (int)$myUid . "'"; |
431
|
|
|
$result2 = $xoopsDB->queryF($sql2); |
|
|
|
|
432
|
|
|
} |
433
|
|
|
} |
434
|
|
|
|
435
|
|
|
/** |
436
|
|
|
* SetFriendshitStat function |
437
|
|
|
* @param int $stat |
438
|
|
|
* @param int $myUid |
439
|
|
|
* @param int $friend |
440
|
|
|
* @return void |
441
|
|
|
*/ |
442
|
|
View Code Duplication |
public function SetFriendshitStat($stat, $myUid, $friend) |
|
|
|
|
443
|
|
|
{ |
444
|
|
|
global $xoopsDB; |
445
|
|
|
if (1 == $stat) { |
446
|
|
|
$sql = 'UPDATE ' . $xoopsDB->prefix('smallworld_friends') . " SET status = '2' WHERE `me` = '" . $friend . "' AND `you` = '" . $myUid . "'"; |
447
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
448
|
|
|
$query = 'INSERT INTO ' . $xoopsDB->prefix('smallworld_friends') . " (me,you,status,date) VALUES ('" . $myUid . "', '" . $friend . "', '2', UNIX_TIMESTAMP())"; |
449
|
|
|
$result = $xoopsDB->queryF($query); |
|
|
|
|
450
|
|
|
} |
451
|
|
|
if ($stat < 0) { |
452
|
|
|
$sql = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_friends') . " WHERE me = '" . (int)$friend . "' AND you = '" . (int)$myUid . "'"; |
453
|
|
|
$sql2 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_friends') . " WHERE you = '" . (int)$friend . "' AND me = '" . (int)$myUid . "'"; |
454
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
455
|
|
|
$result2 = $xoopsDB->queryF($sql2); |
|
|
|
|
456
|
|
|
} |
457
|
|
|
} |
458
|
|
|
|
459
|
|
|
/** |
460
|
|
|
* deleteWallMsg function |
461
|
|
|
* @param int $id |
462
|
|
|
* @param int $smallworld_msg_id |
463
|
|
|
* @return true |
|
|
|
|
464
|
|
|
*/ |
465
|
|
View Code Duplication |
public function deleteWallMsg($id, $smallworld_msg_id) |
|
|
|
|
466
|
|
|
{ |
467
|
|
|
global $xoopsDB; |
468
|
|
|
$query = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_messages') . " WHERE msg_id = '" . $smallworld_msg_id . "'"; |
469
|
|
|
$result = $xoopsDB->queryF($query); |
|
|
|
|
470
|
|
|
$query2 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_comments') . " WHERE msg_id_fk = '" . $smallworld_msg_id . "'"; |
471
|
|
|
$result2 = $xoopsDB->queryF($query2); |
|
|
|
|
472
|
|
|
//delete votes |
473
|
|
|
$query3 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_vote') . " WHERE msg_id = '" . $smallworld_msg_id . "'"; |
474
|
|
|
$result3 = $xoopsDB->queryF($query3); |
|
|
|
|
475
|
|
|
return true; |
476
|
|
|
} |
477
|
|
|
|
478
|
|
|
/** |
479
|
|
|
* deleteWallComment function |
480
|
|
|
* - Delete Comments |
481
|
|
|
* @param int $smallworld_com_id |
482
|
|
|
* @return true |
|
|
|
|
483
|
|
|
*/ |
484
|
|
|
public function deleteWallComment($smallworld_com_id) |
485
|
|
|
{ |
486
|
|
|
global $xoopsDB; |
487
|
|
|
$query = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_comments') . " WHERE com_id = '" . $smallworld_com_id . "'"; |
488
|
|
|
$result = $xoopsDB->queryF($query); |
|
|
|
|
489
|
|
|
$query2 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_vote') . " WHERE com_id = '" . $smallworld_com_id . "'"; |
490
|
|
|
$result2 = $xoopsDB->queryF($query2); |
|
|
|
|
491
|
|
|
return true; |
492
|
|
|
} |
493
|
|
|
|
494
|
|
|
/** |
495
|
|
|
* CountUsersRates function |
496
|
|
|
* - Delete Comments |
497
|
|
|
* @param int $userid |
498
|
|
|
* @param string $val |
499
|
|
|
* @return int |
500
|
|
|
*/ |
501
|
|
View Code Duplication |
public function CountUsersRates($userid, $val) |
|
|
|
|
502
|
|
|
{ |
503
|
|
|
global $xoopsUser, $xoopsDB; |
504
|
|
|
$query = 'Select SUM(' . $val . ') as sum from ' . $xoopsDB->prefix('smallworld_vote') . " where owner = '" . $userid . "'"; |
505
|
|
|
$result = $xoopsDB->queryF($query); |
506
|
|
|
while ($row = $xoopsDB->fetchArray($result)) { |
507
|
|
|
$sum = $row['sum']; |
508
|
|
|
} |
509
|
|
|
if ('' == $sum) { |
|
|
|
|
510
|
|
|
$sum = '0'; |
511
|
|
|
} |
512
|
|
|
return $sum; |
513
|
|
|
} |
514
|
|
|
|
515
|
|
|
/** |
516
|
|
|
* deleteAccount function |
517
|
|
|
* - Delete user account and associate rows across tables |
518
|
|
|
* @param int $userid |
519
|
|
|
* @return string |
|
|
|
|
520
|
|
|
*/ |
521
|
|
|
public function deleteAccount($userid) |
522
|
|
|
{ |
523
|
|
|
global $xoopsDB, $xoopsUser; |
524
|
|
|
$user = new \XoopsUser($userid); |
525
|
|
|
$username = $user->uname(); |
526
|
|
|
$sql01 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_admin') . " WHERE userid = '" . $userid . "'"; |
527
|
|
|
$sql02 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_comments') . " WHERE uid_fk = '" . $userid . "'"; |
528
|
|
|
$sql03 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_followers') . " WHERE me = '" . $userid . "' OR you = '" . $userid . "'"; |
529
|
|
|
$sql04 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_friends') . " WHERE me = '" . $userid . "' OR you = '" . $userid . "'"; |
530
|
|
|
$sql05 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_images') . " WHERE userid = '" . $userid . "'"; |
531
|
|
|
$sql06 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_messages') . " WHERE uid_fk = '" . $userid . "'"; |
532
|
|
|
$sql07 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_user') . " WHERE userid = '" . $userid . "'"; |
533
|
|
|
$sql08 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_vote') . " WHERE user_id = '" . $userid . "'"; |
534
|
|
|
$sql09 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_complaints') . " WHERE owner = '" . $userid . "' OR byuser_id = '" . $userid . "'"; |
535
|
|
|
$sql10 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_settings') . " WHERE userid = '" . $userid . "'"; |
536
|
|
|
|
537
|
|
|
$result01 = $xoopsDB->queryF($sql01); |
|
|
|
|
538
|
|
|
$result02 = $xoopsDB->queryF($sql02); |
|
|
|
|
539
|
|
|
$result03 = $xoopsDB->queryF($sql03); |
|
|
|
|
540
|
|
|
$result04 = $xoopsDB->queryF($sql04); |
|
|
|
|
541
|
|
|
$result05 = $xoopsDB->queryF($sql05); |
|
|
|
|
542
|
|
|
$result06 = $xoopsDB->queryF($sql06); |
|
|
|
|
543
|
|
|
$result07 = $xoopsDB->queryF($sql07); |
|
|
|
|
544
|
|
|
$result08 = $xoopsDB->queryF($sql08); |
|
|
|
|
545
|
|
|
$result09 = $xoopsDB->queryF($sql09); |
|
|
|
|
546
|
|
|
$result10 = $xoopsDB->queryF($sql10); |
|
|
|
|
547
|
|
|
// Remove picture dir |
548
|
|
|
$dirname = XOOPS_ROOT_PATH . '/uploads/albums_smallworld' . '/' . $userid . '/'; |
549
|
|
|
$this->smallworld_remDir($userid, $dirname, $empty = false); |
550
|
|
|
echo $username . _AM_SMALLWORLD_ADMIN_USERDELETEDALERT; |
551
|
|
|
} |
552
|
|
|
|
553
|
|
|
/** |
554
|
|
|
* SmallworldDeleteDirectory function |
555
|
|
|
* - Delete images from users on delete |
556
|
|
|
* @param int $userid |
557
|
|
|
* @return true |
|
|
|
|
558
|
|
|
*/ |
559
|
|
View Code Duplication |
public function SmallworldDeleteDirectory($userid) |
|
|
|
|
560
|
|
|
{ |
561
|
|
|
$dirname = XOOPS_ROOT_PATH . '/uploads/albums_smallworld' . '/' . $userid . '/'; |
562
|
|
|
if (is_dir($dirname)) { |
563
|
|
|
$dir_handle = opendir($dirname); |
564
|
|
|
} |
565
|
|
|
if (!$dir_handle) { |
|
|
|
|
566
|
|
|
return false; |
567
|
|
|
} |
568
|
|
|
while ($file = readdir($dir_handle)) { |
569
|
|
|
if ('.' !== $file && '..' !== $file) { |
570
|
|
|
if (!is_dir($dirname . '/' . $file)) { |
571
|
|
|
unlink($dirname . '/' . $file); |
572
|
|
|
} else { |
573
|
|
|
$this->SmallworldDeleteDirectory($dirname . '/' . $file); |
574
|
|
|
} |
575
|
|
|
} |
576
|
|
|
} |
577
|
|
|
closedir($dir_handle); |
578
|
|
|
rmdir($dirname); |
579
|
|
|
return true; |
580
|
|
|
} |
581
|
|
|
|
582
|
|
|
/** |
583
|
|
|
* smallworld_remDir function |
584
|
|
|
* - Remove user image dir in uploads. |
585
|
|
|
* @param int $userid |
586
|
|
|
* @param string|bool $directory |
587
|
|
|
* @param bool|int $empty |
588
|
|
|
* @return true |
|
|
|
|
589
|
|
|
*/ |
590
|
|
|
public function smallworld_remDir($userid, $directory, $empty = false) |
591
|
|
|
{ |
592
|
|
|
if ('' != $userid) { |
593
|
|
|
if ('/' === substr($directory, -1)) { |
594
|
|
|
$directory = substr($directory, 0, -1); |
595
|
|
|
} |
596
|
|
|
|
597
|
|
|
if (!file_exists($directory) || !is_dir($directory)) { |
598
|
|
|
return false; |
599
|
|
|
} elseif (!is_readable($directory)) { |
600
|
|
|
return false; |
601
|
|
|
} else { |
602
|
|
|
$directoryHandle = opendir($directory); |
603
|
|
|
while ($contents = readdir($directoryHandle)) { |
604
|
|
|
if ('.' !== $contents && '..' !== $contents) { |
605
|
|
|
$path = $directory . '/' . $contents; |
606
|
|
|
if (is_dir($path)) { |
607
|
|
|
$this->smallworld_remDir($userid, $path); |
608
|
|
|
} else { |
609
|
|
|
unlink($path); |
610
|
|
|
} |
611
|
|
|
} |
612
|
|
|
} |
613
|
|
|
closedir($directoryHandle); |
614
|
|
|
if (false === $empty) { |
615
|
|
|
if (!rmdir($directory)) { |
616
|
|
|
return false; |
617
|
|
|
} |
618
|
|
|
} |
619
|
|
|
return true; |
620
|
|
|
} |
621
|
|
|
} |
622
|
|
|
} |
623
|
|
|
|
624
|
|
|
/** |
625
|
|
|
* Update private settings |
626
|
|
|
* @param int id ($userid) |
627
|
|
|
* @param string posts (serialized values) |
628
|
|
|
* @return void |
629
|
|
|
*/ |
630
|
|
View Code Duplication |
public function saveSettings($id, $posts) |
|
|
|
|
631
|
|
|
{ |
632
|
|
|
global $xoopsDB; |
633
|
|
|
$sql = 'SELECT value FROM ' . $xoopsDB->prefix('smallworld_settings') . ' WHERE userid = ' . (int)$id . ''; |
634
|
|
|
$result = $xoopsDB->queryF($sql); |
635
|
|
|
$i = $xoopsDB->getRowsNum($result); |
636
|
|
|
if ($i > 0) { |
637
|
|
|
$sql = 'UPDATE ' . $xoopsDB->prefix('smallworld_settings') . " SET value = '" . $posts . "' WHERE userid = " . (int)$id . ''; |
638
|
|
|
} else { |
639
|
|
|
$sql = 'INSERT INTO ' . $xoopsDB->prefix('smallworld_settings') . " (userid,value) VALUES ('" . $id . "', '" . $posts . "')"; |
640
|
|
|
} |
641
|
|
|
$result = $xoopsDB->queryF($sql); |
|
|
|
|
642
|
|
|
$this->GetSettings($id); |
643
|
|
|
} |
644
|
|
|
|
645
|
|
|
/** |
646
|
|
|
* Retrieve private settings |
647
|
|
|
* @param int userid |
648
|
|
|
* @return serialized|string |
|
|
|
|
649
|
|
|
*/ |
650
|
|
View Code Duplication |
public function GetSettings($userid) |
|
|
|
|
651
|
|
|
{ |
652
|
|
|
global $xoopsDB; |
653
|
|
|
$sql = 'SELECT value FROM ' . $xoopsDB->prefix('smallworld_settings') . ' WHERE userid = ' . (int)$userid . ''; |
654
|
|
|
$result = $xoopsDB->queryF($sql); |
655
|
|
|
$i = $xoopsDB->getRowsNum($result); |
656
|
|
|
if ($i < 1) { |
657
|
|
|
$posts = serialize([ |
658
|
|
|
'posts' => 0, |
659
|
|
|
'comments' => 0, |
660
|
|
|
'notify' => 1 |
661
|
|
|
]); |
662
|
|
|
$this->saveSettings($userid, $posts); |
663
|
|
|
$this->GetSettings($userid); |
664
|
|
|
} else { |
665
|
|
|
while ($row = $xoopsDB->fetchArray($result)) { |
666
|
|
|
$data = $row['value']; |
667
|
|
|
} |
668
|
|
|
return json_encode(unserialize(stripslashes($data))); |
|
|
|
|
669
|
|
|
} |
670
|
|
|
} |
671
|
|
|
} |
672
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.