Fix bug when subscribing users see BT#4816

skala
Julio Montoya 13 years ago
parent ffeaadb749
commit cdbfd63fec
  1. 70
      main/user/subscribe_user.php

@ -379,7 +379,9 @@ function get_number_of_users() {
* Get the users to display on the current page.
*/
function get_user_data($from, $number_of_items, $column, $direction) {
global $_course, $_configuration;;
global $_course, $_configuration;
$url_access_id = api_get_current_access_url_id();
// Database table definitions
$user_table = Database::get_main_table(TABLE_MAIN_USER);
@ -387,6 +389,8 @@ function get_user_data($from, $number_of_items, $column, $direction) {
$tbl_session_rel_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$table_user_field_values = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES);
$tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
// adding teachers
$is_western_name_order = api_is_western_name_order();
@ -454,10 +458,8 @@ function get_user_data($from, $number_of_items, $column, $direction) {
}
// adding a teacher NOT trough a session on a portal with multiple URLs
if ($_configuration['multiple_access_urls']) {
$url_access_id = api_get_current_access_url_id();
if ($url_access_id !=-1) {
$tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
if ($_configuration['multiple_access_urls']) {
if ($url_access_id !=-1) {
$sql = "SELECT $select_fields
FROM $user_table u
LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'
@ -482,26 +484,34 @@ function get_user_data($from, $number_of_items, $column, $direction) {
// adding a student
if (!empty($_SESSION["id_session"])) {
$sql = "SELECT $select_fields
FROM $user_table u
LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".$_SESSION['_course']['id']."' AND id_session ='".$_SESSION["id_session"]."' ";
// applying the filter of the additional user profile fields
if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value'])){
$field_identification = explode('*',$_GET['subscribe_user_filter_value']);
$sql .= "
LEFT JOIN $table_user_field_values field_values
ON field_values.user_id = u.user_id
WHERE cu.id_user IS NULL AND u.status<>".DRH." AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL)
AND field_values.field_id = '".Database::escape_string($field_identification[0])."'
AND field_values.field_value = '".Database::escape_string($field_identification[1])."'";
} else {
$sql .= "WHERE cu.id_user IS NULL AND u.status<>".DRH." AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
}
FROM $user_table u
LEFT JOIN $tbl_session_rel_course_user cu ON u.user_id = cu.id_user AND course_code='".$_SESSION['_course']['id']."' AND id_session ='".$_SESSION["id_session"]."' ";
if (isset($_configuration['multiple_access_urls']) && $_configuration['multiple_access_urls']) {
$sql .= " INNER JOIN $tbl_url_rel_user as url_rel_user ON (url_rel_user.user_id = u.user_id) ";
}
// applying the filter of the additional user profile fields
if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value'])){
$field_identification = explode('*',$_GET['subscribe_user_filter_value']);
$sql .= "
LEFT JOIN $table_user_field_values field_values
ON field_values.user_id = u.user_id
WHERE cu.id_user IS NULL AND u.status<>".DRH." AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL)
AND field_values.field_id = '".Database::escape_string($field_identification[0])."'
AND field_values.field_value = '".Database::escape_string($field_identification[1])."'";
} else {
$sql .= "WHERE cu.id_user IS NULL AND u.status<>".DRH." AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
}
if (isset($_configuration['multiple_access_urls']) && $_configuration['multiple_access_urls']) {
$sql .= "AND access_url_id = $url_access_id";
}
} else {
$sql = "SELECT $select_fields
FROM $user_table u
LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'";
$sql = "SELECT $select_fields
FROM $user_table u
LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'";
// applying the filter of the additional user profile fields
if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value'])){
@ -515,14 +525,13 @@ function get_user_data($from, $number_of_items, $column, $direction) {
} else {
$sql .= "WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
}
//showing only the courses of the current Dokeos access_url_id
global $_configuration;
//showing only the courses of the current Chamilo access_url_id
if (isset($_configuration['multiple_access_urls']) && $_configuration['multiple_access_urls']) {
$url_access_id = api_get_current_access_url_id();
if ($url_access_id !=-1) {
$tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$sql = "SELECT $select_fields
FROM $user_table u
LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'
@ -542,8 +551,7 @@ function get_user_data($from, $number_of_items, $column, $direction) {
} else {
$sql .= "WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id ";
}
}
}
}
}
}

Loading…
Cancel
Save