enablegroupmembersonly)) AND (! empty($cm->groupmembersonly))) { if ($cm->groupingid) { $membershipsql .= ' JOIN (SELECT DISTINCT usr.id '; $membershipsql .= ' FROM {user} usr '; $membershipsql .= ' , {groups_members} grm '; $membershipsql .= ' , {groupings_groups} grg '; $membershipsql .= ' WHERE usr.id = grm.userid '; $membershipsql .= ' AND grm.groupid = grg.groupid '; $membershipsql .= ' AND grg.groupingid = '.$cm->groupingid.') gpm '; $membershipsql .= ' ON gpm.id = u.id '; } else { $membershipsql .= ' JOIN (SELECT DISTINCT usr.id '; $membershipsql .= ' FROM {user} usr '; $membershipsql .= ' , {groups_members} grm '; $membershipsql .= ' , {groups} grp '; $membershipsql .= ' WHERE usr.id = grm.userid '; $membershipsql .= ' AND grm.groupid = grp.id '; $membershipsql .= ' AND grp.courseid = '.$cm->course.') gpm '; $membershipsql .= ' ON gpm.id = u.id '; } } } list($esql, $params) = get_enrolled_sql($context, $withcapability, $groupid, $onlyactive); $sql = "SELECT $userfields FROM {user} u JOIN ($esql) je ON je.id = u.id $membershipsql WHERE u.deleted = 0"; if ($orderby) { $sql = "$sql ORDER BY $orderby"; } else { list($sort, $sortparams) = users_order_by_sql('u'); $sql = "$sql ORDER BY $sort"; $params = array_merge($params, $sortparams); } return $DB->get_records_sql($sql, $params, $limitfrom, $limitnum); }