Adding multiple URL support in the course user list

skala
Julio Montoya 15 years ago
parent 10c91925b7
commit 2183cdb0b6
  1. 15
      main/inc/lib/course.lib.php
  2. 36
      main/user/user.php

@ -970,7 +970,7 @@ class CourseManager {
* @return array * @return array
*/ */
public static function get_user_list_from_course_code($course_code, $with_session = true, $session_id = 0, $limit = '', $order_by = '') { public static function get_user_list_from_course_code($course_code, $with_session = true, $session_id = 0, $limit = '', $order_by = '') {
global $_configuration;
// variable initialisation // variable initialisation
$session_id = intval($session_id); $session_id = intval($session_id);
$users = array(); $users = array();
@ -1008,11 +1008,20 @@ class CourseManager {
AND course_rel_user.course_code="'.$course_code.'"'; AND course_rel_user.course_code="'.$course_code.'"';
$where[] = ' course_rel_user.course_code IS NOT NULL '; $where[] = ' course_rel_user.course_code IS NOT NULL ';
} }
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); $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 ) ";
}
$sql .= ' '.$order_by.' '.$limit; $sql .= ' '.$order_by.' '.$limit;
$rs = Database::query($sql); $rs = Database::query($sql);
while ($user = Database::fetch_array($rs)) { while ($user = Database::fetch_array($rs)) {

@ -41,6 +41,8 @@ require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php'; require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
require_once api_get_path(LIBRARY_PATH).'groupmanager.lib.php'; require_once api_get_path(LIBRARY_PATH).'groupmanager.lib.php';
global $_configuration;
//CHECK KEYS //CHECK KEYS
if (!isset ($_cid)) { if (!isset ($_cid)) {
header('location: '.api_get_path(WEB_PATH)); header('location: '.api_get_path(WEB_PATH));
@ -91,20 +93,34 @@ if (api_is_allowed_to_edit(null, true)) {
$data = array(); $data = array();
$a_users = array(); $a_users = array();
if ($_configuration['multiple_access_urls']) {
$current_access_url_id = api_get_current_access_url_id();
}
// users subscribed to the course through a session // users subscribed to the course through a session
if (api_get_setting('use_session_mode') == 'true') { if (api_get_setting('use_session_mode') == 'true') {
$session_id = intval($_SESSION['id_session']); $session_id = intval($_SESSION['id_session']);
$table_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $table_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sql_query = "SELECT DISTINCT user.user_id, ".($is_western_name_order ? "user.firstname, user.lastname" : "user.lastname, user.firstname").", user.email, user.official_code $sql_query = "SELECT DISTINCT user.user_id, ".($is_western_name_order ? "user.firstname, user.lastname" : "user.lastname, user.firstname").", user.email, user.official_code
FROM $table_session_course_user as session_course_user, $table_users as user FROM $table_session_course_user as session_course_user, $table_users as user ";
WHERE `course_code` = '$currentCourseID' AND session_course_user.id_user = user.user_id "; if ($_configuration['multiple_access_urls']) {
$sql_query .= ' , '.Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER).' au ';
}
$sql_query .="WHERE course_code = '$currentCourseID' AND session_course_user.id_user = user.user_id ";
if ($session_id != 0) { if ($session_id != 0) {
$sql_query .= ' AND id_session = '.$session_id; $sql_query .= ' AND id_session = '.$session_id;
} }
if ($_configuration['multiple_access_urls']) {
$sql_query .= " AND user.user_id = au.user_id AND access_url_id = $current_access_url_id ";
}
$sql_query .= $sort_by_first_name ? ' ORDER BY user.firstname, user.lastname' : ' ORDER BY user.lastname, user.firstname'; $sql_query .= $sort_by_first_name ? ' ORDER BY user.firstname, user.lastname' : ' ORDER BY user.lastname, user.firstname';
$rs = Database::query($sql_query); $rs = Database::query($sql_query);
while ($user = Database:: fetch_array($rs, 'ASSOC')) { while ($user = Database:: fetch_array($rs, 'ASSOC')) {
$data[] = $user; $data[] = $user;
//$user_infos = Database :: get_user_info_from_id($user['user_id']); //$user_infos = Database :: get_user_info_from_id($user['user_id']);
@ -116,7 +132,17 @@ if (api_is_allowed_to_edit(null, true)) {
// users directly subscribed to the course // users directly subscribed to the course
$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$sql_query = "SELECT DISTINCT user.user_id, ".($is_western_name_order ? "user.firstname, user.lastname" : "user.lastname, user.firstname").", user.email, user.official_code $sql_query = "SELECT DISTINCT user.user_id, ".($is_western_name_order ? "user.firstname, user.lastname" : "user.lastname, user.firstname").", user.email, user.official_code
FROM $table_course_user as course_user, $table_users as user WHERE `course_code` = '$currentCourseID' AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_user.user_id = user.user_id ".($sort_by_first_name ? "ORDER BY user.firstname, user.lastname" : "ORDER BY user.lastname, user.firstname"); FROM $table_course_user as course_user, $table_users as user";
if ($_configuration['multiple_access_urls']) {
$sql_query .= ' , '.Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER).' au ';
}
$sql_query .= "WHERE course_code = '$currentCourseID' AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_user.user_id = user.user_id ";
if ($_configuration['multiple_access_urls']) {
$sql_query .= " AND user.user_id = au.user_id AND access_url_id = $current_access_url_id ";
}
$sql_query .= ($sort_by_first_name ? "ORDER BY user.firstname, user.lastname" : "ORDER BY user.lastname, user.firstname");
$rs = Database::query($sql_query); $rs = Database::query($sql_query);
while ($user = Database::fetch_array($rs, 'ASSOC')) { while ($user = Database::fetch_array($rs, 'ASSOC')) {
$data[] = $user; $data[] = $user;

Loading…
Cancel
Save