1.9.x
Yannick Warnier 11 years ago
commit 00fa8c8bf4
  1. 11
      main/inc/lib/course.lib.php
  2. 32
      main/inc/lib/course_category.lib.php
  3. 2
      main/install/configuration.dist.php

@ -4475,6 +4475,7 @@ class CourseManager
*/ */
public static function countAvailableCourses($accessUrlId = null) public static function countAvailableCourses($accessUrlId = null)
{ {
global $_configuration;
$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE); $tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
$tableCourseRelAccessUrl = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE); $tableCourseRelAccessUrl = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$specialCourseList = self::get_special_course_list(); $specialCourseList = self::get_special_course_list();
@ -4483,9 +4484,15 @@ class CourseManager
if (!empty($specialCourseList)) { if (!empty($specialCourseList)) {
$withoutSpecialCourses = ' AND c.code NOT IN ("'.implode('","',$specialCourseList).'")'; $withoutSpecialCourses = ' AND c.code NOT IN ("'.implode('","',$specialCourseList).'")';
} }
if (isset($_configuration['course_catalog_hide_private'])) {
if ($_configuration['course_catalog_hide_private'] == true) {
$courseInfo = api_get_course_info();
$courseVisibility = $courseInfo['visibility'];
$visibilityCondition = ' AND c.visibility <> 1';
}
}
if (!empty($accessUrlId) && $accessUrlId == intval($accessUrlId)) { if (!empty($accessUrlId) && $accessUrlId == intval($accessUrlId)) {
$sql = "SELECT count(id) FROM $tableCourse c, $tableCourseRelAccessUrl u WHERE c.code = u.course_code AND u.access_url_id = $accessUrlId AND c.visibility != 0 AND c.visibility != 4 $withoutSpecialCourses"; $sql = "SELECT count(id) FROM $tableCourse c, $tableCourseRelAccessUrl u WHERE c.code = u.course_code AND u.access_url_id = $accessUrlId AND c.visibility != 0 AND c.visibility != 4 $withoutSpecialCourses $visibilityCondition";
} }
$res = Database::query($sql); $res = Database::query($sql);
$row = Database::fetch_row($res); $row = Database::fetch_row($res);

@ -486,6 +486,7 @@ function browseCourseCategories()
*/ */
function countCoursesInCategory($category_code="") function countCoursesInCategory($category_code="")
{ {
global $_configuration;
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$TABLE_COURSE_FIELD = Database :: get_main_table(TABLE_MAIN_COURSE_FIELD); $TABLE_COURSE_FIELD = Database :: get_main_table(TABLE_MAIN_COURSE_FIELD);
$TABLE_COURSE_FIELD_VALUE = Database :: get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES); $TABLE_COURSE_FIELD_VALUE = Database :: get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES);
@ -509,8 +510,15 @@ function countCoursesInCategory($category_code="")
$without_special_courses = ' AND course.code NOT IN (' . implode(',', $special_course_list) . ')'; $without_special_courses = ' AND course.code NOT IN (' . implode(',', $special_course_list) . ')';
} }
if (isset($_configuration['course_catalog_hide_private'])) {
if ($_configuration['course_catalog_hide_private'] == true) {
$courseInfo = api_get_course_info();
$courseVisibility = $courseInfo['visibility'];
$visibilityCondition = ' AND course.visibility <> 1';
}
}
$sql = "SELECT * FROM $tbl_course $sql = "SELECT * FROM $tbl_course
WHERE visibility != '0' AND visibility != '4' AND category_code" . "='" . $category_code . "'" . $without_special_courses; WHERE visibility != '0' AND visibility != '4' AND category_code" . "='" . $category_code . "'" . $without_special_courses. $visibilityCondition;
// Showing only the courses of the current portal access_url_id. // Showing only the courses of the current portal access_url_id.
if (api_is_multiple_url_enabled()) { if (api_is_multiple_url_enabled()) {
@ -520,7 +528,7 @@ function countCoursesInCategory($category_code="")
$sql = "SELECT * FROM $tbl_course as course $sql = "SELECT * FROM $tbl_course as course
INNER JOIN $tbl_url_rel_course as url_rel_course INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.course_code=course.code) ON (url_rel_course.course_code=course.code)
WHERE access_url_id = $url_access_id AND course.visibility != '0' AND course.visibility != '4' AND category_code" . "='" . $category_code . "'" . $without_special_courses; WHERE access_url_id = $url_access_id AND course.visibility != '0' AND course.visibility != '4' AND category_code" . "='" . $category_code . "'" . $without_special_courses. $visibilityCondition;
} }
} }
return Database::num_rows(Database::query($sql)); return Database::num_rows(Database::query($sql));
@ -533,6 +541,7 @@ function countCoursesInCategory($category_code="")
*/ */
function browseCoursesInCategory($category_code, $random_value = null) function browseCoursesInCategory($category_code, $random_value = null)
{ {
global $_configuration;
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$TABLE_COURSE_FIELD = Database::get_main_table(TABLE_MAIN_COURSE_FIELD); $TABLE_COURSE_FIELD = Database::get_main_table(TABLE_MAIN_COURSE_FIELD);
$TABLE_COURSE_FIELD_VALUE = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES); $TABLE_COURSE_FIELD_VALUE = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES);
@ -555,7 +564,14 @@ function browseCoursesInCategory($category_code, $random_value = null)
if (!empty($special_course_list)) { if (!empty($special_course_list)) {
$without_special_courses = ' AND course.code NOT IN (' . implode(',', $special_course_list) . ')'; $without_special_courses = ' AND course.code NOT IN (' . implode(',', $special_course_list) . ')';
} }
if (isset($_configuration['course_catalog_hide_private'])) {
if ($_configuration['course_catalog_hide_private'] == true) {
$courseInfo = api_get_course_info();
$courseVisibility = $courseInfo['visibility'];
$visibilityCondition = ' AND course.visibility <> 1';
}
}
if (!empty($random_value)) { if (!empty($random_value)) {
$random_value = intval($random_value); $random_value = intval($random_value);
@ -578,11 +594,11 @@ function browseCoursesInCategory($category_code, $random_value = null)
ON (url_rel_course.course_code=course.code) ON (url_rel_course.course_code=course.code)
WHERE access_url_id = $url_access_id AND WHERE access_url_id = $url_access_id AND
RAND()*$num_records< $random_value RAND()*$num_records< $random_value
$without_special_courses $without_special_courses $visibilityCondition
ORDER BY RAND() LIMIT 0, $random_value"; ORDER BY RAND() LIMIT 0, $random_value";
} else { } else {
$sql = "SELECT id FROM $tbl_course course $sql = "SELECT id FROM $tbl_course course
WHERE RAND()*$num_records< $random_value $without_special_courses WHERE RAND()*$num_records< $random_value $without_special_courses $visibilityCondition
ORDER BY RAND() LIMIT 0, $random_value"; ORDER BY RAND() LIMIT 0, $random_value";
} }
@ -599,12 +615,12 @@ function browseCoursesInCategory($category_code, $random_value = null)
} else { } else {
$category_code = Database::escape_string($category_code); $category_code = Database::escape_string($category_code);
if (empty($category_code) || $category_code == "ALL") { if (empty($category_code) || $category_code == "ALL") {
$sql = "SELECT * FROM $tbl_course WHERE 1=1 $without_special_courses ORDER BY title "; $sql = "SELECT * FROM $tbl_course WHERE 1=1 $without_special_courses $visibilityCondition ORDER BY title ";
} else { } else {
if ($category_code == 'NONE') { if ($category_code == 'NONE') {
$category_code = ''; $category_code = '';
} }
$sql = "SELECT * FROM $tbl_course WHERE category_code='$category_code' $without_special_courses ORDER BY title "; $sql = "SELECT * FROM $tbl_course WHERE category_code='$category_code' $without_special_courses $visibilityCondition ORDER BY title ";
} }
//showing only the courses of the current Chamilo access_url_id //showing only the courses of the current Chamilo access_url_id
@ -614,12 +630,12 @@ function browseCoursesInCategory($category_code, $random_value = null)
if ($category_code != "ALL") { if ($category_code != "ALL") {
$sql = "SELECT * FROM $tbl_course as course INNER JOIN $tbl_url_rel_course as url_rel_course $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) 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 $visibilityCondition
ORDER BY title"; ORDER BY title";
} else{ } else{
$sql = "SELECT * FROM $tbl_course as course INNER JOIN $tbl_url_rel_course as url_rel_course $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) ON (url_rel_course.course_code=course.code)
WHERE access_url_id = $url_access_id $without_special_courses WHERE access_url_id = $url_access_id $without_special_courses $visibilityCondition
ORDER BY title"; ORDER BY title";
} }

@ -236,3 +236,5 @@ $_configuration['system_stable'] = NEW_VERSION_STABLE;
//$_configuration['show_official_code_exercise_result_list'] = false; //$_configuration['show_official_code_exercise_result_list'] = false;
// One connection per user // One connection per user
//$_configuration['prevent_multiple_simultaneous_login'] = false; //$_configuration['prevent_multiple_simultaneous_login'] = false;
// Hide private courses from course catalog
//$_configuration['course_catalog_hide_private'] = false;

Loading…
Cancel
Save