2 // Edit course settings
4 require_once('../config.php');
5 require_once($CFG->dirroot
.'/enrol/enrol.class.php');
6 require_once($CFG->libdir
.'/blocklib.php');
7 require_once('lib.php');
8 require_once('edit_form.php');
10 $id = optional_param('id', 0, PARAM_INT
); // course id
11 $categoryid = optional_param('category', 0, PARAM_INT
); // course category - can be changed in edit form
14 /// basic access control checks
15 if ($id) { // editing course
16 if (!$course = get_record('course', 'id', $id)) {
17 error('Course ID was incorrect');
19 require_login($course->id
);
20 $category = get_record('course_categories', 'id', $course->category
);
21 require_capability('moodle/course:update', get_context_instance(CONTEXT_COURSE
, $course->id
));
23 } else if ($categoryid) { // creating new course in this category
26 if (!$category = get_record('course_categories', 'id', $categoryid)) {
27 error('Category ID was incorrect');
29 require_capability('moodle/course:create', get_context_instance(CONTEXT_COURSECAT
, $category->id
));
32 error('Either course id or category must be specified');
36 if (!empty($course)) {
37 $allowedmods = array();
38 if (!empty($course)) {
39 if ($am = get_records('course_allowed_modules','course',$course->id
)) {
41 $allowedmods[] = $m->module
;
44 if (empty($course->restrictmodules
)) {
45 $allowedmods = explode(',',$CFG->defaultallowedmodules
);
46 } // it'll be greyed out but we want these by default anyway.
48 $course->allowedmods
= $allowedmods;
50 if ($course->enrolstartdate
){
51 $course->enrolstartdisabled
= 0;
54 if ($course->enrolenddate
) {
55 $course->enrolenddisabled
= 0;
61 /// first create the form
62 $editform = new course_edit_form('edit.php', compact('course', 'category'));
63 // now override defaults if course already exists
64 if (!empty($course)) {
65 $editform->set_data($course);
67 if ($editform->is_cancelled()){
69 redirect($CFG->wwwroot
);
71 redirect($CFG->wwwroot
.'/course/view.php?id='.$course->id
);
74 } else if ($data = $editform->get_data()) {
76 /// process data if submitted
79 if ($data->enrolstartdisabled
){
80 $data->enrolstartdate
= 0;
83 if ($data->enrolenddisabled
) {
84 $data->enrolenddate
= 0;
87 $data->timemodified
= time();
90 if (!$course = create_course($data)) {
91 print_error('coursenotcreated');
94 $context = get_context_instance(CONTEXT_COURSE
, $course->id
);
96 // assign default role to creator if not already having permission to manage course assignments
97 if (!has_capability('moodle/course:view', $context) or !has_capability('moodle/role:assign', $context)) {
98 role_assign($CFG->creatornewroleid
, $USER->id
, 0, $context->id
);
101 if ($data->metacourse
and has_capability('moodle/course:managemetacourse', $context)) {
102 // Redirect users with metacourse capability to student import
103 redirect($CFG->wwwroot
."/course/importstudents.php?id=$course->id");
105 // Redirect to roles assignment
106 redirect($CFG->wwwroot
."/$CFG->admin/roles/assign.php?contextid=$context->id");
110 if (!update_course($data)) {
111 print_error('coursenotupdated');
114 redirect($CFG->wwwroot
."/course/view.php?id=$course->id");
123 $streditcoursesettings = get_string("editcoursesettings");
124 $straddnewcourse = get_string("addnewcourse");
125 $stradministration = get_string("administration");
126 $strcategories = get_string("categories");
128 if (!empty($course)) {
129 print_header($streditcoursesettings, $course->fullname
,
130 "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a>
131 -> $streditcoursesettings", $editform->focus());
133 print_header("$site->shortname: $straddnewcourse", $site->fullname
,
134 "<a href=\"$CFG->wwwroot/$CFG->admin/index.php\">$stradministration</a> -> ".
135 "<a href=\"index.php\">$strcategories</a> -> $straddnewcourse", $editform->focus());
138 print_heading($streditcoursesettings);
140 $editform->display();
142 print_footer($course);