Beispiel #1
0
 /**
  * Restore instance and map settings.
  *
  * @param restore_enrolments_structure_step $step
  * @param stdClass $data
  * @param stdClass $course
  * @param int $oldid
  */
 public function restore_instance(restore_enrolments_structure_step $step, stdClass $data, $course, $oldid)
 {
     global $DB, $CFG;
     if (!$step->get_task()->is_samesite()) {
         // No cohort restore from other sites.
         $step->set_mapping('enrol', $oldid, 0);
         return;
     }
     if (!empty($data->customint2)) {
         $data->customint2 = $step->get_mappingid('group', $data->customint2);
     }
     if ($data->roleid and $DB->record_exists('cohort', array('id' => $data->customint1))) {
         $instance = $DB->get_record('enrol', array('roleid' => $data->roleid, 'customint1' => $data->customint1, 'courseid' => $course->id, 'enrol' => $this->get_name()));
         if ($instance) {
             $instanceid = $instance->id;
         } else {
             $instanceid = $this->add_instance($course, (array) $data);
         }
         $step->set_mapping('enrol', $oldid, $instanceid);
         require_once "{$CFG->dirroot}/enrol/cohort/locallib.php";
         $trace = new null_progress_trace();
         enrol_cohort_sync($trace, $course->id);
         $trace->finished();
     } else {
         if ($this->get_config('unenrolaction') == ENROL_EXT_REMOVED_SUSPENDNOROLES) {
             $data->customint1 = 0;
             $instance = $DB->get_record('enrol', array('roleid' => $data->roleid, 'customint1' => $data->customint1, 'courseid' => $course->id, 'enrol' => $this->get_name()));
             if ($instance) {
                 $instanceid = $instance->id;
             } else {
                 $data->status = ENROL_INSTANCE_DISABLED;
                 $instanceid = $this->add_instance($course, (array) $data);
             }
             $step->set_mapping('enrol', $oldid, $instanceid);
             require_once "{$CFG->dirroot}/enrol/cohort/locallib.php";
             $trace = new null_progress_trace();
             enrol_cohort_sync($trace, $course->id);
             $trace->finished();
         } else {
             $step->set_mapping('enrol', $oldid, 0);
         }
     }
 }
Beispiel #2
0
 /**
  * Restore instance and map settings.
  *
  * @param restore_enrolments_structure_step $step
  * @param stdClass $data
  * @param stdClass $course
  * @param int $oldid
  */
 public function restore_instance(restore_enrolments_structure_step $step, stdClass $data, $course, $oldid)
 {
     global $DB, $CFG;
     if (!$step->get_task()->is_samesite()) {
         // No meta restore from other sites.
         $step->set_mapping('enrol', $oldid, 0);
         return;
     }
     if (!empty($data->customint2)) {
         $data->customint2 = $step->get_mappingid('group', $data->customint2);
     }
     if ($DB->record_exists('course', array('id' => $data->customint1))) {
         $instance = $DB->get_record('enrol', array('roleid' => $data->roleid, 'customint1' => $data->customint1, 'courseid' => $course->id, 'enrol' => $this->get_name()));
         if ($instance) {
             $instanceid = $instance->id;
         } else {
             $instanceid = $this->add_instance($course, (array) $data);
         }
         $step->set_mapping('enrol', $oldid, $instanceid);
         require_once "{$CFG->dirroot}/enrol/meta/locallib.php";
         enrol_meta_sync($data->customint1);
     } else {
         $step->set_mapping('enrol', $oldid, 0);
     }
 }