/** * 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; // There is only I manual enrol instance allowed per course. if ($instances = $DB->get_records('enrol', array('courseid' => $data->courseid, 'enrol' => 'manual'), 'id')) { $instance = reset($instances); $instanceid = $instance->id; } else { $instanceid = $this->add_instance($course, (array) $data); } $step->set_mapping('enrol', $oldid, $instanceid); }
/** * 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; if ($step->get_task()->get_target() == backup::TARGET_NEW_COURSE) { $merge = false; } else { $merge = array('courseid' => $data->courseid, 'enrol' => $this->get_name(), 'roleid' => $data->roleid); } if ($merge and $instances = $DB->get_records('enrol', $merge, 'id')) { $instance = reset($instances); $instanceid = $instance->id; } else { if (!empty($data->customint5)) { if ($step->get_task()->is_samesite()) { // Keep cohort restriction unchanged - we are on the same site. } else { // Use some id that can not exist in order to prevent self enrolment, // because we do not know what cohort it is in this site. $data->customint5 = -1; } } $instanceid = $this->add_instance($course, (array) $data); } $step->set_mapping('enrol', $oldid, $instanceid); }
/** * 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; if ($instance = $DB->get_record('enrol', array('courseid' => $course->id, 'enrol' => $this->get_name()))) { $instanceid = $instance->id; } else { $instanceid = $this->add_instance($course); } $step->set_mapping('enrol', $oldid, $instanceid); }
/** * 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); } } }
/** * 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; if ($step->get_task()->get_target() == backup::TARGET_NEW_COURSE) { $merge = false; } else { $merge = array('courseid' => $data->courseid, 'enrol' => $this->get_name(), 'roleid' => $data->roleid, 'cost' => $data->cost, 'currency' => $data->currency); } if ($merge and $instances = $DB->get_records('enrol', $merge, 'id')) { $instance = reset($instances); $instanceid = $instance->id; } else { $instanceid = $this->add_instance($course, (array) $data); } $step->set_mapping('enrol', $oldid, $instanceid); }
/** * 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) { // Do not call this from overridden methods, restore and set new id there. $step->set_mapping('enrol', $oldid, 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; if (!$DB->record_exists('enrol', array('courseid' => $data->courseid, 'enrol' => $this->get_name()))) { $this->add_instance($course, (array) $data); } // No need to set mapping, we do not restore users or roles here. $step->set_mapping('enrol', $oldid, 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); } }
/** * 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) { // We want to call the parent because we do not want to add an enrol_lti_tools row // as that is done as part of the restore process. $instanceid = parent::add_instance($course, (array) $data); $step->set_mapping('enrol', $oldid, $instanceid); }