/** * Will set up a repeating template, with elements for each piece of required data * * Does not set defaults for the elements. * * @param int $numSessions number of Sessions that have been created for the course */ private function add_session_repeat_template($numSessions) { global $DB; $mform = $this->_form; $repeatoptions = array(); $repeatarray = array(); $repeatarray[] = $mform->createElement('header', 'sessionheader'); $repeatarray[] = $mform->createElement('text', 'sessiontitle', get_string('session_title', 'local_metadata')); $repeatarray[] = $mform->createElement('text', 'sessionguestteacher', get_string('session_guest_teacher', 'local_metadata')); $repeatarray[] = $mform->createElement('select', 'sessiontype', get_string('session_type', 'local_metadata'), get_session_types()); $repeatarray[] = $mform->createElement('select', 'sessionlength', get_string('session_length', 'local_metadata'), get_session_lengths()); $repeatarray[] = $mform->createElement('date_selector', 'sessiondate', get_string('session_date', 'local_metadata')); $strategies = get_teaching_strategies(); $teachingStrategyEl = $mform->createElement('select', 'sessionteachingstrategy', get_string('session_teaching_strategy', 'local_metadata'), $strategies, array('size' => count($strategies))); $teachingStrategyEl->setMultiple(true); $repeatarray[] = $teachingStrategyEl; // Set up the select for learning objectives // Will separate them based on type // Then, everytime need to deal with them, will also deal with them separated by type $learningObjectives = get_course_learning_objectives(); $learningObjectivesList = array(); foreach ($learningObjectives as $learningObjective) { $learningObjectivesList[$learningObjective->objectivetype][$learningObjective->id] = $learningObjective->objectivename; } $learningObjectiveTypes = get_learning_objective_types(); foreach ($learningObjectiveTypes as $learningObjectiveType) { $options = array(); if (array_key_exists($learningObjectiveType, $learningObjectivesList)) { $options = $learningObjectivesList[$learningObjectiveType]; } $learningObjectivesEl = $mform->createElement('select', 'learning_objective_' . $learningObjectiveType, get_string('learning_objective_' . $learningObjectiveType, 'local_metadata'), $options); $learningObjectivesEl->setMultiple(true); $repeatarray[] = $learningObjectivesEl; $repeatoptions['learning_objective_' . $learningObjectiveType]['helpbutton'] = array('multi_select_help', 'local_metadata'); } // Set up the select for assessments $assessments = get_table_data_for_course('courseassessment'); $assessmentsList = array(); foreach ($assessments as $assessment) { $assessmentsList[$assessment->id] = $assessment->assessmentname; } $assessmentsEl = $mform->createElement('select', 'assessments', get_string('related_assessments', 'local_metadata'), $assessmentsList); $assessmentsEl->setMultiple(true); $repeatarray[] = $assessmentsEl; $this->setup_topic_options($mform, $repeatarray, $repeatoptions); $repeatarray[] = $mform->createElement('submit', 'delete_session', get_string('deletesession', 'local_metadata')); $this->add_recurring_element_nosubmit_button($mform, 'delete_session'); // Add needed hidden elements // Stores the id for each element $repeatarray[] = $mform->createElement('hidden', 'coursesession_id', -1); $repeatarray[] = $mform->createElement('hidden', 'was_deleted', false); $repeatoptions['sessionheader']['default'] = get_string('new_session_header', 'local_metadata'); // Moodle complains if some elements aren't given a type $repeatoptions['sessiontitle']['type'] = PARAM_TEXT; $repeatoptions['sessionguestteacher']['type'] = PARAM_TEXT; $repeatoptions['all_topics_text_array']['type'] = PARAM_TEXT; $repeatoptions['new_topic']['type'] = PARAM_TEXT; $repeatoptions['coursesession_id']['type'] = PARAM_INT; $repeatoptions['was_deleted']['type'] = PARAM_RAW; $repeatoptions['sessionteachingstrategy']['helpbutton'] = array('session_teaching_strategy', 'local_metadata'); // Add the repeating elements to the form $this->repeat_elements($repeatarray, $numSessions, $repeatoptions, 'sessions_list', 'sessions_list_add_element', 1, get_string('add_session', 'local_metadata')); }
/** * Will set up a repeating template, with elements for each piece of required data * * Does not set defaults for the elements. * * @param int $assessmentCount number of assessments that have been created for the course */ function add_assessment_template($assessmentCount) { $mform = $this->_form; $elementArray = array(); $optionsArray = array(); //Set the options $optionsArray['assessmentname']['type'] = PARAM_TEXT; $optionsArray['assessmentprof']['type'] = PARAM_TEXT; $optionsArray['assessmentprof']['helpbutton'] = array('assessmentlecturer_help', 'local_metadata'); $optionsArray['description']['type'] = PARAM_TEXT; $optionsArray['gradingDesc']['type'] = PARAM_TEXT; $optionsArray['gdescription']['helpbutton'] = array('assessment_grading_help', 'local_metadata'); $optionsArray['assessmentweight']['type'] = PARAM_TEXT; // If is not an exam, should disable these two $optionsArray['assessmentprof']['disabledif'] = array('type', 'neq', 0); $optionsArray['assessmentexamtype']['disabledif'] = array('type', 'neq', 0); $optionsArray['assessment_knowledge']['setmultiple'] = true; $optionsArray['courseassessment_id']['type'] = PARAM_TEXT; $optionsArray['was_deleted']['type'] = PARAM_TEXT; $optionsArray['assessment_header']['default'] = get_string('new_assessment_header', 'local_metadata'); // Form elements $elementArray[] = $mform->createElement('header', 'assessment_header'); $elementArray[] = $mform->createElement('text', 'assessmentname', get_string('assessment_title', 'local_metadata')); $elementArray[] = $mform->createElement('select', 'type', get_string('assessment_type', 'local_metadata'), get_assessment_types(), ''); $elementArray[] = $mform->createElement('text', 'assessmentprof', get_string('assessment_prof', 'local_metadata')); $exam_types = get_exam_types(); $elementArray[] = $mform->createElement('select', 'assessmentexamtype', get_string('assessment_examtype', 'local_metadata'), $exam_types); $optionsArray['assessmentexamtype']['default'] = array_search('Other', $exam_types); $elementArray[] = $mform->createElement('text', 'assessmentweight', get_string('grade_weight', 'local_metadata')); $elementArray[] = $mform->createElement('date_selector', 'assessmentduedate', get_string('assessment_due', 'local_metadata')); $elementArray[] = $mform->createElement('textarea', 'description', get_string('assessment_description', 'local_metadata')); $elementArray[] = $mform->createElement('filepicker', 'gradingDescription_uploaded', get_string('assessment_grading_upload', 'local_metadata'), null, array('maxbytes' => 2000, 'accepted_types' => '*')); $elementArray[] = $mform->createElement('submit', 'gradingDescription_upload', get_string('assessment_grading_upload_submit', 'local_metadata')); $elementArray[] = $mform->createElement('textarea', 'gdescription', get_string('assessment_grading_desc', 'local_metadata')); // Add needed hidden elements // Stores the id for each element $elementArray[] = $mform->createElement('hidden', 'courseassessment_id', -1); $elementArray[] = $mform->createElement('hidden', 'was_deleted', false); //copied from session_form.php ///////////////////////////////////////////////// $learningObjectives = get_course_learning_objectives(); $learningObjectivesList = array(); foreach ($learningObjectives as $learningObjective) { $learningObjectivesList[$learningObjective->objectivetype][$learningObjective->id] = $learningObjective->objectivename; } $learningObjectiveTypes = get_learning_objective_types(); foreach ($learningObjectiveTypes as $learningObjectiveType) { $options = array(); if (array_key_exists($learningObjectiveType, $learningObjectivesList)) { $options = $learningObjectivesList[$learningObjectiveType]; } $learningObjectivesEl = $mform->createElement('select', 'learning_objective_' . $learningObjectiveType, get_string('learning_objective_' . $learningObjectiveType, 'local_metadata'), $options); $learningObjectivesEl->setMultiple(true); $elementArray[] = $learningObjectivesEl; $optionsArray['learning_objective_' . $learningObjectiveType]['helpbutton'] = array('multi_select_help', 'local_metadata'); } ///////////////////////////////////////////////// $elementArray[] = $mform->createElement('submit', 'delete_assessment', get_string('deleteassessment', 'local_metadata')); $this->add_recurring_element_nosubmit_button($mform, 'delete_assessment'); $this->repeat_elements($elementArray, $assessmentCount, $optionsArray, 'assessment_list', 'assessment_list_add_element', 1, get_string('assessment_add', 'local_metadata')); }
function definition() { global $CFG, $DB, $USER; //Declare our globals for use global $course, $courseId; // initialize the form. $mform = $this->_form; //Tell this object to initialize with the properties of the Moodle form. // retrieve data from course info and instructor table $courseinfo = $DB->get_record('courseinfo', array('courseid' => $courseId)); if ($courseinfo != NULL) { $contactinfo = $DB->get_record('courseinstructors', array('courseid' => $courseinfo->id, 'userid' => $USER->id)); $coursegradattributes = $DB->get_records('coursegradattributes', array('courseinfoid' => $courseinfo->id)); } else { $contactinfo = NULL; $coursegradattributes = NULL; } $coursecategory = $DB->get_record('course_categories', array('id' => $course->category)); $defcategories = $DB->get_records('coursecategories', array('categoryid' => $coursecategory->id)); $coursereadings = get_course_readings(); $graduateattributes = $DB->get_records('graduateattributes'); $reading_list = array(); foreach ($coursereadings as $reading) { $obj = new stdClass(); $obj->id = $reading->id; $obj->name = $reading->readingname; $obj->url = $reading->readingurl; $reading_list[] = $obj; } $gradatt_list = array(); if (!is_null($coursegradattributes)) { foreach ($coursegradattributes as $gradatt) { $obj = new stdClass(); $obj->id = $gradatt->id; $gradatts = $DB->get_record('graduateattributes', array('id' => $gradatt->gradattid)); $obj->gradattid = $gradatts->id; $gradatt_list[] = $obj; } } $learning_objectives = get_course_learning_objectives(); $knowledge_list = array(); $skill_list = array(); $attitude_list = array(); foreach ($learning_objectives as $obj) { if ($obj->objectivetype === 'Knowledge') { $knowledge_list[] = $this->get_learning_obj($obj->id, $obj->objectivename); } else { if ($obj->objectivetype === 'Skill') { $skill_list[] = $this->get_learning_obj($obj->id, $obj->objectivename); } else { $attitude_list[] = $this->get_learning_obj($obj->id, $obj->objectivename); } } } // setup form elements $this->setup_general($mform, $courseinfo, $contactinfo, $coursecategory, $defcategories); $this->setup_contact($mform, $courseinfo, $contactinfo); $this->setup_description($mform, $courseinfo); $this->setup_upload_req_reading($mform); $this->setup_req_reading($mform, $reading_list); $this->setup_format($mform, $courseinfo); $this->setup_upload_course_obj($mform); $this->setup_course_obj($mform, 'knowledge', $knowledge_list, 'skill'); $this->setup_course_obj($mform, 'skill', $skill_list, 'attitude'); $this->setup_course_obj($mform, 'attitude', $attitude_list, 'gradatt'); $this->setup_graduate_attributes($mform, $graduateattributes, $gradatt_list); $this->setup_teaching_assumption($mform, $courseinfo); // Add form buttons $this->add_action_buttons(true, "Save general information"); }