diff --git a/main/inc/lib/auth.lib.php b/main/inc/lib/auth.lib.php index 69248f6078..3f3b9d6722 100755 --- a/main/inc/lib/auth.lib.php +++ b/main/inc/lib/auth.lib.php @@ -430,24 +430,34 @@ class Auth $TABLE_COURSE_FIELD_VALUE = Database :: get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES); // get course list auto-register - $sql = "SELECT course_code FROM $TABLE_COURSE_FIELD_VALUE tcfv INNER JOIN $TABLE_COURSE_FIELD tcf ON " . - " tcfv.field_id = tcf.id WHERE tcf.field_variable = 'special_course' AND tcfv.field_value = 1 "; + $sql = "SELECT course_code FROM $TABLE_COURSE_FIELD_VALUE tcfv INNER JOIN $TABLE_COURSE_FIELD tcf ON tcfv.field_id = tcf.id + WHERE tcf.field_variable = 'special_course' AND tcfv.field_value = 1 "; $special_course_result = Database::query($sql); if (Database::num_rows($special_course_result)>0) { - $special_course_list = array(); - while ($result_row = Database::fetch_array($special_course_result)) { - $special_course_list[] = '"'.$result_row['course_code'].'"'; - } + $special_course_list = array(); + while ($result_row = Database::fetch_array($special_course_result)) { + $special_course_list[] = '"'.$result_row['course_code'].'"'; + } } + $without_special_courses = ''; 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 (!empty($random_value)) { $random_value = intval($random_value); $sql = "SELECT * FROM $tbl_course WHERE 1 $without_special_courses ORDER BY RAND() LIMIT $random_value"; + + if ($_configuration['multiple_access_urls']) { + $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 + ON (url_rel_course.course_code=course.code) + WHERE access_url_id = $url_access_id $without_special_courses ORDER BY RAND() LIMIT $random_value"; + } + /*SELECT * FROM $tbl_course, (SELECT CEIL(MAX($tbl_course.id) * RAND()) AS randId FROM $tbl_course) AS someRandId WHERE $tbl_course.id >= someRandId.randId LIMIT 10 */ @@ -455,18 +465,18 @@ class Auth $category_code = Database::escape_string($category_code); //$my_category = (empty($category) ? " IS NULL" : "='".$category."'"); $sql = "SELECT * FROM $tbl_course WHERE category_code='$category_code' $without_special_courses ORDER BY title, visual_code"; + + //showing only the courses of the current Chamilo access_url_id + if ($_configuration['multiple_access_urls']) { + $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 + 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, visual_code"; + } } - //showing only the courses of the current Dokeos access_url_id - if ($_configuration['multiple_access_urls']) { - $url_access_id = api_get_current_access_url_id(); - if ($url_access_id != -1) { - $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 - 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, visual_code"; - } - } + $result = Database::query($sql); $courses = array(); diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index 670b5ea94c..005bcccf68 100755 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -1709,11 +1709,12 @@ class CourseManager { * @param string $padding the indent param (you shouldn't indicate something here) */ public static function select_and_sort_categories($select_element, $category_selected_code = '', $parent_code = null , $padding = '') { - - $res = Database::query("SELECT code, name, auth_course_child, auth_cat_child + + $sql = "SELECT code, name, auth_course_child, auth_cat_child FROM ".Database::get_main_table(TABLE_MAIN_CATEGORY)." WHERE parent_id ".(is_null($parent_code) ? "IS NULL" : "='".Database::escape_string($parent_code)."'")." - ORDER BY code"); + ORDER BY code"; + $res = Database::query($sql); while ($cat = Database::fetch_array($res)) { $params = $cat['auth_course_child'] == 'TRUE' ? '' : 'disabled';