Ejemplo n.º 1
0
    /**
     * 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);
    }
Ejemplo n.º 2
0
 /**
  * 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);
 }