Commit | Line | Data |
---|---|---|
bbe0bd98 | 1 | <?php |
2 | ||
3 | // This file is part of Moodle - http://moodle.org/ | |
4 | // | |
5 | // Moodle is free software: you can redistribute it and/or modify | |
6 | // it under the terms of the GNU General Public License as published by | |
7 | // the Free Software Foundation, either version 3 of the License, or | |
8 | // (at your option) any later version. | |
9 | // | |
10 | // Moodle is distributed in the hope that it will be useful, | |
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | // GNU General Public License for more details. | |
14 | // | |
15 | // You should have received a copy of the GNU General Public License | |
16 | // along with Moodle. If not, see <http://www.gnu.org/licenses/>. | |
17 | ||
18 | /** | |
19 | * Allows a creator to edit groupings | |
20 | * | |
21 | * @copyright 1999 Martin Dougiamas http://dougiamas.com | |
22 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | |
4d8e2417 | 23 | * @package core_group |
bbe0bd98 | 24 | */ |
62d63838 | 25 | |
26 | require_once '../config.php'; | |
27 | require_once $CFG->dirroot.'/group/lib.php'; | |
28 | ||
29 | $courseid = required_param('id', PARAM_INT); | |
30 | ||
a6855934 | 31 | $PAGE->set_url('/group/groupings.php', array('id'=>$courseid)); |
bbe0bd98 | 32 | |
dfdaabd6 | 33 | if (!$course = $DB->get_record('course', array('id'=>$courseid))) { |
628fbd48 | 34 | print_error('invalidcourseid'); |
62d63838 | 35 | } |
36 | ||
37 | require_login($course); | |
bf0f06b1 | 38 | $context = context_course::instance($course->id); |
62d63838 | 39 | require_capability('moodle/course:managegroups', $context); |
40 | ||
41 | $strgrouping = get_string('grouping', 'group'); | |
42 | $strgroups = get_string('groups'); | |
43 | $strname = get_string('name'); | |
44 | $strdelete = get_string('delete'); | |
45 | $stredit = get_string('edit'); | |
46 | $srtnewgrouping = get_string('creategrouping', 'group'); | |
47 | $strgroups = get_string('groups'); | |
48 | $strgroupings = get_string('groupings', 'group'); | |
49 | $struses = get_string('activities'); | |
50 | $strparticipants = get_string('participants'); | |
b3b41f38 | 51 | $strmanagegrping = get_string('showgroupsingrouping', 'group'); |
62d63838 | 52 | |
d1021c79 | 53 | navigation_node::override_active_url(new moodle_url('/group/index.php', array('id'=>$courseid))); |
b87573d7 | 54 | $PAGE->navbar->add($strgroupings); |
62d63838 | 55 | |
56 | /// Print header | |
b87573d7 | 57 | $PAGE->set_title($strgroupings); |
d6d07a68 SH |
58 | $PAGE->set_heading($course->fullname); |
59 | $PAGE->set_pagelayout('standard'); | |
b87573d7 | 60 | echo $OUTPUT->header(); |
62d63838 | 61 | |
778918fd | 62 | // Add tabs |
63 | $currenttab = 'groupings'; | |
64 | require('tabs.php'); | |
65 | ||
9cb990ec | 66 | echo $OUTPUT->heading($strgroupings); |
62d63838 | 67 | |
68 | $data = array(); | |
dfdaabd6 | 69 | if ($groupings = $DB->get_records('groupings', array('courseid'=>$course->id), 'name')) { |
74b714df | 70 | $canchangeidnumber = has_capability('moodle/course:changeidnumber', $context); |
3ba63534 MG |
71 | foreach ($groupings as $gid => $grouping) { |
72 | $groupings[$gid]->formattedname = format_string($grouping->name, true, array('context' => $context)); | |
73 | } | |
74 | core_collator::asort_objects_by_property($groupings, 'formattedname'); | |
62d63838 | 75 | foreach($groupings as $grouping) { |
76 | $line = array(); | |
3ba63534 | 77 | $line[0] = $grouping->formattedname; |
62d63838 | 78 | |
79 | if ($groups = groups_get_all_groups($courseid, 0, $grouping->id)) { | |
80 | $groupnames = array(); | |
81 | foreach ($groups as $group) { | |
82 | $groupnames[] = format_string($group->name); | |
83 | } | |
84 | $line[1] = implode(', ', $groupnames); | |
85 | } else { | |
86 | $line[1] = get_string('none'); | |
87 | } | |
dfdaabd6 | 88 | $line[2] = $DB->count_records('course_modules', array('course'=>$course->id, 'groupingid'=>$grouping->id)); |
62d63838 | 89 | |
982f4bc4 FM |
90 | $url = new moodle_url('/group/grouping.php', array('id' => $grouping->id)); |
91 | $buttons = html_writer::link($url, $OUTPUT->pix_icon('t/edit', $stredit, 'core', | |
92 | array('class' => 'iconsmall')), array('title' => $stredit)); | |
74b714df | 93 | if (empty($grouping->idnumber) || $canchangeidnumber) { |
982f4bc4 FM |
94 | // It's only possible to delete groups without an idnumber unless the user has the changeidnumber capability. |
95 | $url = new moodle_url('/group/grouping.php', array('id' => $grouping->id, 'delete' => 1)); | |
96 | $buttons .= html_writer::link($url, $OUTPUT->pix_icon('t/delete', $strdelete, 'core', | |
97 | array('class' => 'iconsmall')), array('title' => $strdelete)); | |
74b714df ARN |
98 | } else { |
99 | $buttons .= $OUTPUT->spacer(); | |
100 | } | |
982f4bc4 FM |
101 | $url = new moodle_url('/group/assign.php', array('id' => $grouping->id)); |
102 | $buttons .= html_writer::link($url, $OUTPUT->pix_icon('t/groups', $strmanagegrping, 'core', | |
103 | array('class' => 'iconsmall')), array('title' => $strmanagegrping)); | |
62d63838 | 104 | |
105 | $line[3] = $buttons; | |
106 | $data[] = $line; | |
107 | } | |
108 | } | |
768cefa0 | 109 | $table = new html_table(); |
62d63838 | 110 | $table->head = array($strgrouping, $strgroups, $struses, $stredit); |
111 | $table->size = array('30%', '50%', '10%', '10%'); | |
112 | $table->align = array('left', 'left', 'center', 'center'); | |
113 | $table->width = '90%'; | |
114 | $table->data = $data; | |
16be8974 | 115 | echo html_writer::table($table); |
62d63838 | 116 | |
768cefa0 | 117 | echo $OUTPUT->container_start('buttons'); |
5c2ed7e2 | 118 | echo $OUTPUT->single_button(new moodle_url('grouping.php', array('courseid'=>$courseid)), $srtnewgrouping); |
768cefa0 | 119 | echo $OUTPUT->container_end(); |
62d63838 | 120 | |
653468d4 | 121 | echo $OUTPUT->footer(); |