3 * Create grouping OR edit grouping settings.
5 * @copyright © 2006 The Open University
6 * @author N.D.Freear AT open.ac.uk
7 * @author J.White AT open.ac.uk
8 * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
15 require_once('../config.php');
16 require_once('lib.php');
17 require_once($CFG->libdir
.'/moodlelib.php');
18 require_once('grouping_edit_form.php');
20 $courseid = required_param('courseid', PARAM_INT
);
21 $id = optional_param('id', false, PARAM_INT
);
23 $delete = optional_param('delete', false, PARAM_BOOL
);
25 if (empty($CFG->enablegroupings
)) {
27 error('No groupings yet');
30 // Get the course information so we can print the header and
31 // check the course id is valid
32 $course = groups_get_course_info($courseid);
35 print_error('invalidcourse'); //'The course ID is invalid'
37 if (GROUP_NOT_IN_GROUPING
== $id) {
38 print_error('errornotingroupingedit', 'group', groups_home_url($courseid), get_string('notingrouping', 'group'));
41 /// basic access control checks
43 if (!$grouping = get_record('groups_groupings', 'id', $id)) {
44 error('Grouping ID was incorrect');
46 $context = get_context_instance(CONTEXT_COURSE
, $course->id
);
47 require_capability('moodle/course:managegroups', $context);
50 /// First create the form
51 $editform = new grouping_edit_form('grouping.php', compact('grouping', 'courseid'));
53 /// Override defaults if group is set
54 if (!empty($grouping)) {
55 $editform->set_data($grouping);
60 if (groups_delete_grouping($id)) {
61 redirect(groups_home_url($course->id
));
63 print_error('erroreditgrouping', 'group', groups_home_url($course->id
));
67 if ($editform->is_cancelled()) {
68 redirect(groups_home_url($courseid, false, $id, false));
69 } elseif ($data = $editform->get_data()) {
72 if (empty($grouping)) { // New grouping
73 if (!$id = groups_create_grouping($course->id
, $data)) {
74 print_error('erroreditgrouping');
79 } else { // Updating grouping
80 if (!groups_update_grouping($data, $course->id
)) {
81 print_error('groupingnotupdated');
86 redirect(groups_home_url($courseid, false, $id, false));
88 print_error('erroreditgrouping', 'group', groups_home_url($courseid));
91 } else { // Prepare and output form
92 $strgroups = get_string('groups');
93 $strparticipants = get_string('participants');
96 $strheading = get_string('editgroupingsettings', 'group');
98 $strheading = get_string('creategrouping', 'group');
100 print_header("$course->shortname: ". $strheading,
102 "<a href=\"$CFG->wwwroot/course/view.php?id=$courseid\">$course->shortname</a> ".
103 "-> <a href=\"$CFG->wwwroot/user/index.php?id=$courseid\">$strparticipants</a> ".
104 '-> <a href="' .format_string(groups_home_url($courseid, false, $id, false)) . "\">$strgroups</a>".
105 "-> $strheading", '', '', true, '', user_login_string($course, $USER));
106 print_heading($strheading);
107 $editform->display();
108 print_footer($course);