|
@@ -1008,18 +1008,13 @@ class CourseManager {
|
|
|
: 'SELECT DISTINCT user.user_id, session_course_user.status as status_session, user.* ';
|
|
|
$sql .= ' FROM '.Database::get_main_table(TABLE_MAIN_USER).' as user ';
|
|
|
|
|
|
-
|
|
|
- if (api_get_setting('use_session_mode')=='true' && $with_session) {
|
|
|
+ if (!empty($session_id)) {
|
|
|
$sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER).' as session_course_user
|
|
|
- ON user.user_id = session_course_user.id_user
|
|
|
- AND session_course_user.course_code="'.$course_code.'"';
|
|
|
- if ($session_id != 0) {
|
|
|
- $sql .= ' AND session_course_user.id_session = '.$session_id;
|
|
|
- }
|
|
|
+ ON user.user_id = session_course_user.id_user
|
|
|
+ AND session_course_user.course_code="'.$course_code.'"
|
|
|
+ AND session_course_user.id_session = '.$session_id;
|
|
|
$where[] = ' session_course_user.course_code IS NOT NULL ';
|
|
|
- }
|
|
|
-
|
|
|
- if ($session_id == 0) {
|
|
|
+ } else {
|
|
|
$sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_COURSE_USER).' as course_rel_user
|
|
|
ON user.user_id = course_rel_user.user_id AND course_rel_user.relation_type<>'.COURSE_RELATION_TYPE_RRHH.'
|
|
|
AND course_rel_user.course_code="'.$course_code.'"';
|
|
@@ -1037,7 +1032,7 @@ class CourseManager {
|
|
|
$sql .= " AND (access_url_id = $current_access_url_id ) ";
|
|
|
}
|
|
|
$sql .= ' '.$order_by.' '.$limit;
|
|
|
-
|
|
|
+ echo $sql;
|
|
|
$rs = Database::query($sql);
|
|
|
$users = array();
|
|
|
|
|
@@ -1060,9 +1055,57 @@ class CourseManager {
|
|
|
|
|
|
$users[$user['user_id']] = $user_info;
|
|
|
}
|
|
|
+ }
|
|
|
+ return $users;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Gets subscribed users in a course or in a course/session
|
|
|
+ *
|
|
|
+ * @param string $course_code
|
|
|
+ * @param int $session_id
|
|
|
+ * @return int
|
|
|
+ */
|
|
|
+ public static function get_users_count_in_course($course_code, $session_id = 0) {
|
|
|
+ global $_configuration;
|
|
|
+ // variable initialisation
|
|
|
+ $session_id = intval($session_id);
|
|
|
+ $course_code = Database::escape_string($course_code);
|
|
|
+
|
|
|
+ $sql .= 'SELECT DISTINCT count(*) as count FROM '.Database::get_main_table(TABLE_MAIN_USER).' as user ';
|
|
|
+ $where = array();
|
|
|
+ if (!empty($session_id)) {
|
|
|
+ $sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER).' as session_course_user
|
|
|
+ ON user.user_id = session_course_user.id_user
|
|
|
+ AND session_course_user.course_code = "'.$course_code.'"
|
|
|
+ AND session_course_user.id_session = '.$session_id;
|
|
|
+
|
|
|
+ $where[] = ' session_course_user.course_code IS NOT NULL ';
|
|
|
+ } else {
|
|
|
+ $sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_COURSE_USER).' as course_rel_user
|
|
|
+ ON user.user_id = course_rel_user.user_id AND course_rel_user.relation_type<>'.COURSE_RELATION_TYPE_RRHH.'
|
|
|
+ AND course_rel_user.course_code="'.$course_code.'"';
|
|
|
+ $where[] = ' course_rel_user.course_code IS NOT NULL ';
|
|
|
}
|
|
|
|
|
|
- return $users;
|
|
|
+ if ($_configuration['multiple_access_urls']) {
|
|
|
+ $sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER).' au ON (au.user_id = user.user_id) ';
|
|
|
+ }
|
|
|
+
|
|
|
+ $sql .= ' WHERE '.implode(' OR ', $where);
|
|
|
+
|
|
|
+ if ($_configuration['multiple_access_urls']) {
|
|
|
+ $current_access_url_id = api_get_current_access_url_id();
|
|
|
+ $sql .= " AND (access_url_id = $current_access_url_id ) ";
|
|
|
+ }
|
|
|
+ $rs = Database::query($sql);
|
|
|
+ $users = array();
|
|
|
+ $count = 0;
|
|
|
+ if (Database::num_rows($rs)) {
|
|
|
+ $user = Database::fetch_array($rs);
|
|
|
+ $count = $user['count'];
|
|
|
+ }
|
|
|
+ return $count;
|
|
|
}
|
|
|
|
|
|
/**
|