/** * Create new assign module instance * @param array|stdClass $record * @param array $options (mostly course_module properties) * @return stdClass activity record with extra cmid field */ public function create_instance($record = null, array $options = null) { global $CFG; require_once("$CFG->dirroot/mod/assign/lib.php"); $this->instancecount++; $i = $this->instancecount; $record = (object)(array)$record; $options = (array)$options; if (empty($record->course)) { throw new coding_exception('module generator requires $record->course'); } $defaultsettings = array( 'name' => get_string('pluginname', 'assign').' '.$i, 'intro' => 'Test assign ' . $i, 'introformat' => FORMAT_MOODLE, 'alwaysshowdescription' => 1, 'submissiondrafts' => 1, 'requiresubmissionstatement' => 0, 'sendnotifications' => 0, 'sendlatenotifications' => 0, 'duedate' => 0, 'allowsubmissionsfromdate' => 0, 'grade' => 100, 'cutoffdate' => 0, 'teamsubmission' => 0, 'requireallteammemberssubmit' => 0, 'teamsubmissiongroupingid' => 0, 'blindmarking' => 0, 'cmidnumber' => '', 'attemptreopenmethod' => 'none', 'maxattempts' => -1 ); foreach ($defaultsettings as $name => $value) { if (!isset($record->{$name})) { $record->{$name} = $value; } } $record->coursemodule = $this->precreate_course_module($record->course, $options); $id = assign_add_instance($record, null); rebuild_course_cache($record->course, true); return $this->post_add_instance($id, $record->coursemodule); }
/** * Create new assign module instance * @param array|stdClass $record * @param array $options (mostly course_module properties) * @return stdClass activity record with extra cmid field */ public function create_instance($record = null, array $options = null) { global $CFG; require_once "{$CFG->dirroot}/mod/assign/lib.php"; $this->instancecount++; $i = $this->instancecount; $record = (object) (array) $record; $options = (array) $options; if (empty($record->course)) { throw new coding_exception('module generator requires $record->course'); } if (!isset($record->name)) { $record->name = get_string('pluginname', 'data') . ' ' . $i; } if (!isset($record->intro)) { $record->intro = 'Test database ' . $i; } if (!isset($record->introformat)) { $record->introformat = FORMAT_MOODLE; } if (!isset($record->alwaysshowdescription)) { $record->alwaysshowdescription = 1; } if (!isset($record->nosubmissions)) { $record->nosubmissions = 0; } if (!isset($record->submissiondrafts)) { $record->submissiondrafts = 1; } if (!isset($record->requiresubmissionstatement)) { $record->requiresubmissionstatement = 0; } if (!isset($record->sendnotifications)) { $record->sendnotifications = 0; } if (!isset($record->sendlatenotifications)) { $record->sendlatenotifications = 0; } if (!isset($record->duedate)) { $record->duedate = 0; } if (!isset($record->allowsubmissionsfromdate)) { $record->allowsubmissionsfromdate = 0; } if (!isset($record->assignsubmission_onlinetext_enabled)) { $record->assignsubmission_onlinetext_enabled = 0; } if (!isset($record->assignsubmission_file_enabled)) { $record->assignsubmission_file_enabled = 0; } if (!isset($record->assignsubmission_comments_enabled)) { $record->assignsubmission_comments_enabled = 0; } if (!isset($record->assignfeedback_comments_enabled)) { $record->assignfeedback_comments_enabled = 0; } if (!isset($record->assignfeedback_file_enabled)) { $record->assignfeedback_file_enabled = 0; } if (!isset($record->assignfeedback_offline_enabled)) { $record->assignfeedback_offline_enabled = 0; } if (!isset($record->grade)) { $record->grade = 100; } if (!isset($record->cutoffdate)) { $record->cutoffdate = 0; } if (!isset($record->teamsubmission)) { $record->teamsubmission = 0; } if (!isset($record->requireallteammemberssubmit)) { $record->requireallteammemberssubmit = 0; } if (!isset($record->teamsubmissiongroupingid)) { $record->teamsubmissiongroupingid = 0; } if (!isset($record->blindmarking)) { $record->blindmarking = 0; } if (isset($options['idnumber'])) { $record->cmidnumber = $options['idnumber']; } else { $record->cmidnumber = ''; } $record->coursemodule = $this->precreate_course_module($record->course, $options); $id = assign_add_instance($record, null); return $this->post_add_instance($id, $record->coursemodule); }
/** * Create a test module * * @param array|stdClass $record * @param array $options * @throws coding_exception * @return \stdClass activity record */ public function create_instance($record = null, array $options = array()) { static $instancecount = 0; $instancecount++; if (empty($record->course)) { throw new coding_exception('Can\'t make a new assign module instance without a course'); } $assign = new stdClass(); $assign->name = 'New assignment ' . $instancecount; $assign->intro = 'New assignment description '; $assign->introformat = 1; $assign->alwaysshowdescription = 1; $assign->nosubmissions = 0; $assign->preventlatesubmissions = 0; $assign->submissiondrafts = 0; $assign->sendnotifications = 0; $assign->sendlatenotifications = 0; $assign->duedate = 0; $assign->allowsubmissionsfromdate = 0; $assign->grade = 100; $assign->timemodified = time(); $assign->assignsubmission_onlinetext_enabled = 1; $assign->assignsubmission_file_enabled = 0; $assign->assignsubmission_comments_enabled = 0; $assign->assignsubmission_feedback_enabled = 1; $assign->assignfeedback_comments_enabled = 1; $assign->assignfeedback_file_enabled = 1; $assign = (object) array_merge((array) $assign, (array) $record); $assign->coursemodule = $this->precreate_course_module($assign->course, $options); $current = new stdClass(); $current->instance = 1; $current->coursemodule = false; $current->course = false; $course = new stdClass(); $course->id = $record->course; $fakeform = new mod_assign_mod_form($current, null, null, $course); $assign->id = assign_add_instance($assign, $fakeform); return $this->post_add_instance($assign->id, $assign->coursemodule); }