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 | /** |
||||
13 | * @copyright XOOPS Project https://xoops.org/ |
||||
14 | * @license GNU GPL 2.0 or later (https://www.gnu.org/licenses/gpl-2.0.html) |
||||
15 | * @package |
||||
16 | * @since |
||||
17 | * @author XOOPS Development Team, Kazumi Ono (AKA onokazu) |
||||
18 | */ |
||||
19 | /** @var XoopsUser $xoopsUser */ |
||||
20 | /** @var XoopsModule $xoopsModule */ |
||||
21 | use Xmf\Request; |
||||
22 | |||||
23 | // Check users rights |
||||
24 | if (!is_object($xoopsUser) || !is_object($xoopsModule) || !$xoopsUser->isAdmin($xoopsModule->mid())) { |
||||
25 | exit(_NOPERM); |
||||
26 | } |
||||
27 | |||||
28 | include_once XOOPS_ROOT_PATH . '/modules/system/admin/users/users.php'; |
||||
29 | // Get Action type |
||||
30 | $op = Request::getString('op', 'default'); |
||||
31 | /** @var XoopsMemberHandler $member_handler */ |
||||
32 | $member_handler = xoops_getHandler('member'); |
||||
33 | // Define main template |
||||
34 | $GLOBALS['xoopsOption']['template_main'] = 'system_users.tpl'; |
||||
35 | // Call Header |
||||
36 | xoops_cp_header(); |
||||
37 | |||||
38 | $myts = \MyTextSanitizer::getInstance(); |
||||
39 | // Define Stylesheet |
||||
40 | $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css'); |
||||
41 | $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/ui/' . xoops_getModuleOption('jquery_theme', 'system') . '/ui.all.css'); |
||||
0 ignored issues
–
show
Deprecated Code
introduced
by
Loading history...
|
|||||
42 | // Define scripts |
||||
43 | $xoTheme->addScript('modules/system/js/admin.js'); |
||||
44 | // Define Breadcrumb and tips |
||||
45 | $xoBreadCrumb->addLink(_AM_SYSTEM_USERS_NAV_MAIN, system_adminVersion('users', 'adminpath')); |
||||
46 | |||||
47 | $uid = Request::getInt('uid', 0); |
||||
48 | switch ($op) { |
||||
49 | |||||
50 | // Edit user |
||||
51 | case 'users_edit': |
||||
52 | // Assign Breadcrumb menu |
||||
53 | $xoBreadCrumb->addHelp(system_adminVersion('users', 'help') . '#edit'); |
||||
54 | $xoBreadCrumb->addLink(_AM_SYSTEM_USERS_NAV_EDIT_USER); |
||||
55 | $xoBreadCrumb->render(); |
||||
56 | form_user(false, $uid); |
||||
57 | break; |
||||
58 | |||||
59 | // Add user |
||||
60 | case 'users_add': |
||||
61 | // Assign Breadcrumb menu |
||||
62 | $xoBreadCrumb->addHelp(system_adminVersion('users', 'help') . '#add'); |
||||
63 | $xoBreadCrumb->addLink(_AM_SYSTEM_USERS_NAV_ADD_USER); |
||||
64 | $xoBreadCrumb->render(); |
||||
65 | form_user(true); |
||||
66 | break; |
||||
67 | |||||
68 | // Delete user |
||||
69 | case 'users_delete': |
||||
70 | $xoBreadCrumb->render(); |
||||
71 | $user = $member_handler->getUser($uid); |
||||
72 | if ((int)Request::getInt('ok', 0) === 1) { |
||||
73 | if (!$GLOBALS['xoopsSecurity']->check()) { |
||||
74 | redirect_header('admin.php?fct=users', 3, implode('<br>', $GLOBALS['xoopsSecurity']->getErrors())); |
||||
75 | } |
||||
76 | |||||
77 | $groups = $user->getGroups(); |
||||
78 | if (in_array(XOOPS_GROUP_ADMIN, $groups)) { |
||||
79 | xoops_error(sprintf(_AM_SYSTEM_USERS_NO_ADMINSUPP, $user->getVar('uname'))); |
||||
80 | } elseif (!$member_handler->deleteUser($user)) { |
||||
81 | xoops_error(sprintf(_AM_SYSTEM_USERS_NO_SUPP, $user->getVar('uname'))); |
||||
82 | } else { |
||||
83 | /** @var XoopsOnlineHandler $online_handler */ |
||||
84 | $online_handler = xoops_getHandler('online'); |
||||
85 | $online_handler->destroy($uid); |
||||
86 | // RMV-NOTIFY |
||||
87 | xoops_notification_deletebyuser($uid); |
||||
88 | redirect_header('admin.php?fct=users', 1, _AM_SYSTEM_DBUPDATED); |
||||
89 | } |
||||
90 | } else { |
||||
91 | //Assign Breadcrumb menu |
||||
92 | $xoBreadCrumb->addHelp(system_adminVersion('users', 'help') . '#delete'); |
||||
93 | $xoBreadCrumb->addLink(_AM_SYSTEM_USERS_NAV_DELETE_USER); |
||||
94 | $xoBreadCrumb->render(); |
||||
95 | xoops_confirm(array( |
||||
96 | 'ok' => 1, |
||||
97 | 'uid' => $uid, |
||||
98 | 'op' => 'users_delete'), $_SERVER['REQUEST_URI'], sprintf(_AM_SYSTEM_USERS_FORM_SURE_DEL, $user->getVar('uname'))); |
||||
99 | } |
||||
100 | break; |
||||
101 | |||||
102 | // Delete users |
||||
103 | case 'action_group': |
||||
104 | if (!$GLOBALS['xoopsSecurity']->check()) { |
||||
105 | redirect_header('admin.php?fct=users', 3, implode('<br>', $GLOBALS['xoopsSecurity']->getErrors())); |
||||
106 | } |
||||
107 | |||||
108 | if (Request::hasVar('memberslist_id')) { |
||||
109 | $xoBreadCrumb->render(); |
||||
110 | $error = ''; |
||||
111 | foreach (Request::getArray('memberslist_id', array()) as $del) { |
||||
112 | $del = (int)$del; |
||||
113 | $user = $member_handler->getUser($del); |
||||
114 | $groups = $user->getGroups(); |
||||
115 | if (in_array(XOOPS_GROUP_ADMIN, $groups)) { |
||||
116 | $error .= sprintf(_AM_SYSTEM_USERS_NO_ADMINSUPP, $user->getVar('uname')); |
||||
117 | } elseif (!$member_handler->deleteUser($user)) { |
||||
118 | $error .= sprintf(_AM_SYSTEM_USERS_NO_SUPP, $user->getVar('uname')); |
||||
119 | } else { |
||||
120 | /** @var XoopsOnlineHandler $online_handler */ |
||||
121 | $online_handler = xoops_getHandler('online'); |
||||
122 | $online_handler->destroy($del); |
||||
123 | // RMV-NOTIFY |
||||
124 | xoops_notification_deletebyuser($del); |
||||
125 | } |
||||
126 | } |
||||
127 | if ($error !== '') { |
||||
128 | redirect_header('admin.php?fct=users', 3, sprintf(_AM_SYSTEM_USERS_ERROR, $error)); |
||||
129 | } else { |
||||
130 | redirect_header('admin.php?fct=users', 1, _AM_SYSTEM_DBUPDATED); |
||||
131 | } |
||||
132 | } |
||||
133 | break; |
||||
134 | |||||
135 | // Save user |
||||
136 | case 'users_save': |
||||
137 | global $xoopsConfig, $xoopsModule, $xoopsUser; |
||||
138 | |||||
139 | if (Request::hasVar('uid')) { |
||||
140 | //Update user |
||||
141 | if (!$GLOBALS['xoopsSecurity']->check()) { |
||||
142 | redirect_header('admin.php?fct=users', 3, implode('<br>', $GLOBALS['xoopsSecurity']->getErrors())); |
||||
143 | } |
||||
144 | // RMV-NOTIFY |
||||
145 | $user_avatar = $theme = null; |
||||
146 | if (!Request::hasVar('attachsig')) { |
||||
147 | $attachsig = null; |
||||
148 | } |
||||
149 | if (!Request::hasVar('user_viewemail')) { |
||||
150 | $user_viewemail = null; |
||||
151 | } |
||||
152 | |||||
153 | $edituser = $member_handler->getUser($uid); |
||||
154 | if ($edituser->getVar('uname', 'n') != Request::getString('username') && $member_handler->getUserCount(new Criteria('uname', $myts->addSlashes(Request::getString('username')))) > 0) { |
||||
155 | xoops_cp_header(); |
||||
156 | xoops_error(sprintf(_AM_SYSTEM_USERS_PSEUDO_ERROR, htmlspecialchars(Request::getString('username'), ENT_QUOTES | ENT_HTML5))); |
||||
157 | xoops_cp_footer(); |
||||
158 | } elseif ($edituser->getVar('email', 'n') != Request::getEmail('email') && $member_handler->getUserCount(new Criteria('email', $myts->addSlashes(Request::getEmail('email')))) > 0) { |
||||
159 | xoops_cp_header(); |
||||
160 | xoops_error(sprintf(_AM_SYSTEM_USERS_MAIL_ERROR, htmlspecialchars(Request::getEmail('email'), ENT_QUOTES | ENT_HTML5))); |
||||
161 | xoops_cp_footer(); |
||||
162 | } else { |
||||
163 | $edituser->setVar('name', Request::getString('name')); |
||||
164 | $edituser->setVar('uname', Request::getString('username')); |
||||
165 | $edituser->setVar('email', Request::getEmail('email')); |
||||
166 | $url = formatURL(Request::getUrl('url')); |
||||
167 | $edituser->setVar('url', $url); |
||||
168 | $edituser->setVar('user_icq', Request::getString('user_icq')); |
||||
169 | $edituser->setVar('user_from', Request::getString('user_from')); |
||||
170 | $edituser->setVar('user_sig', Request::getString('user_sig')); |
||||
171 | $user_viewemail = (Request::hasVar('user_viewemail') && Request::getInt('user_viewemail') == 1) ? 1 : 0; |
||||
172 | $edituser->setVar('user_viewemail', $user_viewemail); |
||||
173 | $edituser->setVar('user_aim', Request::getString('user_aim')); |
||||
174 | $edituser->setVar('user_yim', Request::getString('user_yim')); |
||||
175 | $edituser->setVar('user_msnm', Request::getString('user_msnm')); |
||||
176 | $attachsig = (Request::hasVar('attachsig') && Request::getInt('attachsig') == 1) ? 1 : 0; |
||||
177 | $edituser->setVar('attachsig', $attachsig); |
||||
178 | $edituser->setVar('timezone_offset', Request::getString('timezone_offset')); |
||||
179 | $edituser->setVar('uorder', Request::getString('uorder')); |
||||
180 | $edituser->setVar('umode', Request::getString('umode')); |
||||
181 | // RMV-NOTIFY |
||||
182 | $edituser->setVar('notify_method', Request::getString('notify_method')); |
||||
183 | $edituser->setVar('notify_mode', Request::getString('notify_mode')); |
||||
184 | $edituser->setVar('bio', Request::getString('bio')); |
||||
185 | $edituser->setVar('rank', Request::getString('rank')); |
||||
186 | $edituser->setVar('user_occ', Request::getString('user_occ')); |
||||
187 | $edituser->setVar('user_intrest', Request::getString('user_intrest')); |
||||
188 | $edituser->setVar('user_mailok', Request::getString('user_mailok')); |
||||
189 | if ('' !== Request::getString('pass2')) { |
||||
190 | if (Request::getString('password') != Request::getString('pass2')) { |
||||
191 | xoops_cp_header(); |
||||
192 | echo ' |
||||
193 | <strong>' . _AM_SYSTEM_USERS_STNPDNM . '</strong>'; |
||||
194 | xoops_cp_footer(); |
||||
195 | exit(); |
||||
196 | } |
||||
197 | $edituser->setVar('pass', password_hash(Request::getString('password'), PASSWORD_DEFAULT)); |
||||
198 | } |
||||
199 | if (!$member_handler->insertUser($edituser)) { |
||||
200 | xoops_cp_header(); |
||||
201 | echo $edituser->getHtmlErrors(); |
||||
202 | xoops_cp_footer(); |
||||
203 | } else { |
||||
204 | $groups = Request::getArray('groups', array()); |
||||
205 | if (!empty($groups)) { |
||||
206 | global $xoopsUser; |
||||
207 | $oldgroups = $edituser->getGroups(); |
||||
208 | //If the edited user is the current user and the current user WAS in the webmaster's group and is NOT in the new groups array |
||||
209 | if ($edituser->getVar('uid') == $xoopsUser->getVar('uid') && in_array(XOOPS_GROUP_ADMIN, $oldgroups) && !in_array(XOOPS_GROUP_ADMIN, $groups)) { |
||||
210 | //Add the webmaster's group to the groups array to prevent accidentally removing oneself from the webmaster's group |
||||
211 | $groups[] = XOOPS_GROUP_ADMIN; |
||||
212 | $_REQUEST['groups'] = $groups; // Update the global variable |
||||
213 | } |
||||
214 | /** @var XoopsMemberHandler $member_handler */ |
||||
215 | $member_handler = xoops_getHandler('member'); |
||||
216 | foreach ($oldgroups as $groupid) { |
||||
217 | $member_handler->removeUsersFromGroup($groupid, array($edituser->getVar('uid'))); |
||||
218 | } |
||||
219 | foreach ($groups as $groupid) { |
||||
220 | $member_handler->addUserToGroup($groupid, $edituser->getVar('uid')); |
||||
221 | } |
||||
222 | } |
||||
223 | redirect_header('admin.php?fct=users', 1, _AM_SYSTEM_DBUPDATED); |
||||
224 | } |
||||
225 | } |
||||
226 | exit(); |
||||
227 | } else { |
||||
228 | //Add user |
||||
229 | if (!$GLOBALS['xoopsSecurity']->check()) { |
||||
230 | redirect_header('admin.php?fct=users', 3, implode('<br>', $GLOBALS['xoopsSecurity']->getErrors())); |
||||
231 | } |
||||
232 | if (!Request::getString('username') || !Request::getString('email') || !Request::getString('password')) { |
||||
233 | $adduser_errormsg = _AM_SYSTEM_USERS_YMCACF; |
||||
234 | } else { |
||||
235 | /** @var XoopsMemberHandler $member_handler */ |
||||
236 | $member_handler = xoops_getHandler('member'); |
||||
237 | // make sure the username doesnt exist yet |
||||
238 | if ($member_handler->getUserCount(new Criteria('uname', $myts->addSlashes(Request::getString('username')))) > 0) { |
||||
239 | $adduser_errormsg = 'User name ' . htmlspecialchars(Request::getString('username'), ENT_QUOTES | ENT_HTML5) . ' already exists'; |
||||
240 | } else { |
||||
241 | $newuser = $member_handler->createUser(); |
||||
242 | if (isset($user_viewemail)) { |
||||
243 | $newuser->setVar('user_viewemail', Request::getString('user_viewemail')); |
||||
244 | } |
||||
245 | if (isset($attachsig)) { |
||||
246 | $newuser->setVar('attachsig', Request::getString('attachsig')); |
||||
247 | } |
||||
248 | $newuser->setVar('name', Request::getString('name')); |
||||
249 | $newuser->setVar('uname', Request::getString('username')); |
||||
250 | $newuser->setVar('email', Request::getEmail('email')); |
||||
251 | $newuser->setVar('url', formatURL(Request::getUrl('url'))); |
||||
252 | $newuser->setVar('user_avatar', 'avatars/blank.gif'); |
||||
253 | $newuser->setVar('user_regdate', time()); |
||||
254 | $newuser->setVar('user_icq', Request::getString('user_icq')); |
||||
255 | $newuser->setVar('user_from', Request::getString('user_from')); |
||||
256 | $newuser->setVar('user_sig', Request::getString('user_sig')); |
||||
257 | $newuser->setVar('user_aim', Request::getString('user_aim')); |
||||
258 | $newuser->setVar('user_yim', Request::getString('user_yim')); |
||||
259 | $newuser->setVar('user_msnm', Request::getString('user_msnm')); |
||||
260 | if ('' !== Request::getString('pass2')) { |
||||
261 | if (Request::getString('password') != Request::getString('pass2')) { |
||||
262 | xoops_cp_header(); |
||||
263 | echo '<strong>' . _AM_SYSTEM_USERS_STNPDNM . '</strong>'; |
||||
264 | xoops_cp_footer(); |
||||
265 | exit(); |
||||
266 | } |
||||
267 | $newuser->setVar('pass', password_hash(Request::getString('password'), PASSWORD_DEFAULT)); |
||||
268 | } |
||||
269 | $newuser->setVar('timezone_offset', Request::getString('timezone_offset')); |
||||
270 | $newuser->setVar('uorder', Request::getString('uorder')); |
||||
271 | $newuser->setVar('umode', Request::getString('umode')); |
||||
272 | // RMV-NOTIFY |
||||
273 | $newuser->setVar('notify_method', Request::getString('notify_method')); |
||||
274 | $newuser->setVar('notify_mode', Request::getString('notify_mode')); |
||||
275 | $newuser->setVar('bio', Request::getString('bio')); |
||||
276 | $newuser->setVar('rank', Request::getString('rank')); |
||||
277 | $newuser->setVar('level', 1); |
||||
278 | $newuser->setVar('user_occ', Request::getString('user_occ')); |
||||
279 | $newuser->setVar('user_intrest', Request::getString('user_intrest')); |
||||
280 | $newuser->setVar('user_mailok', Request::getString('user_mailok')); |
||||
281 | if (!$member_handler->insertUser($newuser)) { |
||||
282 | $adduser_errormsg = _AM_SYSTEM_USERS_CNRNU; |
||||
283 | } else { |
||||
284 | $groups_failed = array(); |
||||
285 | $groups = Request::getArray('groups', array()); |
||||
286 | if (!empty($groups)) { |
||||
287 | foreach ($groups as $group) { |
||||
288 | $group = (int)$group; |
||||
289 | if (!$member_handler->addUserToGroup($group, $newuser->getVar('uid'))) { |
||||
290 | $groups_failed[] = $group; |
||||
291 | } |
||||
292 | } |
||||
293 | } |
||||
294 | if (!empty($groups_failed)) { |
||||
295 | $group_names = $member_handler->getGroupList(new Criteria('groupid', '(' . implode(', ', $groups_failed) . ')', 'IN')); |
||||
296 | $adduser_errormsg = sprintf(_AM_SYSTEM_USERS_CNRNU2, implode(', ', $group_names)); |
||||
297 | } else { |
||||
298 | xoops_load('XoopsUserUtility'); |
||||
299 | XoopsUserUtility::sendWelcome($newuser); |
||||
300 | redirect_header('admin.php?fct=users', 1, _AM_SYSTEM_DBUPDATED); |
||||
301 | } |
||||
302 | } |
||||
303 | } |
||||
304 | } |
||||
305 | xoops_error($adduser_errormsg); |
||||
306 | } |
||||
307 | break; |
||||
308 | |||||
309 | // Activ member |
||||
310 | case 'users_active': |
||||
311 | if (Request::hasVar('uid')) { |
||||
312 | $obj = $member_handler->getUser($uid); |
||||
313 | //echo $_REQUEST["uid"]; |
||||
314 | //print_r($obj); |
||||
315 | } |
||||
316 | $obj->setVar('level', 1); |
||||
317 | if ($member_handler->insertUser($obj, true)) { |
||||
318 | redirect_header('admin.php?fct=users', 1, _AM_SYSTEM_DBUPDATED); |
||||
319 | } |
||||
320 | echo $obj->getHtmlErrors(); |
||||
321 | break; |
||||
322 | |||||
323 | // Synchronize |
||||
324 | case 'users_synchronize': |
||||
325 | if (Request::hasVar('status') && Request::getString('status') == 1) { |
||||
326 | synchronize($uid, 'user'); |
||||
327 | } elseif (Request::hasVar('status') && Request::getString('status')== 2) { |
||||
328 | synchronize('', 'all users'); |
||||
329 | } |
||||
330 | redirect_header('admin.php?fct=users', 1, _AM_SYSTEM_DBUPDATED); |
||||
331 | break; |
||||
332 | |||||
333 | default: |
||||
334 | // Search and Display |
||||
335 | // Define scripts |
||||
336 | $xoTheme->addScript('browse.php?Frameworks/jquery/jquery.js'); |
||||
337 | $xoTheme->addScript('browse.php?Frameworks/jquery/plugins/jquery.ui.js'); |
||||
338 | //table sorting does not work with select boxes |
||||
339 | //$xoTheme->addScript('browse.php?Frameworks/jquery/plugins/jquery.tablesorter.js'); |
||||
340 | $xoTheme->addScript('modules/system/js/admin.js'); |
||||
341 | //Recherche approfondie |
||||
342 | |||||
343 | if (Request::hasVar('complet_search')) { |
||||
344 | // Assign Breadcrumb menu |
||||
345 | $xoBreadCrumb->addLink(_AM_SYSTEM_USERS_NAV_ADVANCED_SEARCH); |
||||
346 | $xoBreadCrumb->addHelp(system_adminVersion('users', 'help')); |
||||
347 | $xoBreadCrumb->addTips(_AM_SYSTEM_USERS_NAV_TIPS); |
||||
348 | $xoBreadCrumb->render(); |
||||
349 | |||||
350 | $acttotal = $member_handler->getUserCount(new Criteria('level', 0, '>')); |
||||
351 | $inacttotal = $member_handler->getUserCount(new Criteria('level', 0)); |
||||
352 | |||||
353 | //$group_select = new XoopsFormSelectGroup(_AM_SYSTEM_USERS_GROUPS, "selgroups", null, false, 1, false); |
||||
354 | $group_select = new XoopsFormSelect(_AM_SYSTEM_USERS_GROUPS, 'selgroups'); |
||||
355 | /** @var XoopsGroupHandler $group_handler */ |
||||
356 | $group_handler = xoops_getHandler('group'); |
||||
357 | $group_arr = $group_handler->getObjects(); |
||||
358 | $group_select->addOption('', '--------------'); |
||||
359 | foreach (array_keys($group_arr) as $i) { |
||||
360 | if ($group_arr[$i]->getVar('groupid') != XOOPS_GROUP_ANONYMOUS) { |
||||
361 | $group_select->addOption('' . $group_arr[$i]->getVar('groupid') . '', '' . $group_arr[$i]->getVar('name') . ''); |
||||
362 | } |
||||
363 | } |
||||
364 | |||||
365 | $uname_text = new XoopsFormText('', 'username', 30, 60); |
||||
366 | $uname_match = new XoopsFormSelectMatchOption('', 'user_uname_match'); |
||||
367 | $uname_tray = new XoopsFormElementTray(_AM_SYSTEM_USERS_UNAME, ' '); |
||||
368 | $uname_tray->addElement($uname_match); |
||||
369 | $uname_tray->addElement($uname_text); |
||||
370 | $name_text = new XoopsFormText('', 'user_name', 30, 60); |
||||
371 | $name_match = new XoopsFormSelectMatchOption('', 'user_name_match'); |
||||
372 | $name_tray = new XoopsFormElementTray(_AM_SYSTEM_USERS_REALNAME, ' '); |
||||
373 | $name_tray->addElement($name_match); |
||||
374 | $name_tray->addElement($name_text); |
||||
375 | $email_text = new XoopsFormText('', 'user_email', 30, 60); |
||||
376 | $email_match = new XoopsFormSelectMatchOption('', 'user_email_match'); |
||||
377 | $email_tray = new XoopsFormElementTray(_AM_SYSTEM_USERS_EMAIL, ' '); |
||||
378 | $email_tray->addElement($email_match); |
||||
379 | $email_tray->addElement($email_text); |
||||
380 | $url_text = new XoopsFormText(_AM_SYSTEM_USERS_URLC, 'user_url', 30, 100); |
||||
381 | $icq_text = new XoopsFormText('', 'user_icq', 30, 100); |
||||
382 | $icq_match = new XoopsFormSelectMatchOption('', 'user_icq_match'); |
||||
383 | $icq_tray = new XoopsFormElementTray(_AM_SYSTEM_USERS_ICQ, ' '); |
||||
384 | $icq_tray->addElement($icq_match); |
||||
385 | $icq_tray->addElement($icq_text); |
||||
386 | $aim_text = new XoopsFormText('', 'user_aim', 30, 100); |
||||
387 | $aim_match = new XoopsFormSelectMatchOption('', 'user_aim_match'); |
||||
388 | $aim_tray = new XoopsFormElementTray(_AM_SYSTEM_USERS_AIM, ' '); |
||||
389 | $aim_tray->addElement($aim_match); |
||||
390 | $aim_tray->addElement($aim_text); |
||||
391 | $yim_text = new XoopsFormText('', 'user_yim', 30, 100); |
||||
392 | $yim_match = new XoopsFormSelectMatchOption('', 'user_yim_match'); |
||||
393 | $yim_tray = new XoopsFormElementTray(_AM_SYSTEM_USERS_YIM, ' '); |
||||
394 | $yim_tray->addElement($yim_match); |
||||
395 | $yim_tray->addElement($yim_text); |
||||
396 | $msnm_text = new XoopsFormText('', 'user_msnm', 30, 100); |
||||
397 | $msnm_match = new XoopsFormSelectMatchOption('', 'user_msnm_match'); |
||||
398 | $msnm_tray = new XoopsFormElementTray(_AM_SYSTEM_USERS_MSNM, ' '); |
||||
399 | $msnm_tray->addElement($msnm_match); |
||||
400 | $msnm_tray->addElement($msnm_text); |
||||
401 | $location_text = new XoopsFormText(_AM_SYSTEM_USERS_LOCATIONC, 'user_from', 30, 100); |
||||
402 | $occupation_text = new XoopsFormText(_AM_SYSTEM_USERS_OCCUPATIONC, 'user_occ', 30, 100); |
||||
403 | $interest_text = new XoopsFormText(_AM_SYSTEM_USERS_INTERESTC, 'user_intrest', 30, 100); |
||||
404 | |||||
405 | $lastlog_more = new XoopsFormText(_AM_SYSTEM_USERS_LASTLOGMORE, 'user_lastlog_more', 10, 5); |
||||
406 | $lastlog_less = new XoopsFormText(_AM_SYSTEM_USERS_LASTLOGLESS, 'user_lastlog_less', 10, 5); |
||||
407 | $reg_more = new XoopsFormText(_AM_SYSTEM_USERS_REGMORE, 'user_reg_more', 10, 5); |
||||
408 | $reg_less = new XoopsFormText(_AM_SYSTEM_USERS_REGLESS, 'user_reg_less', 10, 5); |
||||
409 | $posts_more = new XoopsFormText(_AM_SYSTEM_USERS_POSTSMORE, 'user_posts_more', 10, 5); |
||||
410 | $posts_less = new XoopsFormText(_AM_SYSTEM_USERS_POSTSLESS, 'user_posts_less', 10, 5); |
||||
411 | $mailok_radio = new XoopsFormRadio(_AM_SYSTEM_USERS_SHOWMAILOK, 'user_mailok', 'both'); |
||||
412 | $mailok_radio->addOptionArray(array( |
||||
413 | 'mailok' => _AM_SYSTEM_USERS_MAILOK, |
||||
414 | 'mailng' => _AM_SYSTEM_USERS_MAILNG, |
||||
415 | 'both' => _AM_SYSTEM_USERS_BOTH)); |
||||
416 | $type_radio = new XoopsFormRadio(_AM_SYSTEM_USERS_SHOWTYPE, 'user_type', 'actv'); |
||||
417 | $type_radio->addOptionArray(array( |
||||
418 | 'actv' => _AM_SYSTEM_USERS_ACTIVE, |
||||
419 | 'inactv' => _AM_SYSTEM_USERS_INACTIVE, |
||||
420 | 'both' => _AM_SYSTEM_USERS_BOTH)); |
||||
421 | $sort_select = new XoopsFormSelect(_AM_SYSTEM_USERS_SORT, 'user_sort'); |
||||
422 | $sort_select->addOptionArray(array( |
||||
423 | 'uname' => _AM_SYSTEM_USERS_UNAME, |
||||
424 | 'email' => _AM_SYSTEM_USERS_EMAIL, |
||||
425 | 'last_login' => _AM_SYSTEM_USERS_LASTLOGIN, |
||||
426 | 'user_regdate' => _AM_SYSTEM_USERS_REGDATE, |
||||
427 | 'posts' => _AM_SYSTEM_USERS_POSTS)); |
||||
428 | $order_select = new XoopsFormSelect(_AM_SYSTEM_USERS_ORDER, 'user_order'); |
||||
429 | $order_select->addOptionArray(array('ASC' => _AM_SYSTEM_USERS_ASC, 'DESC' => _AM_SYSTEM_USERS_DESC)); |
||||
430 | $limit_text = new XoopsFormText(_AM_SYSTEM_USERS_LIMIT, 'user_limit', 6, 2, 20); |
||||
431 | $submit_button = new XoopsFormButton('', 'user_submit', _SUBMIT, 'submit'); |
||||
432 | |||||
433 | $form = new XoopsThemeForm(_AM_SYSTEM_USERS_FINDUS, 'user_findform', 'admin.php?fct=users', 'post', true); |
||||
434 | $form->addElement($uname_tray); |
||||
435 | $form->addElement($name_tray); |
||||
436 | $form->addElement($email_tray); |
||||
437 | $form->addElement($group_select); |
||||
438 | $form->addElement($icq_tray); |
||||
439 | $form->addElement($aim_tray); |
||||
440 | $form->addElement($yim_tray); |
||||
441 | $form->addElement($msnm_tray); |
||||
442 | $form->addElement($url_text); |
||||
443 | $form->addElement($location_text); |
||||
444 | $form->addElement($occupation_text); |
||||
445 | $form->addElement($interest_text); |
||||
446 | $form->addElement($lastlog_more); |
||||
447 | $form->addElement($lastlog_less); |
||||
448 | $form->addElement($reg_more); |
||||
449 | $form->addElement($reg_less); |
||||
450 | $form->addElement($posts_more); |
||||
451 | $form->addElement($posts_less); |
||||
452 | $form->addElement($mailok_radio); |
||||
453 | $form->addElement($type_radio); |
||||
454 | $form->addElement($sort_select); |
||||
455 | $form->addElement($order_select); |
||||
456 | //$form->addElement($fct_hidden); |
||||
457 | $form->addElement($limit_text); |
||||
458 | //$form->addElement($op_hidden); |
||||
459 | |||||
460 | // if this is to find users for a specific group |
||||
461 | if (!empty($_GET['group']) && Request::getInt('group', 0, 'GET') > 0) { |
||||
462 | $group_hidden = new XoopsFormHidden('group', Request::getInt('group', 0, 'GET') ); |
||||
463 | $form->addElement($group_hidden); |
||||
464 | } |
||||
465 | $form->addElement($submit_button); |
||||
466 | $form->display(); |
||||
467 | } else { |
||||
468 | //Display data |
||||
469 | // Assign Breadcrumb menu |
||||
470 | $xoBreadCrumb->addHelp(system_adminVersion('users', 'help')); |
||||
471 | $xoBreadCrumb->addTips(_AM_SYSTEM_USERS_NAV_TIPS); |
||||
472 | $xoBreadCrumb->render(); |
||||
473 | |||||
474 | $requete_search = '<br><br><strong>See search request: </strong><br><br>'; |
||||
475 | $requete_pagenav = ''; |
||||
476 | |||||
477 | $user_uname = Request::getString('user_uname'); |
||||
478 | $user_uname_match = Request::getInt('user_uname_match', 0); |
||||
479 | |||||
480 | $criteria = new CriteriaCompo(); |
||||
481 | if (!empty($user_uname)) { |
||||
482 | $match = (!empty($user_uname_match)) ? $user_uname_match: XOOPS_MATCH_START; |
||||
483 | switch ($match) { |
||||
484 | case XOOPS_MATCH_START: |
||||
485 | $criteria->add(new Criteria('uname', $myts->addSlashes($user_uname) . '%', 'LIKE')); |
||||
486 | break; |
||||
487 | case XOOPS_MATCH_END: |
||||
488 | $criteria->add(new Criteria('uname', '%' . $myts->addSlashes($user_uname), 'LIKE')); |
||||
489 | break; |
||||
490 | case XOOPS_MATCH_EQUAL: |
||||
491 | $criteria->add(new Criteria('uname', $myts->addSlashes($user_uname))); |
||||
492 | break; |
||||
493 | case XOOPS_MATCH_CONTAIN: |
||||
494 | $criteria->add(new Criteria('uname', '%' . $myts->addSlashes($user_uname) . '%', 'LIKE')); |
||||
495 | break; |
||||
496 | } |
||||
497 | $requete_pagenav .= '&user_uname=' . htmlspecialchars($user_uname, ENT_QUOTES | ENT_HTML5) . '&user_uname_match=' . htmlspecialchars($user_uname_match, ENT_QUOTES | ENT_HTML5); |
||||
498 | $requete_search .= 'uname : ' . $user_uname . ' et user_uname_match=' . $user_uname_match . '<br>'; |
||||
499 | } |
||||
500 | $user_name = Request::getString('user_name'); |
||||
501 | $user_name_match = Request::getInt('user_name_match', 0); |
||||
502 | if (!empty($user_name)) { |
||||
503 | $match = Request::getString('user_name_match', XOOPS_MATCH_START); |
||||
504 | switch ($match) { |
||||
505 | case XOOPS_MATCH_START: |
||||
506 | $criteria->add(new Criteria('name', $myts->addSlashes($user_name) . '%', 'LIKE')); |
||||
507 | break; |
||||
508 | case XOOPS_MATCH_END: |
||||
509 | $criteria->add(new Criteria('name', '%' . $myts->addSlashes($user_name)), 'LIKE'); |
||||
510 | break; |
||||
511 | case XOOPS_MATCH_EQUAL: |
||||
512 | $criteria->add(new Criteria('name', $myts->addSlashes($user_name))); |
||||
513 | break; |
||||
514 | case XOOPS_MATCH_CONTAIN: |
||||
515 | $criteria->add(new Criteria('name', '%' . $myts->addSlashes(Request::getString('user_name', '', 'POST')) . '%', 'LIKE')); |
||||
516 | break; |
||||
517 | } |
||||
518 | $requete_pagenav .= '&user_name=' . htmlspecialchars($user_name, ENT_QUOTES | ENT_HTML5) . '&user_name_match=' . htmlspecialchars(Request::getString('user_name_match'), ENT_QUOTES | ENT_HTML5); |
||||
519 | $requete_search .= 'name : ' . $user_name . ' et user_name_match=' . $user_name_match . '<br>'; |
||||
520 | } |
||||
521 | $user_email = Request::getString('user_email'); |
||||
522 | $user_email_match = Request::getInt('user_email_match', 0); |
||||
523 | if (!empty($user_email)) { |
||||
524 | $match = Request::getString('user_email_match', XOOPS_MATCH_START); |
||||
525 | switch ($match) { |
||||
526 | case XOOPS_MATCH_START: |
||||
527 | $criteria->add(new Criteria('email', $myts->addSlashes($user_email) . '%', 'LIKE')); |
||||
528 | break; |
||||
529 | case XOOPS_MATCH_END: |
||||
530 | $criteria->add(new Criteria('email', '%' . $myts->addSlashes($user_email), 'LIKE')); |
||||
531 | break; |
||||
532 | case XOOPS_MATCH_EQUAL: |
||||
533 | $criteria->add(new Criteria('email', $myts->addSlashes($user_email))); |
||||
534 | break; |
||||
535 | case XOOPS_MATCH_CONTAIN: |
||||
536 | $criteria->add(new Criteria('email', '%' . $myts->addSlashes($user_email) . '%', 'LIKE')); |
||||
537 | break; |
||||
538 | } |
||||
539 | $requete_pagenav .= '&user_email=' . htmlspecialchars($user_email, ENT_QUOTES | ENT_HTML5) . '&user_email_match=' . htmlspecialchars($user_email_match, ENT_QUOTES | ENT_HTML5); |
||||
540 | $requete_search .= 'email : ' . $user_email . ' et user_email_match=' . $user_email_match . '<br>'; |
||||
541 | } |
||||
542 | $user_url = Request::getString('user_url'); |
||||
543 | $user_url_match = Request::getInt('user_url_match', 0); |
||||
544 | if (Request::hasVar('user_url')) { |
||||
545 | $url = formatURL(Request::getUrl('user_url')); |
||||
546 | $criteria->add(new Criteria('url', '%' . $myts->addSlashes($url) . '%', 'LIKE')); |
||||
547 | $requete_pagenav .= '&user_url=' . htmlspecialchars(Request::getString('user_url'), ENT_QUOTES | ENT_HTML5); |
||||
548 | $requete_search .= 'url : ' . Request::getString('user_url') . '<br>'; |
||||
549 | } |
||||
550 | $user_icq = Request::getString('user_icq'); |
||||
551 | $user_icq_match = Request::getString('user_icq_match'); |
||||
552 | if (!empty($user_icq)) { |
||||
553 | $match = Request::getString('user_icq_match', XOOPS_MATCH_START); |
||||
554 | switch ($match) { |
||||
555 | case XOOPS_MATCH_START: |
||||
556 | $criteria->add(new Criteria('user_icq', $myts->addSlashes($user_icq) . '%', 'LIKE')); |
||||
557 | break; |
||||
558 | case XOOPS_MATCH_END: |
||||
559 | $criteria->add(new Criteria('user_icq', '%' . $myts->addSlashes($user_icq), 'LIKE')); |
||||
560 | break; |
||||
561 | case XOOPS_MATCH_EQUAL: |
||||
562 | $criteria->add(new Criteria('user_icq', $myts->addSlashes($user_icq))); |
||||
563 | break; |
||||
564 | case XOOPS_MATCH_CONTAIN: |
||||
565 | $criteria->add(new Criteria('user_icq', '%' . $myts->addSlashes($user_icq) . '%', 'LIKE')); |
||||
566 | break; |
||||
567 | } |
||||
568 | $requete_pagenav .= '&user_icq=' . htmlspecialchars($user_icq, ENT_QUOTES | ENT_HTML5) . '&user_icq_match=' . htmlspecialchars($user_icq_match, ENT_QUOTES | ENT_HTML5); |
||||
569 | $requete_search .= 'icq : ' . $user_icq . ' et user_icq_match=' . $user_icq_match . '<br>'; |
||||
570 | } |
||||
571 | |||||
572 | $user_aim = Request::getString('user_aim'); |
||||
573 | $user_aim_match = Request::getString('user_aim_match'); |
||||
574 | if (!empty($user_aim)) { |
||||
575 | $match = Request::getString('user_aim_match', XOOPS_MATCH_START); |
||||
576 | switch ($match) { |
||||
577 | case XOOPS_MATCH_START: |
||||
578 | $criteria->add(new Criteria('user_aim', $myts->addSlashes($user_aim) . '%', 'LIKE')); |
||||
579 | break; |
||||
580 | case XOOPS_MATCH_END: |
||||
581 | $criteria->add(new Criteria('user_aim', '%' . $myts->addSlashes($user_aim), 'LIKE')); |
||||
582 | break; |
||||
583 | case XOOPS_MATCH_EQUAL: |
||||
584 | $criteria->add(new Criteria('user_aim', $myts->addSlashes($user_aim))); |
||||
585 | break; |
||||
586 | case XOOPS_MATCH_CONTAIN: |
||||
587 | $criteria->add(new Criteria('user_aim', '%' . $myts->addSlashes($user_aim) . '%', 'LIKE')); |
||||
588 | break; |
||||
589 | } |
||||
590 | $requete_pagenav .= '&user_aim=' . htmlspecialchars($user_aim, ENT_QUOTES | ENT_HTML5) . '&user_aim_match=' . htmlspecialchars($user_aim_match, ENT_QUOTES | ENT_HTML5); |
||||
591 | $requete_search .= 'aim : ' . $user_aim . ' et user_aim_match=' . $user_aim_match . '<br>'; |
||||
592 | } |
||||
593 | $user_yim = Request::getString('user_yim'); |
||||
594 | $user_yim_match = Request::getString('user_yim_match'); |
||||
595 | if (!empty($user_yim)) { |
||||
596 | $match = Request::getString('user_yim_match', XOOPS_MATCH_START); |
||||
597 | switch ($match) { |
||||
598 | case XOOPS_MATCH_START: |
||||
599 | $criteria->add(new Criteria('user_yim', $myts->addSlashes(Request::getString('user_yim')) . '%', 'LIKE')); |
||||
600 | break; |
||||
601 | case XOOPS_MATCH_END: |
||||
602 | $criteria->add(new Criteria('user_yim', '%' . $myts->addSlashes(Request::getString('user_yim')), 'LIKE')); |
||||
603 | break; |
||||
604 | case XOOPS_MATCH_EQUAL: |
||||
605 | $criteria->add(new Criteria('user_yim', $myts->addSlashes(Request::getString('user_yim')))); |
||||
606 | break; |
||||
607 | case XOOPS_MATCH_CONTAIN: |
||||
608 | $criteria->add(new Criteria('user_yim', '%' . $myts->addSlashes(Request::getString('user_yim')) . '%', 'LIKE')); |
||||
609 | break; |
||||
610 | } |
||||
611 | $requete_pagenav .= '&user_yim=' . htmlspecialchars(Request::getString('user_yim'), ENT_QUOTES | ENT_HTML5) . '&user_yim_match=' . htmlspecialchars(Request::getString('user_yim_match'), ENT_QUOTES | ENT_HTML5); |
||||
612 | $requete_search .= 'yim : ' . Request::getString('user_yim') . ' et user_yim_match=' . Request::getString('user_yim_match') . '<br>'; |
||||
613 | } |
||||
614 | |||||
615 | $user_msnm = Request::getString('user_msnm'); |
||||
616 | $user_msnm_match = Request::getString('user_msnm_match'); |
||||
617 | if (!empty($user_msnm)) { |
||||
618 | $match = Request::getString('user_msnm_match', XOOPS_MATCH_START); |
||||
619 | switch ($match) { |
||||
620 | case XOOPS_MATCH_START: |
||||
621 | $criteria->add(new Criteria('user_msnm', $myts->addSlashes($user_msnm) . '%', 'LIKE')); |
||||
622 | break; |
||||
623 | case XOOPS_MATCH_END: |
||||
624 | $criteria->add(new Criteria('user_msnm', '%' . $myts->addSlashes($user_msnm), 'LIKE')); |
||||
625 | break; |
||||
626 | case XOOPS_MATCH_EQUAL: |
||||
627 | $criteria->add(new Criteria('user_msnm', $myts->addSlashes($user_msnm))); |
||||
628 | break; |
||||
629 | case XOOPS_MATCH_CONTAIN: |
||||
630 | $criteria->add(new Criteria('user_msnm', '%' . $myts->addSlashes($user_msnm) . '%', 'LIKE')); |
||||
631 | break; |
||||
632 | } |
||||
633 | $requete_pagenav .= '&user_msnm=' . htmlspecialchars($user_msnm . '&user_msnm_match=' . htmlspecialchars($user_msnm_match, ENT_QUOTES | ENT_HTML5), ENT_QUOTES | ENT_HTML5); |
||||
634 | $requete_search .= 'msn : ' . $user_msnm . ' et user_msnm_match=' . $user_msnm_match . '<br>'; |
||||
635 | } |
||||
636 | |||||
637 | if (Request::hasVar('user_from')) { |
||||
638 | $criteria->add(new Criteria('user_from', '%' . $myts->addSlashes(Request::getString('user_from')) . '%', 'LIKE')); |
||||
639 | $requete_pagenav .= '&user_from=' . htmlspecialchars(Request::getString('user_from'), ENT_QUOTES | ENT_HTML5); |
||||
640 | $requete_search .= 'from : ' . Request::getString('user_from') . '<br>'; |
||||
641 | } |
||||
642 | |||||
643 | if (Request::hasVar('user_intrest')) { |
||||
644 | $criteria->add(new Criteria('user_intrest', '%' . $myts->addSlashes(Request::getString('user_intrest')) . '%', 'LIKE')); |
||||
645 | $requete_pagenav .= '&user_intrest=' . htmlspecialchars(Request::getString('user_intrest'), ENT_QUOTES | ENT_HTML5); |
||||
646 | $requete_search .= 'interet : ' . Request::getString('user_intrest') . '<br>'; |
||||
647 | } |
||||
648 | |||||
649 | if (Request::hasVar('user_occ')) { |
||||
650 | $criteria->add(new Criteria('user_occ', '%' . $myts->addSlashes(Request::getString('user_occ')) . '%', 'LIKE')); |
||||
651 | $requete_pagenav .= '&user_occ=' . htmlspecialchars(Request::getString('user_occ'), ENT_QUOTES | ENT_HTML5); |
||||
652 | $requete_search .= 'location : ' . Request::getString('user_occ') . '<br>'; |
||||
653 | } |
||||
654 | |||||
655 | if (Request::hasVar('user_name_match')) { |
||||
656 | $f_user_lastlog_more = Request::getString('user_name_match', XOOPS_MATCH_START); |
||||
657 | $time = time() - (60 * 60 * 24 * $f_user_lastlog_more); |
||||
658 | if ($time > 0) { |
||||
659 | $criteria->add(new Criteria('last_login', $time, '<')); |
||||
660 | } |
||||
661 | $requete_pagenav .= '&user_lastlog_more=' . htmlspecialchars(Request::getString('user_lastlog_more'), ENT_QUOTES | ENT_HTML5); |
||||
662 | $requete_search .= 'derniere connexion apres : ' . Request::getString('user_lastlog_more') . '<br>'; |
||||
663 | } |
||||
664 | |||||
665 | if (Request::hasVar('user_name_match')) { |
||||
666 | $f_user_lastlog_less = Request::getString('user_name_match', XOOPS_MATCH_START); |
||||
667 | $time = time() - (60 * 60 * 24 * $f_user_lastlog_less); |
||||
668 | if ($time > 0) { |
||||
669 | $criteria->add(new Criteria('last_login', $time, '>')); |
||||
670 | } |
||||
671 | $requete_pagenav .= '&user_lastlog_less=' . htmlspecialchars(Request::getString('user_lastlog_less'), ENT_QUOTES | ENT_HTML5); |
||||
672 | $requete_search .= 'derniere connexion avant : ' . Request::getString('user_lastlog_less') . '<br>'; |
||||
673 | } |
||||
674 | |||||
675 | if (Request::hasVar('user_reg_more') && is_numeric(Request::getString('user_reg_more'))) { |
||||
676 | $f_user_reg_more = (int)Request::getString('user_reg_more'); |
||||
677 | $time = time() - (60 * 60 * 24 * $f_user_reg_more); |
||||
678 | if ($time > 0) { |
||||
679 | $criteria->add(new Criteria('user_regdate', $time, '<')); |
||||
680 | } |
||||
681 | $requete_pagenav .= '&user_regdate=' . htmlspecialchars(Request::getString('user_regdate'), ENT_QUOTES | ENT_HTML5); |
||||
682 | $requete_search .= 'enregistre apres : ' . Request::getString('user_reg_more') . '<br>'; |
||||
683 | } |
||||
684 | |||||
685 | |||||
686 | if (Request::hasVar('user_reg_less') && is_numeric(Request::getString('user_reg_less'))) { |
||||
687 | $f_user_reg_less = (int)Request::getString('user_reg_less'); |
||||
688 | $time = time() - (60 * 60 * 24 * $f_user_reg_less); |
||||
689 | if ($time > 0) { |
||||
690 | $criteria->add(new Criteria('user_regdate', $time, '>')); |
||||
691 | } |
||||
692 | $requete_pagenav .= '&user_reg_less=' . htmlspecialchars(Request::getString('user_reg_less'), ENT_QUOTES | ENT_HTML5); |
||||
693 | $requete_search .= 'enregistre avant : ' . Request::getString('user_reg_less') . '<br>'; |
||||
694 | } |
||||
695 | |||||
696 | if (Request::hasVar('user_posts_more') && is_numeric(Request::getString('user_posts_more'))) { |
||||
697 | $criteria->add(new Criteria('posts', (int)Request::getString('user_posts_more'), '>')); |
||||
698 | $requete_pagenav .= '&user_posts_more=' . htmlspecialchars(Request::getString('user_posts_more'), ENT_QUOTES | ENT_HTML5); |
||||
699 | $requete_search .= 'posts plus de : ' . Request::getString('user_posts_more') . '<br>'; |
||||
700 | } |
||||
701 | |||||
702 | if (Request::hasVar('user_posts_less') && is_numeric(Request::getString('user_posts_less'))) { |
||||
703 | $criteria->add(new Criteria('posts', (int)Request::getString('user_posts_less'), '<')); |
||||
704 | $requete_pagenav .= '&user_posts_less=' . htmlspecialchars(Request::getString('user_posts_less'), ENT_QUOTES | ENT_HTML5); |
||||
705 | $requete_search .= 'post moins de : ' . Request::getString('user_posts_less') . '<br>'; |
||||
706 | } |
||||
707 | |||||
708 | if (Request::hasVar('user_mailok')) { |
||||
709 | if (Request::getString('user_mailok') === 'mailng') { |
||||
710 | $criteria->add(new Criteria('user_mailok', 0)); |
||||
711 | } elseif (Request::getString('user_mailok') === 'mailok') { |
||||
712 | $criteria->add(new Criteria('user_mailok', 1)); |
||||
713 | } else { |
||||
714 | $criteria->add(new Criteria('user_mailok', 0, '>=')); |
||||
715 | } |
||||
716 | $requete_pagenav .= '&user_mailok=' . htmlspecialchars(Request::getString('user_mailok'), ENT_QUOTES | ENT_HTML5); |
||||
717 | $requete_search .= 'accept email : ' . Request::getString('user_mailok') . '<br>'; |
||||
718 | } |
||||
719 | |||||
720 | if (Request::hasVar('user_type')) { |
||||
721 | if (Request::getString('user_type') === 'inactv') { |
||||
722 | $criteria->add(new Criteria('level', 0, '=')); |
||||
723 | $user_type = 'inactv'; |
||||
724 | $requete_search .= 'actif ou inactif : inactif<br>'; |
||||
725 | } elseif (Request::getString('user_type') === 'actv') { |
||||
726 | $criteria->add(new Criteria('level', 0, '>')); |
||||
727 | $user_type = 'actv'; |
||||
728 | $requete_search .= 'actif ou inactif : actif<br>'; |
||||
729 | } |
||||
730 | $requete_pagenav .= '&user_type=' . htmlspecialchars(Request::getString('user_type'), ENT_QUOTES | ENT_HTML5); |
||||
731 | } else { |
||||
732 | $criteria->add(new Criteria('level', 0, '>=')); |
||||
733 | $user_type = ''; |
||||
734 | $requete_search .= 'actif ou inactif : admin et user<br>'; |
||||
735 | } |
||||
736 | |||||
737 | $validsort = array('uname', 'email', 'last_login', 'user_regdate', 'posts'); |
||||
738 | if (Request::hasVar('user_sort')) { |
||||
739 | $userSort = Request::getString('user_sort'); |
||||
740 | $sort = (!in_array($userSort, $validsort)) ? 'uid' : $userSort; |
||||
741 | $requete_pagenav .= '&user_sort=' . htmlspecialchars($userSort, ENT_QUOTES | ENT_HTML5); |
||||
742 | $requete_search .= 'order by : ' . $sort . '<br>'; |
||||
743 | } else { |
||||
744 | $sort = 'uid'; |
||||
745 | $requete_pagenav .= '&user_sort=uid'; |
||||
746 | $requete_search .= 'order by : ' . $sort . '<br>'; |
||||
747 | } |
||||
748 | |||||
749 | $order = 'DESC'; |
||||
750 | if (Request::hasVar('user_order') && Request::getString('user_order') === 'ASC') { |
||||
751 | $requete_pagenav .= '&user_order=ASC'; |
||||
752 | $requete_search .= 'tris : ' . $order . '<br>'; |
||||
753 | } else { |
||||
754 | //$order = "ASC"; |
||||
755 | $requete_pagenav .= '&user_order=DESC'; |
||||
756 | $requete_search .= 'tris : ' . $order . '<br>'; |
||||
757 | } |
||||
758 | |||||
759 | $user_limit = (int)xoops_getModuleOption('users_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...
|
|||||
760 | if (Request::hasVar('user_limit')) { |
||||
761 | $user_limit = Request::getInt('user_limit'); |
||||
762 | $requete_pagenav .= '&user_limit=' . htmlspecialchars(Request::getString('user_limit'), ENT_QUOTES | ENT_HTML5); |
||||
763 | $requete_search .= 'limit : ' . $user_limit . '<br>'; |
||||
764 | } else { |
||||
765 | $requete_pagenav .= '&user_limit=' . xoops_getModuleOption('users_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...
|
|||||
766 | $requete_search .= 'limit : ' . $user_limit . '<br>'; |
||||
767 | } |
||||
768 | |||||
769 | $start = Request::getInt('start'); |
||||
770 | $groups = array(); |
||||
771 | $selgroups = array(); |
||||
772 | if (Request::hasVar('selgroups') && $_REQUEST['selgroups'] != '') { |
||||
773 | $selgroups = Request::getArray('selgroups', array()); // Default to an empty array if 'selgroups' is not set |
||||
774 | if (empty($selgroups)) { |
||||
775 | // If 'selgroups' is an empty array, try to get it as an integer |
||||
776 | $selgroupsInt = Request::getInt('selgroups', 0); |
||||
777 | if ($selgroupsInt != 0) { |
||||
778 | $groups = array($selgroupsInt); |
||||
779 | } |
||||
780 | } else { |
||||
781 | $groups = array_map('intval', $selgroups); |
||||
782 | } |
||||
783 | $requete_pagenav .= '&selgroups=' . htmlspecialchars(implode(',', $selgroups), ENT_QUOTES | ENT_HTML5); |
||||
784 | } |
||||
785 | //print_r($groups); |
||||
786 | /** @var XoopsMemberHandler $member_handler */ |
||||
787 | $member_handler = xoops_getHandler('member'); |
||||
788 | |||||
789 | if (empty($groups)) { |
||||
790 | $users_count = $member_handler->getUserCount($criteria); |
||||
791 | } else { |
||||
792 | $users_count = $member_handler->getUserCountByGroupLink($groups, $criteria); |
||||
793 | } |
||||
794 | if ($start < $users_count) { |
||||
795 | echo sprintf(_AM_SYSTEM_USERS_USERSFOUND, $users_count) . '<br>'; |
||||
796 | $criteria->setSort($sort); |
||||
797 | $criteria->setOrder($order); |
||||
798 | $criteria->setLimit($user_limit); |
||||
799 | $criteria->setStart($start); |
||||
800 | $users_arr = $member_handler->getUsersByGroupLink($groups, $criteria, true); |
||||
801 | $ucount = 0; |
||||
802 | } |
||||
803 | |||||
804 | $xoopsTpl->assign('users_count', $users_count); |
||||
805 | $xoopsTpl->assign('users_display', true); |
||||
806 | |||||
807 | //User limit |
||||
808 | $user_limit = Request::getInt('user_limit', 20); |
||||
809 | //User type |
||||
810 | $user_type = Request::getString('user_type'); |
||||
811 | //selgroups |
||||
812 | $selgroups = Request::getString('selgroups'); //TODO should it be an array? |
||||
813 | $user_uname = Request::getString('username'); |
||||
814 | |||||
815 | //Form tris |
||||
816 | $form = '<form action="admin.php?fct=users" method="post"> |
||||
817 | ' . _AM_SYSTEM_USERS_SEARCH_USER . '<input type="text" name="user_uname" value="' . $myts->htmlSpecialChars($user_uname) . '" size="15"> |
||||
818 | <select name="selgroups"> |
||||
819 | <option value="" selected>' . _AM_SYSTEM_USERS_ALLGROUP . '</option>'; |
||||
820 | /** @var XoopsGroupHandler $group_handler */ |
||||
821 | $group_handler = xoops_getHandler('group'); |
||||
822 | $group_arr = $group_handler->getObjects(); |
||||
823 | foreach (array_keys($group_arr) as $i) { |
||||
824 | if ($group_arr[$i]->getVar('groupid') != XOOPS_GROUP_ANONYMOUS) { |
||||
825 | $form .= '<option value="' . $group_arr[$i]->getVar('groupid') . '" ' . ($selgroups == $group_arr[$i]->getVar('groupid') ? ' selected' : '') . '>' . $group_arr[$i]->getVar('name') . '</option>'; |
||||
826 | } |
||||
827 | } |
||||
828 | $form .= '</select> |
||||
829 | <select name="user_type"> |
||||
830 | <option value="" ' . ($user_type === '' ? ' selected' : '') . '>' . _AM_SYSTEM_USERS_ALLUSER . '</option> |
||||
831 | <option value="actv" ' . ($user_type === 'actv' ? ' selected' : '') . '>' . _AM_SYSTEM_USERS_ACTIVEUSER . '</option> |
||||
832 | <option value="inactv" ' . ($user_type === 'inactv' ? ' selected' : '') . '>' . _AM_SYSTEM_USERS_INACTIVEUSER . '</option> |
||||
833 | </select> |
||||
834 | <select name="user_limit"> |
||||
835 | <option value="20" ' . ($user_limit == 20 ? ' selected' : '') . '>20</option> |
||||
836 | <option value="50" ' . ($user_limit == 50 ? ' selected' : '') . '>50</option> |
||||
837 | <option value="100" ' . ($user_limit == 100 ? ' selected' : '') . '>100</option> |
||||
838 | </select> |
||||
839 | <input type="hidden" name="user_uname_match" value="XOOPS_MATCH_START" /> |
||||
840 | <input type="submit" value="' . _AM_SYSTEM_USERS_SEARCH . '" name="speed_search"> |
||||
841 | <input type="submit" value="' . _AM_SYSTEM_USERS_ADVANCED_SEARCH . '" name="complet_search"></form> |
||||
842 | '; |
||||
843 | |||||
844 | //select groupe |
||||
845 | $form_select_groups = '<select name="selgroups" id="selgroups" style="display:none;"><option value="">---------</option>'; |
||||
846 | //$module_array[0] = _AM_SYSTEM_USERS_COMMENTS_FORM_ALL_MODS; |
||||
847 | $group_handler = xoops_getHandler('group'); |
||||
848 | $group_arr = $group_handler->getObjects(); |
||||
849 | foreach (array_keys($group_arr) as $i) { |
||||
850 | if ($group_arr[$i]->getVar('groupid') != XOOPS_GROUP_ANONYMOUS) { |
||||
851 | $form_select_groups .= '<option value="' . $group_arr[$i]->getVar('groupid') . '" ' . ($selgroups == $group_arr[$i]->getVar('groupid') ? ' selected' : '') . '>' . $group_arr[$i]->getVar('name') . '</option>'; |
||||
852 | } |
||||
853 | } |
||||
854 | $form_select_groups .= '</select><input type="hidden" name="op" value="users_add_delete_group">'; |
||||
855 | |||||
856 | $xoopsTpl->assign('form_sort', $form); |
||||
857 | $xoopsTpl->assign('form_select_groups', $form_select_groups); |
||||
858 | |||||
859 | // add token to render in template |
||||
860 | $tokenElement = new XoopsFormHiddenToken(); |
||||
861 | $token = $tokenElement->render(); |
||||
862 | $xoopsTpl->assign('form_token', $token); |
||||
863 | |||||
864 | //echo $requete_search; |
||||
865 | if ($users_count > 0) { |
||||
866 | //echo $requete_search; |
||||
867 | foreach (array_keys($users_arr) as $i) { |
||||
868 | //Display group |
||||
869 | $user_group = $member_handler->getGroupsByUser($users_arr[$i]->getVar('uid')); |
||||
870 | if (in_array(XOOPS_GROUP_ADMIN, $user_group)) { |
||||
871 | $users['group'] = system_AdminIcons('xoops/group_1.png'); |
||||
872 | //$users['icon'] = '<img src="'.XOOPS_URL.'/modules/system/images/icons/admin.png" alt="'._AM_SYSTEM_USERS_ADMIN.'" title="'._AM_SYSTEM_USERS_ADMIN.'" />'; |
||||
873 | $users['checkbox_user'] = false; |
||||
874 | } else { |
||||
875 | $users['group'] = system_AdminIcons('xoops/group_2.png'); |
||||
876 | //$users['icon'] = '<img src="'.XOOPS_URL.'/modules/system/images/icons/user.png" alt="'._AM_SYSTEM_USERS_USER.'" title="'._AM_SYSTEM_USERS_USER.'" />'; |
||||
877 | $users['checkbox_user'] = true; |
||||
878 | } |
||||
879 | $users['uid'] = $users_arr[$i]->getVar('uid'); |
||||
880 | $users['name'] = $users_arr[$i]->getVar('name'); |
||||
881 | $users['uname'] = $users_arr[$i]->getVar('uname'); |
||||
882 | $users['email'] = $users_arr[$i]->getVar('email'); |
||||
883 | $users['url'] = $users_arr[$i]->getVar('url'); |
||||
884 | $users['user_avatar'] = ($users_arr[$i]->getVar('user_avatar') === 'blank.gif') ? system_AdminIcons('anonymous.png') : XOOPS_URL . '/uploads/' . $users_arr[$i]->getVar('user_avatar'); |
||||
885 | $users['reg_date'] = formatTimestamp($users_arr[$i]->getVar('user_regdate'), 'm'); |
||||
886 | if ($users_arr[$i]->getVar('last_login') > 0) { |
||||
887 | $users['last_login'] = formatTimestamp($users_arr[$i]->getVar('last_login'), 'm'); |
||||
888 | } else { |
||||
889 | $users['last_login'] = _AM_SYSTEM_USERS_NOT_CONNECT; |
||||
890 | } |
||||
891 | $users['user_level'] = $users_arr[$i]->getVar('level'); |
||||
892 | $users['user_icq'] = $users_arr[$i]->getVar('user_icq'); |
||||
893 | $users['user_aim'] = $users_arr[$i]->getVar('user_aim'); |
||||
894 | $users['user_yim'] = $users_arr[$i]->getVar('user_yim'); |
||||
895 | $users['user_msnm'] = $users_arr[$i]->getVar('user_msnm'); |
||||
896 | |||||
897 | $users['posts'] = $users_arr[$i]->getVar('posts'); |
||||
898 | |||||
899 | $xoopsTpl->appendByRef('users', $users); |
||||
900 | $xoopsTpl->appendByRef('users_popup', $users); |
||||
901 | unset($users); |
||||
902 | } |
||||
903 | } else { |
||||
904 | $xoopsTpl->assign('users_no_found', true); |
||||
905 | } |
||||
906 | |||||
907 | if ($users_count > $user_limit) { |
||||
908 | include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; |
||||
909 | $nav = new XoopsPageNav($users_count, $user_limit, $start, 'start', 'fct=users&op=default' . $requete_pagenav); |
||||
910 | $xoopsTpl->assign('nav', $nav->renderNav()); |
||||
911 | } |
||||
912 | } |
||||
913 | break; |
||||
914 | } |
||||
915 | // Call Footer |
||||
916 | xoops_cp_footer(); |
||||
917 |