diff --git a/main/inc/lib/course_category.lib.php b/main/inc/lib/course_category.lib.php index b29e798816..283f0c6ad2 100644 --- a/main/inc/lib/course_category.lib.php +++ b/main/inc/lib/course_category.lib.php @@ -437,7 +437,21 @@ function browseCourseCategories() $whereCondition ORDER BY tree_pos ASC"; $result = Database::query($sql); + $url_access_id = 1; + if (api_is_multiple_url_enabled()) { + $url_access_id = api_get_current_access_url_id(); + } + $countCourses = CourseManager :: count_courses($url_access_id); $categories = array(); + $categories[0][0] = array( + 'id' => 0, + 'name' => get_lang('DisplayAll'), + 'code' => 'ALL', + 'parent_id' => null, + 'tree_pos' => 0, + 'count_courses' => $countCourses + + ); while ($row = Database::fetch_array($result)) { $count_courses = countCoursesInCategory($row['code']); $row['count_courses'] = $count_courses; @@ -447,7 +461,9 @@ function browseCourseCategories() $categories[$row['parent_id']][$row['tree_pos']] = $row; } } + $count_courses = countCoursesInCategory(); + $categories[0][count($categories[0])+1] = array( 'id' =>0, 'name' => get_lang('None'), @@ -459,6 +475,7 @@ function browseCourseCategories() 'auth_cat_child' => true, 'count_courses' => $count_courses ); + return $categories; } @@ -466,7 +483,7 @@ function browseCourseCategories() * @param string $category_code * @return int */ -function countCoursesInCategory($category_code='') +function countCoursesInCategory($category_code="") { $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); $TABLE_COURSE_FIELD = Database :: get_main_table(TABLE_MAIN_COURSE_FIELD); @@ -502,8 +519,7 @@ function countCoursesInCategory($category_code='') $sql = "SELECT * FROM $tbl_course as course INNER JOIN $tbl_url_rel_course as url_rel_course ON (url_rel_course.course_code=course.code) - WHERE - access_url_id = $url_access_id AND category_code" . "='" . $category_code . "'" . $without_special_courses; + WHERE access_url_id = $url_access_id AND category_code" . "='" . $category_code . "'" . $without_special_courses; } } return Database::num_rows(Database::query($sql)); @@ -581,7 +597,7 @@ function browseCoursesInCategory($category_code, $random_value = null) $sql = "SELECT * FROM $tbl_course WHERE id IN($id_in)"; } else { $category_code = Database::escape_string($category_code); - if (empty($category_code)) { + if (empty($category_code) || $category_code == "ALL") { $sql = "SELECT * FROM $tbl_course WHERE 1=1 $without_special_courses ORDER BY title "; } else { if ($category_code == 'NONE') { @@ -594,10 +610,18 @@ function browseCoursesInCategory($category_code, $random_value = null) if (api_is_multiple_url_enabled()) { $url_access_id = api_get_current_access_url_id(); $tbl_url_rel_course = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE); - $sql = "SELECT * FROM $tbl_course as course INNER JOIN $tbl_url_rel_course as url_rel_course + if ($category_code != "ALL") { + $sql = "SELECT * FROM $tbl_course as course INNER JOIN $tbl_url_rel_course as url_rel_course ON (url_rel_course.course_code=course.code) WHERE access_url_id = $url_access_id AND category_code='$category_code' $without_special_courses + ORDER BY title"; + } else{ + $sql = "SELECT * FROM $tbl_course as course INNER JOIN $tbl_url_rel_course as url_rel_course + ON (url_rel_course.course_code=course.code) + WHERE access_url_id = $url_access_id $without_special_courses ORDER BY title"; + } + } } @@ -748,4 +772,4 @@ function searchCategoryById($list) /** CREATE TABLE IF NOT EXISTS access_url_rel_course_category (access_url_id int unsigned NOT NULL, course_category_id int unsigned NOT NULL, PRIMARY KEY (access_url_id, course_category_id)); - */ \ No newline at end of file + */