1 | <?php |
||||
2 | /* |
||||
3 | * You may not change or alter any portion of this comment or credits |
||||
4 | * of supporting developers from this source code or any supporting source code |
||||
5 | * which is considered copyrighted (c) material of the original comment or credit authors. |
||||
6 | * |
||||
7 | * This program is distributed in the hope that it will be useful, |
||||
8 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
||||
10 | */ |
||||
11 | |||||
12 | use Xmf\Request; |
||||
13 | |||||
14 | /** |
||||
15 | * @copyright XOOPS Project https://xoops.org/ |
||||
16 | * @license GNU GPL 2.0 or later (https://www.gnu.org/licenses/gpl-2.0.html) |
||||
17 | * @package |
||||
18 | * @since |
||||
19 | * @author XOOPS Development Team, Kazumi Ono (AKA onokazu) |
||||
20 | */ |
||||
21 | |||||
22 | // Check users rights |
||||
23 | if (!is_object($xoopsUser) || !is_object($xoopsModule) || !$xoopsUser->isAdmin($xoopsModule->mid())) { |
||||
24 | exit(_NOPERM); |
||||
25 | } |
||||
26 | // Check is active |
||||
27 | if (!xoops_getModuleOption('active_avatars', 'system')) { |
||||
0 ignored issues
–
show
Deprecated Code
introduced
by
Loading history...
|
|||||
28 | redirect_header('admin.php', 2, _AM_SYSTEM_NOTACTIVE); |
||||
29 | } |
||||
30 | // Get Action type |
||||
31 | $op = Request::getString('op', 'list'); |
||||
32 | |||||
33 | switch ($op) { |
||||
34 | default: |
||||
35 | case 'list': |
||||
36 | // Define main template |
||||
37 | $GLOBALS['xoopsOption']['template_main'] = 'system_avatars.tpl'; |
||||
38 | // Call Header |
||||
39 | xoops_cp_header(); |
||||
40 | // Define Stylesheet |
||||
41 | $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css'); |
||||
42 | $xoTheme->addScript('browse.php?Frameworks/jquery/jquery.js'); |
||||
43 | $xoTheme->addScript('modules/system/js/admin.js'); |
||||
44 | // Define Breadcrumb and tips |
||||
45 | $xoBreadCrumb->addLink(_AM_SYSTEM_AVATAR_MANAGER, system_adminVersion('avatars', 'adminpath')); |
||||
46 | $xoBreadCrumb->addHelp(system_adminVersion('avatars', 'help')); |
||||
47 | $xoBreadCrumb->addTips(_AM_SYSTEM_AVATAR_TIPS); |
||||
48 | $xoBreadCrumb->render(); |
||||
49 | // Get avatar handler |
||||
50 | /** @var XoopsAvatarHandler $avt_handler */ |
||||
51 | $avt_handler = xoops_getModuleHandler('avatar'); |
||||
52 | // Get User Config |
||||
53 | /** @var XoopsConfigHandler $config_handler */ |
||||
54 | $config_handler = xoops_getHandler('config'); |
||||
55 | $xoopsConfigUser = $config_handler->getConfigsByCat(XOOPS_CONF_USER); |
||||
56 | // User language |
||||
57 | xoops_loadLanguage('user'); |
||||
58 | // Count avatars |
||||
59 | $savatar_count = $avt_handler->getCount(new Criteria('avatar_type', 'S')); |
||||
60 | $cavatar_count = $avt_handler->getCount(new Criteria('avatar_type', 'C')); |
||||
61 | // Assign Template variables |
||||
62 | $xoopsTpl->assign('view_cat', true); |
||||
63 | $xoopsTpl->assign('count_system', $savatar_count); |
||||
64 | $xoopsTpl->assign('count_custom', $cavatar_count); |
||||
65 | // Create form |
||||
66 | $avatar = $avt_handler->create(); |
||||
67 | $form = $avatar->getForm(); |
||||
68 | // Assign form |
||||
69 | $xoopsTpl->assign('form', $form->render()); |
||||
70 | // Call Footer |
||||
71 | xoops_cp_footer(); |
||||
72 | break; |
||||
73 | |||||
74 | case 'listavt': |
||||
75 | // Get Avatar type |
||||
76 | $type = Request::getString('type', 'c'); |
||||
77 | $start = Request::getInt('start', 0); |
||||
78 | // Define main template |
||||
79 | $GLOBALS['xoopsOption']['template_main'] = 'system_avatars.tpl'; |
||||
80 | // Call Header |
||||
81 | xoops_cp_header(); |
||||
82 | // Define Stylesheet |
||||
83 | $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css'); |
||||
84 | // Define scripts |
||||
85 | $xoTheme->addScript('browse.php?Frameworks/jquery/jquery.js'); |
||||
86 | $xoTheme->addScript('modules/system/js/admin.js'); |
||||
87 | // Define Breadcrumb and tips |
||||
88 | $xoBreadCrumb->addLink(_AM_SYSTEM_AVATAR_MANAGER, system_adminVersion('avatars', 'adminpath')); |
||||
89 | $xoBreadCrumb->addLink(($type === 's' ? _AM_SYSTEM_AVATAR_SYSTEM : _AM_SYSTEM_AVATAR_CUSTOM)); |
||||
90 | $xoBreadCrumb->addHelp(system_adminVersion('avatars', 'help') . '#' . $type); |
||||
91 | $xoBreadCrumb->addTips(_AM_SYSTEM_AVATAR_TIPS); |
||||
92 | $xoBreadCrumb->render(); |
||||
93 | // Get avatar handler |
||||
94 | /** @var XoopsAvatarHandler $avt_handler */ |
||||
95 | $avt_handler = xoops_getHandler('avatar'); |
||||
96 | // Count avatars |
||||
97 | $savatar_count = $avt_handler->getCount(new Criteria('avatar_type', 'S')); |
||||
98 | $cavatar_count = $avt_handler->getCount(new Criteria('avatar_type', 'C')); |
||||
99 | // Assign Template variables |
||||
100 | $xoopsTpl->assign('type', $type); |
||||
101 | $xoopsTpl->assign('count_system', $savatar_count); |
||||
102 | $xoopsTpl->assign('count_custom', $cavatar_count); |
||||
103 | // Filter avatars |
||||
104 | $criteria = new Criteria('avatar_type', $type); |
||||
105 | $avtcount = $avt_handler->getCount($criteria); |
||||
106 | // Get avatar list |
||||
107 | $criteria->setStart($start); |
||||
108 | $criteria->setLimit(xoops_getModuleOption('avatars_pager', 'system')); |
||||
0 ignored issues
–
show
The function
xoops_getModuleOption() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
109 | $avatars = $avt_handler->getObjects($criteria, true); |
||||
110 | // Construct avatars array |
||||
111 | $avatar_list = array(); |
||||
112 | $i = 0; |
||||
113 | foreach (array_keys($avatars) as $i) { |
||||
114 | $avatar_list[$i] = $avatars[$i]->toArray(); |
||||
115 | $avatar_list[$i]['type'] = $type; |
||||
116 | $avatar_list[$i]['count'] = count($avt_handler->getUser($avatars[$i])); |
||||
117 | if ($type === 'c') { |
||||
118 | $user = $avt_handler->getUser($avatars[$i]); |
||||
119 | if (is_array($user) && isset($user[0])) { |
||||
120 | $avatar_list[$i]['user'] = $user[0]; |
||||
121 | } |
||||
122 | } |
||||
123 | } |
||||
124 | $xoopsTpl->assign('avatars_list', $avatar_list); |
||||
125 | // Display Page Navigation |
||||
126 | if ($avtcount > xoops_getModuleOption('avatars_pager')) { |
||||
0 ignored issues
–
show
The function
xoops_getModuleOption() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
127 | $nav = new XoopsPageNav( |
||||
128 | $avtcount, |
||||
129 | xoops_getModuleOption('avatars_pager', 'system'), |
||||
0 ignored issues
–
show
The function
xoops_getModuleOption() has been deprecated.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
130 | $start, |
||||
131 | 'start', |
||||
132 | 'fct=avatars&type=' . $type . '&op=listavt' |
||||
133 | ); |
||||
134 | $xoopsTpl->assign('nav_menu', $nav->renderNav(4)); |
||||
135 | } |
||||
136 | // Call Footer |
||||
137 | xoops_cp_footer(); |
||||
138 | break; |
||||
139 | |||||
140 | case 'edit': |
||||
141 | // Define main template |
||||
142 | $GLOBALS['xoopsOption']['template_main'] = 'system_avatars.tpl'; |
||||
143 | // Call Header |
||||
144 | xoops_cp_header(); |
||||
145 | // Define Stylesheet |
||||
146 | $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css'); |
||||
147 | // Define Breadcrumb and tips |
||||
148 | $xoBreadCrumb->addLink(_AM_SYSTEM_AVATAR_MANAGER, system_adminVersion('avatars', 'adminpath')); |
||||
149 | $xoBreadCrumb->addLink(_AM_SYSTEM_AVATAR_EDIT); |
||||
150 | $xoBreadCrumb->addHelp(system_adminVersion('avatars', 'help') . '#edit'); |
||||
151 | $xoBreadCrumb->addTips(_AM_SYSTEM_AVATAR_TIPS); |
||||
152 | $xoBreadCrumb->render(); |
||||
153 | // User language |
||||
154 | xoops_loadLanguage('user'); |
||||
155 | // Get avatar handler |
||||
156 | $avt_handler = xoops_getModuleHandler('avatar'); |
||||
157 | $avatar_id = Request::getInt('avatar_id', 0); |
||||
158 | if ($avatar_id > 0) { |
||||
159 | $avatar = $avt_handler->get($avatar_id); |
||||
160 | // Create form |
||||
161 | $form = $avatar->getForm(); |
||||
162 | // Assign form |
||||
163 | $xoopsTpl->assign('form', $form->render()); |
||||
164 | } else { |
||||
165 | redirect_header('admin.php?fct=avatars', 1, _AM_SYSTEM_DBERROR); |
||||
166 | } |
||||
167 | // Call Footer |
||||
168 | xoops_cp_footer(); |
||||
169 | break; |
||||
170 | |||||
171 | case 'save': |
||||
172 | // Check security |
||||
173 | if (!$GLOBALS['xoopsSecurity']->check()) { |
||||
174 | redirect_header('admin.php?fct=avatars', 3, implode('<br>', $GLOBALS['xoopsSecurity']->getErrors())); |
||||
175 | } |
||||
176 | /** @var XoopsConfigHandler $config_handler */ |
||||
177 | $config_handler = xoops_getHandler('config'); |
||||
178 | $xoopsConfigUser = $config_handler->getConfigsByCat(XOOPS_CONF_USER); |
||||
179 | // Upload class |
||||
180 | include_once $GLOBALS['xoops']->path('/class/uploader.php'); |
||||
181 | |||||
182 | $uploader = new XoopsMediaUploader( |
||||
183 | XOOPS_UPLOAD_PATH . '/avatars', |
||||
184 | array( |
||||
185 | 'image/gif', |
||||
186 | 'image/jpeg', |
||||
187 | 'image/pjpeg', |
||||
188 | 'image/x-png', |
||||
189 | 'image/png'), |
||||
190 | $xoopsConfigUser['avatar_maxsize'], |
||||
191 | $xoopsConfigUser['avatar_width'], |
||||
192 | $xoopsConfigUser['avatar_height'] |
||||
193 | ); |
||||
194 | // Get avatar handler |
||||
195 | $avt_handler = xoops_getHandler('avatar'); |
||||
196 | // Get avatar id |
||||
197 | $avatar_id = Request::getInt('avatar_id', 0, 'POST'); |
||||
198 | if ($avatar_id > 0) { |
||||
199 | $avatar = $avt_handler->get($avatar_id); |
||||
200 | } else { |
||||
201 | $avatar = $avt_handler->create(); |
||||
202 | } |
||||
203 | $err = array(); |
||||
204 | if ($_FILES['avatar_file']['error'] != UPLOAD_ERR_NO_FILE) { |
||||
205 | if ($uploader->fetchMedia('avatar_file')) { |
||||
206 | $uploader->setPrefix('savt'); |
||||
207 | if (!$uploader->upload()) { |
||||
208 | $err[] =& $uploader->getErrors(); |
||||
209 | } else { |
||||
210 | $avatar->setVar('avatar_name', Request::getString('avatar_name', '', 'POST')); |
||||
211 | $avatar->setVar('avatar_display', Request::getBool('avatar_display', false, 'POST')); |
||||
212 | $avatar->setVar('avatar_weight', Request::getInt('avatar_weight', 0, 'POST')); |
||||
213 | $avatar->setVar('avatar_file', 'avatars/' . $uploader->getSavedFileName()); |
||||
214 | $avatar->setVar('avatar_mimetype', $uploader->getMediaType()); |
||||
215 | $avatar->setVar('avatar_type', 's'); |
||||
216 | if (!$avt_handler->insert($avatar)) { |
||||
217 | $err[] = sprintf(_FAILSAVEIMG, $avatar->getVar('avatar_name')); |
||||
218 | } |
||||
219 | } |
||||
220 | } else { |
||||
221 | $err[] = $uploader->getErrors(); |
||||
222 | } |
||||
223 | } else { |
||||
224 | $file = Request::getString('avatar_file', 'blank.gif'); |
||||
225 | $avatar->setVars($_REQUEST); |
||||
226 | $avatar->setVar('avatar_file', 'avatars/' . $file); |
||||
227 | if (!$avt_handler->insert($avatar)) { |
||||
228 | $err[] = sprintf(_FAILSAVEIMG, $avatar->getVar('avatar_name')); |
||||
229 | } |
||||
230 | } |
||||
231 | if (count($err) > 0) { |
||||
232 | // Define main template |
||||
233 | $GLOBALS['xoopsOption']['template_main'] = 'system_header.tpl'; |
||||
234 | // Call header |
||||
235 | xoops_cp_header(); |
||||
236 | // Define Stylesheet |
||||
237 | $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css'); |
||||
238 | // Define Breadcrumb and tips |
||||
239 | $xoBreadCrumb->addLink(_AM_SYSTEM_AVATAR_MANAGER, system_adminVersion('avatars', 'adminpath')); |
||||
240 | $xoBreadCrumb->addLink(_AM_SYSTEM_AVATAR_ERROR); |
||||
241 | $xoBreadCrumb->render(); |
||||
242 | // Display errors |
||||
243 | xoops_error($err); |
||||
244 | // Call Footer |
||||
245 | xoops_cp_footer(); |
||||
246 | exit(); |
||||
247 | } |
||||
248 | redirect_header('admin.php?fct=avatars', 2, _AM_SYSTEM_DBUPDATED); |
||||
249 | break; |
||||
250 | |||||
251 | case 'display': |
||||
252 | // Get avatar handler |
||||
253 | $avt_handler = xoops_getHandler('avatar'); |
||||
254 | // Get avatar id |
||||
255 | $avatar_id = Request::getInt('avatar_id', 0, 'POST'); |
||||
256 | if ($avatar_id > 0) { |
||||
257 | // Get avatar |
||||
258 | $avatar = $avt_handler->get($avatar_id); |
||||
259 | $old = $avatar->getVar('avatar_display'); |
||||
260 | // Set value |
||||
261 | $avatar->setVar('avatar_display', !$old); |
||||
262 | if (!$avt_handler->insert($avatar)) { |
||||
263 | $error = true; |
||||
264 | } |
||||
265 | } |
||||
266 | break; |
||||
267 | |||||
268 | case 'delfile': |
||||
269 | // Define main template |
||||
270 | $GLOBALS['xoopsOption']['template_main'] = 'system_avatars.tpl'; |
||||
271 | // Call Header |
||||
272 | xoops_cp_header(); |
||||
273 | // Define Stylesheet |
||||
274 | $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css'); |
||||
275 | // Define Breadcrumb and tips |
||||
276 | $xoBreadCrumb->addLink(_AM_SYSTEM_AVATAR_MANAGER, system_adminVersion('avatars', 'adminpath')); |
||||
277 | $xoBreadCrumb->addLink(_AM_SYSTEM_AVATAR_DELETE); |
||||
278 | $xoBreadCrumb->addHelp(system_adminVersion('avatars', 'help') . '#delete'); |
||||
279 | $xoBreadCrumb->render(); |
||||
280 | // Get variables |
||||
281 | $user_id = Request::getInt('user_id', 0); |
||||
282 | $avatar_id = Request::getInt('avatar_id', 0); |
||||
283 | // Get avatar handler |
||||
284 | $avt_handler = xoops_getHandler('avatar'); |
||||
285 | if ($avatar_id > 0) { |
||||
286 | $avatar = $avt_handler->get($avatar_id); |
||||
287 | $msg = '<div class="spacer"><img src="' . XOOPS_UPLOAD_URL . '/' |
||||
288 | . $avatar->getVar('avatar_file', 's') |
||||
289 | . '" alt="" /></div><div class="txtcenter bold">' |
||||
290 | . $avatar->getVar('avatar_name', 's') |
||||
291 | . '</div>' . _AM_SYSTEM_AVATAR_SUREDEL; |
||||
292 | // Display message |
||||
293 | xoops_confirm( |
||||
294 | array( |
||||
295 | 'op' => 'delfileok', |
||||
296 | 'avatar_id' => $avatar_id, |
||||
297 | 'fct' => 'avatars', |
||||
298 | 'user_id' => $user_id |
||||
299 | ), |
||||
300 | 'admin.php', |
||||
301 | $msg |
||||
302 | ); |
||||
303 | } else { |
||||
304 | redirect_header('admin.php?fct=avatars', 1, _AM_SYSTEM_DBERROR); |
||||
305 | } |
||||
306 | // Call footer |
||||
307 | xoops_cp_footer(); |
||||
308 | break; |
||||
309 | |||||
310 | case 'delfileok': |
||||
311 | if (!$GLOBALS['xoopsSecurity']->check()) { |
||||
312 | redirect_header('admin.php?fct=avatars', 1, 3, implode('<br>', $GLOBALS['xoopsSecurity']->getErrors())); |
||||
313 | } |
||||
314 | $avatar_id = Request::getInt('avatar_id', 0, 'POST'); |
||||
315 | if ($avatar_id <= 0) { |
||||
316 | redirect_header('admin.php?fct=avatars', 1, _AM_SYSTEM_DBERROR); |
||||
317 | } |
||||
318 | $avt_handler = xoops_getHandler('avatar'); |
||||
319 | $avatar = $avt_handler->get($avatar_id); |
||||
320 | if (!is_object($avatar)) { |
||||
321 | redirect_header('admin.php?fct=avatars', 1, _AM_SYSTEM_DBERROR); |
||||
322 | } |
||||
323 | if (!$avt_handler->delete($avatar)) { |
||||
324 | // Call Header |
||||
325 | xoops_cp_header(); |
||||
326 | // Display errors |
||||
327 | xoops_error(sprintf(_AM_SYSTEM_AVATAR_FAILDEL, $avatar->getVar('avatar_id'))); |
||||
328 | // Call Footer |
||||
329 | xoops_cp_footer(); |
||||
330 | exit(); |
||||
331 | } |
||||
332 | $file = $avatar->getVar('avatar_file'); |
||||
333 | // Delete file |
||||
334 | @unlink(XOOPS_UPLOAD_PATH . '/' . $file); |
||||
335 | // Update member profile |
||||
336 | if (isset($user_id) && $avatar->getVar('avatar_type') === 'C') { |
||||
337 | $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('users') |
||||
338 | . " SET user_avatar='blank.gif' WHERE uid=" . (int)$user_id); |
||||
339 | } else { |
||||
340 | $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('users') |
||||
341 | . " SET user_avatar='blank.gif' WHERE user_avatar='" . $file . "'"); |
||||
342 | } |
||||
343 | redirect_header('admin.php?fct=avatars', 2, _AM_SYSTEM_DBUPDATED); |
||||
344 | break; |
||||
345 | |||||
346 | case 'multiupload': |
||||
347 | // Define main template |
||||
348 | $GLOBALS['xoopsOption']['template_main'] = 'system_avatars.tpl'; |
||||
349 | // Call Header |
||||
350 | xoops_cp_header(); |
||||
351 | // Define Stylesheet |
||||
352 | $xoTheme->addStylesheet(XOOPS_URL . '/media/fine-uploader/fine-uploader-new.css'); |
||||
353 | $xoTheme->addStylesheet(XOOPS_URL . '/media/fine-uploader/ManuallyTriggerUploads.css'); |
||||
354 | $xoTheme->addStylesheet(XOOPS_URL . '/media/font-awesome/css/font-awesome.min.css'); |
||||
355 | $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css'); |
||||
356 | // Define scripts |
||||
357 | $xoTheme->addScript('browse.php?Frameworks/jquery/jquery.js'); |
||||
358 | $xoTheme->addScript('modules/system/js/admin.js'); |
||||
359 | $xoTheme->addScript('media/fine-uploader/fine-uploader.js'); |
||||
360 | // Define Breadcrumb and tips |
||||
361 | $xoBreadCrumb->addLink(_AM_SYSTEM_AVATAR_MANAGER, system_adminVersion('avatars', 'adminpath')); |
||||
362 | $xoBreadCrumb->addLink(_AM_SYSTEM_AVATAR_MULTIUPLOAD); |
||||
363 | $xoBreadCrumb->render(); |
||||
364 | /** @var XoopsConfigHandler $config_handler */ |
||||
365 | $config_handler = xoops_getHandler('config'); |
||||
366 | $xoopsConfigUser = $config_handler->getConfigsByCat(XOOPS_CONF_USER); |
||||
367 | |||||
368 | $xoopsTpl->assign('multiupload', true); |
||||
369 | $xoopsTpl->assign('imgcat_maxsize', $xoopsConfigUser['avatar_maxsize']); |
||||
370 | $xoopsTpl->assign('imgcat_maxwidth', $xoopsConfigUser['avatar_width']); |
||||
371 | $xoopsTpl->assign('imgcat_maxheight', $xoopsConfigUser['avatar_height']); |
||||
372 | $payload = array( |
||||
373 | 'aud' => 'ajaxfineupload.php', |
||||
374 | 'cat' => '', |
||||
375 | 'uid' => $xoopsUser instanceof \XoopsUser ? $xoopsUser->id() : 0, |
||||
376 | 'handler' => 'fineavataruploadhandler', |
||||
377 | 'moddir' => 'system', |
||||
378 | ); |
||||
379 | $jwt = \Xmf\Jwt\TokenFactory::build('fineuploader', $payload, 60*30); // token good for 30 minutes |
||||
380 | $xoopsTpl->assign('jwt', $jwt); |
||||
381 | $fineup_debug = 'false'; |
||||
382 | if (($xoopsUser instanceof \XoopsUser ? $xoopsUser->isAdmin() : false) |
||||
383 | && isset($_REQUEST['FINEUPLOADER_DEBUG']) |
||||
384 | ) { |
||||
385 | $fineup_debug = 'true'; |
||||
386 | } |
||||
387 | $xoopsTpl->assign('fineup_debug', $fineup_debug); |
||||
388 | |||||
389 | // Call footer |
||||
390 | xoops_cp_footer(); |
||||
391 | |||||
392 | break; |
||||
393 | } |
||||
394 |