require_capability('mod/chat:chat',$context);
/// Check to see if groups are being used here
- if ($groupmode = groupmode($course, $cm)) { // Groups are being used
- if ($groupid = get_and_set_current_group($course, $groupmode, $groupid)) {
- if (!$group = get_record('groups', 'id', $groupid)) {
+ if ($groupmode = groups_get_activity_groupmode($cm)) { // Groups are being used
+ if ($groupid = groups_get_activity_group($cm)) {
+ if (!$group = groups_get_group($groupid, false)) {
error("That group (id $groupid) doesn't exist!");
}
$groupname = ': '.$group->name;
error('Could not log in to chat room!!');
}
- if (!$chatusers = chat_get_users($chat->id, $groupid)) {
+ if (!$chatusers = chat_get_users($chat->id, $groupid, $cm->groupingid)) {
error(get_string('errornousers', 'chat'));
}
}
/// Check to see if groups are being used here
- if ($groupmode = groupmode($course, $cm)) { // Groups are being used
- if ($groupid = get_and_set_current_group($course, $groupmode, $groupid)) {
+ if ($groupmode = groups_get_activity_groupmode($cm)) { // Groups are being used
+ if ($groupid = groups_get_activity_group($cm)) {
if (!$group = groups_get_group($groupid, false)) {
error("That group (id $groupid) doesn't exist!");
}
$courseid = $chatuser->course;
+ if (!$cm = get_coursemodule_from_instance('chat', $chatuser->chatid, $courseid)) {
+ error('Course Module ID was incorrect');
+ }
+
if ($beep) {
$message->chatid = $chatuser->chatid;
$message->userid = $chatuser->userid;
/// Get list of users
- if (!$chatusers = chat_get_users($chatuser->chatid, $chatuser->groupid)) {
+ if (!$chatusers = chat_get_users($chatuser->chatid, $chatuser->groupid, $cm->groupingid)) {
error(get_string('errornousers', 'chat'));
}
}
/// Check to see if groups are being used here
- if ($groupmode = groupmode($course, $cm)) { // Groups are being used
- if ($groupid = get_and_set_current_group($course, $groupmode, $groupid)) {
- if (! groups_group_exists($groupid)) {
+ if ($groupmode = groups_get_activity_groupmode($cm)) { // Groups are being used
+ if ($groupid = groups_get_activity_group($cm)) {
+ if (!$group = groups_get_group($groupid, false)) {
error("That group (id $groupid) doesn't exist!");
}
$groupname = ': '.$group->name;
//////////////////////////////////////////////////////////////////////
/// Functions that require some SQL
-function chat_get_users($chatid, $groupid=0) {
+function chat_get_users($chatid, $groupid=0, $groupingid=0) {
global $CFG;
} else {
$groupselect = "";
}
+
+ if (!empty($CFG->enablegroupings) && !(empty($groupingid))) {
+ $groupingjoin = "INNER JOIN {$CFG->prefix}groups_members gm ON u.id = gm.userid
+ INNER JOIN {$CFG->prefix}groupings_groups gg ON gm.groupid = gg.groupid AND gg.groupingid = $groupingid ";
+
+ } else {
+ $groupingjoin = '';
+ }
return get_records_sql("SELECT DISTINCT u.id, u.firstname, u.lastname, u.picture, c.lastmessageping, c.firstping
- FROM {$CFG->prefix}chat_users c,
- {$CFG->prefix}user u
+ FROM {$CFG->prefix}chat_users c
+ INNER JOIN {$CFG->prefix}user u ON u.id = c.userid
+ $groupingjoin
WHERE c.chatid = '$chatid'
- AND u.id = c.userid $groupselect
+ $groupselect
ORDER BY c.firstping ASC");
}
$mform->addElement('selectyesno', 'studentlogs', get_string('studentseereports', 'chat'));
- $this->standard_coursemodule_elements();
+ $features = new stdClass;
+ $features->groups = true;
+ $features->groupings = true;
+ $features->groupmembersonly = true;
+ $this->standard_coursemodule_elements($features);
$this->add_action_buttons();
}
'', '', true, '', navmenu($course, $cm));
/// Check to see if groups are being used here
- $groupmode = groupmode($course, $cm);
- $currentgroup = setup_and_print_groups($course, $groupmode, "report.php?id=$cm->id");
+ $groupmode = groups_get_activity_groupmode($cm);
+ $currentgroup = groups_get_activity_group($cm, true);
+ groups_print_activity_menu($cm, "report.php?id=$cm->id");
+
if ($currentgroup) {
$groupselect = " AND groupid = '$currentgroup'";
/// Check to see if groups are being used here
- if ($groupmode = groupmode($course, $cm)) { // Groups are being used
- $currentgroup = setup_and_print_groups($course, $groupmode, "report.php?id=$cm->id");
+ if ($groupmode = groups_get_activity_groupmode($cm)) { // Groups are being used
+ $currentgroup = groups_get_activity_group($cm, true);
+ groups_print_activity_menu($cm, "report.php?id=$cm->id");
} else {
$currentgroup = false;
}
if (!empty($THEME->customcorners)) print_custom_corners_start();
/// Check to see if groups are being used here
- $groupmode = groupmode($course, $cm);
- $currentgroup = setup_and_print_groups($course, $groupmode, "view.php?id=$cm->id");
+ $groupmode = groups_get_activity_groupmode($cm);
+ $currentgroup = groups_get_activity_group($cm, true);
+ groups_print_activity_menu($cm, "view.php?id=$cm->id");
if ($currentgroup) {
$groupselect = " AND groupid = '$currentgroup'";
chat_delete_old_users();
- if ($chatusers = chat_get_users($chat->id, $currentgroup)) {
+ if ($chatusers = chat_get_users($chat->id, $currentgroup, $cm->groupingid)) {
$timenow = time();
print_simple_box_start('center');
print_heading($strcurrentusers);