*/ require_once dirname(__FILE__) . '/../../cms_rc_admin.php'; //load interface instance $view = CMS_view::getInstance(); //set default display mode for this page $view->setDisplayMode(CMS_view::SHOW_JSON); //This file is an admin file. Interface must be secure $view->setSecure(); $keyword = sensitiveIO::request('keyword'); $elements = sensitiveIO::request('elements', 'is_array', array()); $start = sensitiveIO::request('start', 'sensitiveIO::isPositiveInteger', 0); $limit = sensitiveIO::request('limit', 'sensitiveIO::isPositiveInteger', 0); $results = $scores = array(); //Users search if (in_array('users', $elements)) { $usersResults = CMS_profile_usersCatalog::search($keyword, '', '', 'score', 'desc', 0, 0, false, false, $usersScore); if ($usersResults) { foreach ($usersResults as $resultId) { if (isset($usersScore[$resultId])) { $scores[$usersScore[$resultId]][] = array('users', $resultId); } else { $scores[0][] = array('users', $resultId); } } //pr('Users :'); //pr($usersResults); //pr($rowsScore); } } if ($cms_user->hasAdminClearance(CLEARANCE_ADMINISTRATION_EDITUSERS)) { //Groups search
//search users $users = CMS_profile_usersCatalog::search($search, $letter, $groupId, $sort, $dir, $start, $limit); } else { //search users $users = CMS_profile_usersCatalog::search($search, $letter, false, $sort, $dir, $start, $limit); } //loop over users to get all required infos foreach ($users as $user) { $datas = array('id' => $user->getUserId(), 'firstName' => $user->getFirstName(), 'lastName' => $user->getLastName(), 'login' => $user->getLogin(), 'email' => $user->getEmail(), 'active' => $user->isActive()); if ($groupId) { $datas['belong'] = isset($groupUsers[$user->getUserId()]); } if ($withGroups) { //groups of user $userGroups = array(); $groups = CMS_profile_usersGroupsCatalog::getGroupsOfUser($user); foreach ($groups as $group) { $userGroups[] = array('id' => $group->getGroupId(), 'label' => $group->getLabel(), 'description' => $group->getDescription()); } $datas['groups'] = $userGroups; } $usersDatas['users'][] = $datas; } //total users count for search if ($groupId && $filter) { $usersDatas['totalCount'] = sizeof(CMS_profile_usersCatalog::search($search, $letter, $groupId, $sort, $dir, 0, 0, false, false)); } else { $usersDatas['totalCount'] = sizeof(CMS_profile_usersCatalog::search($search, $letter, false, $sort, $dir, 0, 0, false, false)); } $view->setContent($usersDatas); $view->show();