$manager = new course_enrolment_manager($PAGE, $course); $outcome = new stdClass(); $outcome->success = true; $outcome->response = new stdClass(); $outcome->error = ''; $searchanywhere = get_user_preferences('userselector_searchanywhere', false); switch ($action) { case 'getassignable': $otheruserroles = optional_param('otherusers', false, PARAM_BOOL); $outcome->response = array_reverse($manager->get_assignable_roles($otheruserroles), true); break; case 'searchusers': $enrolid = required_param('enrolid', PARAM_INT); $search = optional_param('search', '', PARAM_RAW); $page = optional_param('page', 0, PARAM_INT); $outcome->response = $manager->get_potential_users($enrolid, $search, $searchanywhere, $page); $extrafields = get_extra_user_fields($context); foreach ($outcome->response['users'] as &$user) { $user->picture = $OUTPUT->user_picture($user); $user->fullname = fullname($user); $fieldvalues = array(); foreach ($extrafields as $field) { $fieldvalues[] = s($user->{$field}); unset($user->{$field}); } $user->extrafields = implode(', ', $fieldvalues); } // Chrome will display users in the order of the array keys, so we need // to ensure that the results ordered array keys. Fortunately, the JavaScript // does not care what the array keys are. It uses user.id where necessary. $outcome->response['users'] = array_values($outcome->response['users']);
$outcome->response = new stdClass(); $outcome->error = ''; $searchanywhere = get_user_preferences('userselector_searchanywhere', false); switch ($action) { case 'getassignable': $otheruserroles = optional_param('otherusers', false, PARAM_BOOL); $outcome->response = array_reverse($manager->get_assignable_roles($otheruserroles), true); break; case 'searchusers': $enrolid = required_param('enrolid', PARAM_INT); $search = optional_param('search', '', PARAM_RAW); $page = optional_param('page', 0, PARAM_INT); $addedenrollment = optional_param('enrolcount', 0, PARAM_INT); $perpage = optional_param('perpage', 25, PARAM_INT); // This value is hard-coded to 25 in quickenrolment.js $outcome->response = $manager->get_potential_users($enrolid, $search, $searchanywhere, $page, $perpage, $addedenrollment); $extrafields = get_extra_user_fields($context); $useroptions = array(); // User is not enrolled yet, either link to site profile or do not link at all. if (has_capability('moodle/user:viewdetails', context_system::instance())) { $useroptions['courseid'] = SITEID; } else { $useroptions['link'] = false; } foreach ($outcome->response['users'] as &$user) { $user->picture = $OUTPUT->user_picture($user, $useroptions); $user->fullname = fullname($user); $fieldvalues = array(); foreach ($extrafields as $field) { $fieldvalues[] = s($user->{$field}); unset($user->{$field});