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