示例#1
0
             $pagecontent = $OUTPUT->confirm($message, $yesurl, $PAGE->url);
         }
         $actiontaken = true;
     }
     break;
     /**
      * Makes the user a member of a given group
      */
 /**
  * Makes the user a member of a given group
  */
 case 'addmember':
     if (has_capability('moodle/course:managegroups', $manager->get_context())) {
         $userid = required_param('user', PARAM_INT);
         $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST);
         $mform = new enrol_users_addmember_form(NULL, array('user' => $user, 'course' => $course, 'allgroups' => $manager->get_all_groups()));
         $mform->set_data($PAGE->url->params());
         $data = $mform->get_data();
         if ($mform->is_cancelled() || $data && $manager->add_user_to_group($user, $data->groupid)) {
             redirect($PAGE->url);
         } else {
             $pagetitle = get_string('addgroup', 'group');
         }
         $actiontaken = true;
     }
     break;
     /**
      * Edits the details of a users enrolment in the course
      */
 /**
  * Edits the details of a users enrolment in the course
示例#2
0
             $pagecontent = $OUTPUT->confirm($message, $yesurl, $PAGE->url);
         }
         $actiontaken = true;
     }
     break;
     /**
      * Makes the user a member of a given group
      */
 /**
  * Makes the user a member of a given group
  */
 case 'addmember':
     if (has_capability('moodle/course:managegroups', $manager->get_context())) {
         $userid = required_param('user', PARAM_INT);
         $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST);
         $mform = new enrol_users_addmember_form(NULL, array('user' => $user, 'course' => $course, 'allgroups' => $manager->get_all_groups()));
         $mform->set_data($PAGE->url->params());
         $data = $mform->get_data();
         if ($mform->is_cancelled()) {
             redirect($PAGE->url);
         }
         if (!empty($data->groupids)) {
             foreach ($data->groupids as $groupid) {
                 $manager->add_user_to_group($user, $groupid);
             }
             redirect($PAGE->url);
         } else {
             $pagetitle = get_string('addgroup', 'group');
         }
         $actiontaken = true;
     }
 /**
  * enrol and add user to groups in course
  * @param object $course
  * @param csv_import_reader $reader
  * @param int $roleid
  */
 public function process_uploaded_groups($course, $reader, $roleid)
 {
     global $DB, $PAGE;
     $usercol = null;
     // Index of username column.
     $groupcol = null;
     // Index of group column.
     // Find the index of the needed columns.
     $i = 0;
     foreach ($reader->get_columns() as $col) {
         $col = strtoupper(trim($col));
         switch ($col) {
             case 'USERNAME':
                 $usercol = $i;
                 break;
             case 'GROUP':
                 $groupcol = $i;
                 break;
         }
         $i++;
     }
     // Get the manual enrolment plugin.
     $enrolinstances = enrol_get_instances($course->id, true);
     $manualinstance = null;
     foreach ($enrolinstances as $instance) {
         if ($instance->enrol == 'manual') {
             $manualinstance = $instance;
             break;
         }
     }
     $manualenroler = enrol_get_plugin('manual');
     // Get the list of enrolled users for the course.
     $manager = new course_enrolment_manager($PAGE, $course);
     $totalusers = $manager->get_total_users();
     /*
      * Since the number of fields being retrieved are limited (email, id, lastaccess, and lastseen),
      * I feel comfortable retrieving the entire enrolled userbase for this course.
      */
     $users = $manager->get_users('firstname', 'ASC', 0, $totalusers);
     $groups = $manager->get_all_groups();
     $groupids = array();
     foreach ($groups as $group) {
         $groupids[$group->name] = $group->id;
     }
     // Prep the returned array.
     $output = array('group_created' => array(), 'user_enrolled' => array(), 'member_added' => array(), 'error' => array('user_not_found' => array(), 'group_failed' => array(), 'enrol_failed' => array(), 'member_failed' => array(), 'user_not_added' => array()));
     // Loop through the records.
     $reader->init();
     while ($line = $reader->next()) {
         $username = trim($line[$usercol]);
         $groupname = trim($line[$groupcol]);
         // Check if the user exists.
         $user = $DB->get_record('user', array('username' => $username));
         if ($user === false) {
             $output['error']['user_not_found'][] = $username;
             continue;
         }
         // Enroll the user as needed.
         if (!isset($users[$user->id])) {
             try {
                 $manualenroler->enrol_user($manualinstance, $user->id, $roleid);
                 $output['user_enrolled'][] = $username;
             } catch (Exception $e) {
                 $output['error']['enroll_failed'][] = $username;
             }
         }
         // Create the group as needed.
         if (!isset($groupids[$groupname])) {
             if ($groupname != '') {
                 $data = new stdClass();
                 $data->courseid = $course->id;
                 $data->name = $groupname;
                 $newgroupid = groups_create_group($data);
             } else {
                 $newgroupid = false;
             }
             if ($newgroupid === false) {
                 if ($groupname != '') {
                     $output['error']['group_failed'][] = $groupname;
                 }
             } else {
                 $groupids[$groupname] = $newgroupid;
                 $output['group_created'][] = $groupname;
             }
         }
         // Add the user to the group.
         if ($groupname != '') {
             if (groups_add_member($groupids[$groupname], $user->id)) {
                 if (!isset($output['member_added'][$groupname])) {
                     $output['member_added'][$groupname] = array();
                 }
                 $output['member_added'][$groupname][] = $username;
             } else {
                 if (!isset($output['error']['member_failed'][$groupname])) {
                     $output['error']['member_failed'][$groupname] = array();
                 }
                 $output['error']['member_failed'][$groupname][] = $username;
             }
         } else {
             // No group name was provided for this user.
             $output['error']['user_not_added'][] = $username;
         }
     }
     return $output;
 }