df9cfeadfe106a801924f7a8b12de4e747e65994
[moodle.git] / group / group.php
1 <?php
2 /**
3  * Create group OR edit group settings.
4  *
5  * @copyright &copy; 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
9  * @package groups
10  */
12 require_once('../config.php');
13 require_once('lib.php');
14 require_once('group_form.php');
16 /// get url variables
17 $courseid = optional_param('courseid', 0, PARAM_INT);
18 $id       = optional_param('id', 0, PARAM_INT);
19 $delete   = optional_param('delete', 0, PARAM_BOOL);
20 $confirm  = optional_param('confirm', 0, PARAM_BOOL);
22 // This script used to support group delete, but that has been moved. In case
23 // anyone still links to it, let's redirect to the new script.
24 if($delete) {
25     redirect('delete.php?courseid='.$courseid.'&groups='.$id);
26 }
28 if ($id) {
29     if (!$group = $DB->get_record('groups', array('id'=>$id))) {
30         print_error('invalidgroupid');
31     }
32     $group->description = clean_text($group->description);
33     if (empty($courseid)) {
34         $courseid = $group->courseid;
36     } else if ($courseid != $group->courseid) {
37         print_error('invalidcourseid');
38     }
40     if (!$course = $DB->get_record('course', array('id'=>$courseid))) {
41         print_error('invalidcourseid');
42     }
44 } else {
45     if (!$course = $DB->get_record('course', array('id'=>$courseid))) {
46         print_error('invalidcourseid');
47     }
48     $group = new object();
49     $group->courseid = $course->id;
50 }
52 require_login($course);
53 $context = get_context_instance(CONTEXT_COURSE, $course->id);
54 require_capability('moodle/course:managegroups', $context);
56 $returnurl = $CFG->wwwroot.'/group/index.php?id='.$course->id.'&amp;group='.$id;
58 if ($id and $delete) {
59     if (!$confirm) {
60         print_header(get_string('deleteselectedgroup', 'group'), get_string('deleteselectedgroup', 'group'));
61         $optionsyes = array('id'=>$id, 'delete'=>1, 'courseid'=>$courseid, 'sesskey'=>sesskey(), 'confirm'=>1);
62         $optionsno  = array('id'=>$courseid);
63         $formcontinue = html_form::make_button('group.php', $optionsyes, get_string('yes'), 'get');
64         $formcancel = html_form::make_button($baseurl, $optionsno, get_string('no'), 'get');
65         echo $OUTPUT->confirm(get_string('deletegroupconfirm', 'group', $group->name), $formcontinue, $formcancel);
66         echo $OUTPUT->footer();
67         die;
69     } else if (confirm_sesskey()){
70         if (groups_delete_group($id)) {
71             redirect('index.php?id='.$course->id);
72         } else {
73             print_error('erroreditgroup', 'group', $returnurl);
74         }
75     }
76 }
78 /// First create the form
79 $editform = new group_form();
80 $editform->set_data($group);
82 if ($editform->is_cancelled()) {
83     redirect($returnurl);
85 } elseif ($data = $editform->get_data()) {
87     if ($data->id) {
88         groups_update_group($data, $editform);
89     } else {
90         $id = groups_create_group($data, $editform);
91         $returnurl = $CFG->wwwroot.'/group/index.php?id='.$course->id.'&amp;group='.$id;
92     }
94     redirect($returnurl);
95 }
97 $strgroups = get_string('groups');
98 $strparticipants = get_string('participants');
100 if ($id) {
101     $strheading = get_string('editgroupsettings', 'group');
102 } else {
103     $strheading = get_string('creategroup', 'group');
107 $navlinks = array(array('name'=>$strparticipants, 'link'=>$CFG->wwwroot.'/user/index.php?id='.$courseid, 'type'=>'misc'),
108                   array('name'=>$strgroups, 'link'=>$CFG->wwwroot.'/group/index.php?id='.$courseid, 'type'=>'misc'),
109                   array('name'=>$strheading, 'link'=>'', 'type'=>'misc'));
110 $navigation = build_navigation($navlinks);
112 /// Print header
113 print_header_simple($strgroups, ': '.$strgroups, $navigation, '', '', true, '', navmenu($course));
115 echo '<div id="grouppicture">';
116 if ($id) {
117     print_group_picture($group, $course->id);
119 echo '</div>';
120 $editform->display();
121 echo $OUTPUT->footer();
122 ?>