diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index a6643c44d6..43c1b88b51 100755 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -669,7 +669,7 @@ class CourseManager * @return boolean true if subscription succeeds, boolean false otherwise. * @assert ('', '') === false */ - public static function add_user_to_course($user_id, $course_code, $status = STUDENT) + public static function add_user_to_course($user_id, $course_code, $status = STUDENT, $userCourseCategoryId = 0) { $debug = false; $user_table = Database::get_main_table(TABLE_MAIN_USER); @@ -723,7 +723,8 @@ class CourseManager 'c_id' => $courseId, 'user_id' => $user_id, 'status' => $status, - 'sort' => $max_sort + 1 + 'sort' => $max_sort + 1, + 'user_course_cat' => $userCourseCategoryId ]; $insertId = Database::insert($course_user_table, $params); @@ -3743,8 +3744,10 @@ class CourseManager while ($row = Database::fetch_array($result)) { // We simply display the title of the category. $params = array( - 'icon' => Display::return_icon('folder_yellow.png', api_htmlentities($row['title']), array(), - ICON_SIZE_LARGE), + 'icon' => Display::return_icon( + 'folder_yellow.png', + api_htmlentities($row['title']), array(), ICON_SIZE_LARGE + ), 'title' => $row['title'], 'class' => 'table_user_course_category' ); @@ -3759,6 +3762,7 @@ class CourseManager // Step 2: We display the course without a user category. $courseInCategory = self:: display_courses_in_category(0, $load_dirs); + $html .= $courseInCategory['html']; $courseCount += $courseInCategory['course_count']; @@ -3809,7 +3813,7 @@ class CourseManager course.id = course_rel_user.c_id AND url.c_id = course.id AND course_rel_user.user_id = '" . $user_id . "' AND - course_rel_user.user_course_cat='" . $user_category_id . "' + course_rel_user.user_course_cat = '" . $user_category_id . "' $without_special_courses "; // If multiple URL access mode is enabled, only fetch courses diff --git a/main/inc/lib/document.lib.php b/main/inc/lib/document.lib.php index f53792b7ca..c6e13b40e2 100755 --- a/main/inc/lib/document.lib.php +++ b/main/inc/lib/document.lib.php @@ -3184,7 +3184,7 @@ class DocumentManager $overwrite_url = null, $showInvisibleFiles = false, $showOnlyFolders = false, - $folderId = 0 + $folderId = false ) { if (empty($course_info['real_id']) || empty($course_info['code']) || !is_array($course_info)) { return ''; @@ -3231,7 +3231,7 @@ class DocumentManager $tbl_doc = Database::get_course_table(TABLE_DOCUMENT); $tbl_item_prop = Database::get_course_table(TABLE_ITEM_PROPERTY); - $condition_session = " AND (session_id = '$session_id' OR session_id = '0' )"; + $condition_session = " AND (last.session_id = '$session_id' OR last.session_id = '0' )"; $add_folder_filter = null; if (!empty($filter_by_folder)) { @@ -3261,7 +3261,8 @@ class DocumentManager } } - if ($folderId !== 0) { + $parentData = []; + if ($folderId !== false) { $parentData = self::get_document_data_by_id($folderId, $course_info['code']); if (!empty($parentData)) { $cleanedPath = $parentData['path']; @@ -3285,7 +3286,6 @@ class DocumentManager } $levelCondition = null; - if ($folderId === false) { $levelCondition = " AND docs.path NOT LIKE'/%/%'"; } @@ -3334,6 +3334,7 @@ class DocumentManager // If you want to debug it, I advise you to do "echo" on the eval statements. $newResources = array(); + if (!empty($resources) && $user_in_course) { foreach ($resources as $resource) { $is_visible = self::is_visible_by_id( @@ -3351,16 +3352,20 @@ class DocumentManager } $label = get_lang('Documents'); + + $documents = []; if ($folderId === false) { $documents[$label] = array( 'id' => 0, 'files' => $newResources ); } else { - $documents[$parentData['title']] = array( - 'id' => intval($folderId), - 'files' => $newResources - ); + if (!empty($parentData)) { + $documents[$parentData['title']] = array( + 'id' => intval($folderId), + 'files' => $newResources + ); + } } $write_result = self::write_resources_tree( @@ -3618,7 +3623,6 @@ class DocumentManager } $return .= ''; - $return .= ' '; $return .= ''.$title.''; $return .= ''; @@ -5768,15 +5772,16 @@ class DocumentManager public static function create_dir_form($dirId) { global $document_id; - $form = new FormValidator('create_dir_form', 'post', api_get_self().'?'.api_get_cidreq(), '', null, false); + $form = new FormValidator('create_dir_form', 'post', api_get_self().'?'.api_get_cidreq()); $form->addElement('hidden', 'create_dir', 1); $form->addElement('hidden', 'dir_id', intval($document_id)); $form->addElement('hidden', 'id', intval($dirId)); - $form->addElement('header', '', get_lang('CreateDir')); - $form->addElement('text', 'dirname', get_lang('NewDir'), array('autofocus' => 'autofocus')); - $form->addButtonCreate(get_lang('CreateFolder'), 'submit'); - $new_folder_text = $form->returnForm(); - return $new_folder_text; + $form->addElement('header', get_lang('CreateDir')); + $form->addText('dirname', get_lang('NewDir'), array('autofocus' => 'autofocus')); + $form->addButtonCreate(get_lang('CreateFolder')); + + return $form->returnForm(); + } /** diff --git a/main/user/subscribe_user.php b/main/user/subscribe_user.php index 4cf2a30463..fc0e99b017 100755 --- a/main/user/subscribe_user.php +++ b/main/user/subscribe_user.php @@ -77,12 +77,20 @@ $list_not_register_user=''; if (isset($_REQUEST['register'])) { if ($type =='teacher') { if (!empty($current_session_id)) { - $result_simple_sub = SessionManager::set_coach_to_course_session($_REQUEST['user_id'], $current_session_id, $_course['sysCode']); + $result_simple_sub = SessionManager::set_coach_to_course_session( + $_REQUEST['user_id'], + $current_session_id, + $_course['code'] + ); } else { - $result_simple_sub = CourseManager :: subscribe_user($_REQUEST['user_id'], $_course['sysCode'], COURSEMANAGER); + $result_simple_sub = CourseManager:: subscribe_user( + $_REQUEST['user_id'], + $_course['code'], + COURSEMANAGER + ); } } else { - $result_simple_sub=CourseManager :: subscribe_user($_REQUEST['user_id'], $_course['sysCode']); + $result_simple_sub = CourseManager :: subscribe_user($_REQUEST['user_id'], $_course['code']); } $user_id_temp = $_SESSION['session_user_id']; @@ -106,7 +114,7 @@ if (isset($_REQUEST['register'])) { if (isset ($_POST['action'])) { switch ($_POST['action']) { - case 'subscribe' : + case 'subscribe': if (is_array($_POST['user'])) { foreach ($_POST['user'] as $index => $user_id) { $user_id=intval($user_id); @@ -118,12 +126,12 @@ if (isset ($_POST['action'])) { $_course['sysCode'] ); } else { - $is_suscribe[] = CourseManager::subscribe_user($user_id, $_course['sysCode'],COURSEMANAGER); + $is_suscribe[] = CourseManager::subscribe_user($user_id, $_course['code'],COURSEMANAGER); } } else { - $is_suscribe[]=CourseManager::subscribe_user($user_id, $_course['sysCode']); + $is_suscribe[] = CourseManager::subscribe_user($user_id, $_course['code']); } - $is_suscribe_user_id[]=$user_id; + $is_suscribe_user_id[] = $user_id; } } @@ -132,8 +140,8 @@ if (isset ($_POST['action'])) { unset($_SESSION['session_user_id']); unset($_SESSION['session_user_name']); - $counter=0; - $is_suscribe_counter=count($is_suscribe_user_id); + $counter = 0; + $is_suscribe_counter = count($is_suscribe_user_id); $list_register_user=''; @@ -181,7 +189,12 @@ $is_western_name_order = api_is_western_name_order(); $sort_by_first_name = api_sort_by_first_name(); // Build table -$table = new SortableTable('subscribe_users', 'get_number_of_users', 'get_user_data', ($is_western_name_order xor $sort_by_first_name) ? 3 : 2); +$table = new SortableTable( + 'subscribe_users', + 'get_number_of_users', + 'get_user_data', + ($is_western_name_order xor $sort_by_first_name) ? 3 : 2 +); $parameters['keyword'] = $keyword; $parameters['type'] = $type; $table->set_additional_parameters($parameters); @@ -247,7 +260,7 @@ function get_number_of_users() u.status = 1 AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) "; - if ($_configuration['multiple_access_urls']) { + if (api_is_multiple_url_enabled()) { $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); @@ -257,7 +270,12 @@ function get_number_of_users() ON u.user_id = cu.user_id and cu.c_id = '".api_get_course_int_id()."' AND session_id ='".api_get_session_id()."' INNER JOIN $tbl_url_rel_user as url_rel_user ON (url_rel_user.user_id = u.user_id) - WHERE cu.user_id IS NULL AND access_url_id= $url_access_id AND u.status=1 AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) "; + WHERE + cu.user_id IS NULL AND + access_url_id= $url_access_id AND + u.status = 1 AND + (u.official_code <> 'ADMIN' OR u.official_code IS NULL) + "; } } } else { @@ -298,7 +316,7 @@ function get_number_of_users() u.status<>".DRH." AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) "; - if ($_configuration['multiple_access_urls']) { + if (api_is_multiple_url_enabled()) { $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); @@ -340,7 +358,7 @@ function get_number_of_users() $sql .= "WHERE cu.user_id IS NULL AND u.status<>".DRH." "; } - if (isset($_configuration['multiple_access_urls']) && $_configuration['multiple_access_urls']) { + if (api_is_multiple_url_enabled()) { $url_access_id = api_get_current_access_url_id(); if ($url_access_id !=-1) { @@ -534,7 +552,7 @@ function get_user_data($from, $number_of_items, $column, $direction) c_id ='".$courseId."' AND session_id ='".$session_id."' "; - if (isset($_configuration['multiple_access_urls']) && $_configuration['multiple_access_urls']) { + if (api_is_multiple_url_enabled()) { $sql .= " INNER JOIN $tbl_url_rel_user as url_rel_user ON (url_rel_user.user_id = u.user_id) "; } @@ -557,7 +575,7 @@ function get_user_data($from, $number_of_items, $column, $direction) (u.official_code <> 'ADMIN' OR u.official_code IS NULL) "; } - if (isset($_configuration['multiple_access_urls']) && $_configuration['multiple_access_urls']) { + if (api_is_multiple_url_enabled()) { $sql .= "AND access_url_id = $url_access_id"; } @@ -586,10 +604,8 @@ function get_user_data($from, $number_of_items, $column, $direction) //showing only the courses of the current Chamilo access_url_id - if (isset($_configuration['multiple_access_urls']) && $_configuration['multiple_access_urls']) { - + if (api_is_multiple_url_enabled()) { if ($url_access_id !=-1) { - $sql = "SELECT $select_fields FROM $user_table u LEFT JOIN $course_user_table cu diff --git a/main/user/user.php b/main/user/user.php index ed93d43bff..917ad3ebd6 100755 --- a/main/user/user.php +++ b/main/user/user.php @@ -384,14 +384,15 @@ if (api_is_allowed_to_edit(null, true)) { $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); - $sql = 'SELECT '.$tbl_user.'.user_id + $sql = 'SELECT user.user_id FROM '.$tbl_user.' user INNER JOIN '.$tbl_session_rel_user.' reluser ON user.user_id = reluser.user_id AND reluser.relation_type<>'.SESSION_RELATION_TYPE_RRHH.' INNER JOIN '.$tbl_session_rel_course.' rel_course - ON rel_course.session_id = reluser.id_session - WHERE user.user_id = "'.$user_id.'" - AND rel_course.c_id = "'.$courseId.'"'; + ON rel_course.session_id = reluser.session_id + WHERE + user.user_id = "'.$user_id.'" AND + rel_course.c_id = "'.$courseId.'"'; $result = Database::query($sql); $row = Database::fetch_array($result, 'ASSOC');