📄 course.lib.php
字号:
$virtual_courses_exist = false; } //now determine course code and name if ($user_is_registered_in_real_course && $virtual_courses_exist) { $course_info["name"] = CourseManager :: create_combined_name($user_is_registered_in_real_course, $real_course_name, $user_subscribed_virtual_course_list); $course_info['official_code'] = CourseManager :: create_combined_code($user_is_registered_in_real_course, $real_course_visual_code, $user_subscribed_virtual_course_list); } else if ($user_is_registered_in_real_course) { //course name remains real course name $course_info["name"] = $real_course_name; $course_info['official_code'] = $real_course_visual_code; } else if ($virtual_courses_exist) { $course_info["name"] = CourseManager :: create_combined_name($user_is_registered_in_real_course, $real_course_name, $user_subscribed_virtual_course_list); $course_info['official_code'] = CourseManager :: create_combined_code($user_is_registered_in_real_course, $real_course_visual_code, $user_subscribed_virtual_course_list); } else { //course name remains real course name $course_info["name"] = $real_course_name; $course_info['official_code'] = $real_course_visual_code; } $return_result["title"] = $course_info["name"]; $return_result["code"] = $course_info['official_code']; return $return_result; } /** * Create a course title based on all real and virtual courses the user is registered in. * @param boolean $user_is_registered_in_real_course * @param string $real_course_name, the title of the real course * @param array $virtual_course_list, the list of virtual courses */ function create_combined_name($user_is_registered_in_real_course, $real_course_name, $virtual_course_list) { if ($user_is_registered_in_real_course || count($virtual_course_list) > 1) { $complete_course_name_before = get_lang("CombinedCourse")." "; //from course_home lang file } if ($user_is_registered_in_real_course) { //add real name to result $complete_course_name[] = $real_course_name; } //add course titles of all virtual courses to the list foreach ($virtual_course_list as $current_course) { $complete_course_name[] = $current_course["title"]; } $complete_course_name = $complete_course_name_before.implode(' & ', $complete_course_name); return $complete_course_name; } /** * Create a course code based on all real and virtual courses the user is registered in. */ function create_combined_code($user_is_registered_in_real_course, $real_course_code, $virtual_course_list) { $complete_course_code .= ""; if ($user_is_registered_in_real_course) { //add real name to result $complete_course_code[] = $real_course_code; } //add course titles of all virtual courses to the list foreach ($virtual_course_list as $current_course) { $complete_course_code[] = $current_course["visual_code"]; } $complete_course_code = implode(' & ', $complete_course_code); return $complete_course_code; } /** * Return course info array of virtual course * * Note this is different from getting information about a real course! * * @param $real_course_code, the id of the real course which the virtual course is linked to */ function get_virtual_course_info($real_course_code) { $table = Database :: get_main_table(TABLE_MAIN_COURSE); $sql_query = "SELECT * FROM $table WHERE `target_course_code` = '$real_course_code'"; $sql_result = api_sql_query($sql_query, __FILE__, __LINE__); $result = array (); while ($virtual_course = Database::fetch_array($sql_result)) { $result[] = $virtual_course; } return $result; } /** * @param string $system_code, the system code of the course * @return true if the course is a virtual course, false otherwise */ function is_virtual_course_from_system_code($system_code) { $table = Database :: get_main_table(TABLE_MAIN_COURSE); $sql_query = "SELECT * FROM $table WHERE `code` = '$system_code'"; $sql_result = api_sql_query($sql_query, __FILE__, __LINE__); $result = Database::fetch_array($sql_result); $target_number = $result["target_course_code"]; if ($target_number == NULL) { return false; //this is not a virtual course } else { return true; //this is a virtual course } } /** * What's annoying is that you can't overload functions in PHP. * @return true if the course is a virtual course, false otherwise */ function is_virtual_course_from_visual_code($visual_code) { $table = Database :: get_main_table(TABLE_MAIN_COURSE); $sql_query = "SELECT * FROM $table WHERE `visual_code` = '$visual_code'"; $sql_result = api_sql_query($sql_query, __FILE__, __LINE__); $result = Database::fetch_array($sql_result); $target_number = $result["target_course_code"]; if ($target_number == NULL) { return false; //this is not a virtual course } else { return true; //this is a virtual course } } /** * @return true if the real course has virtual courses that the user is subscribed to, false otherwise */ function has_virtual_courses_from_code($real_course_code, $user_id) { $user_subscribed_virtual_course_list = CourseManager :: get_list_of_virtual_courses_for_specific_user_and_real_course($user_id, $real_course_code); $number_of_virtual_courses = count($user_subscribed_virtual_course_list); if (count($user_subscribed_virtual_course_list) > 0) { return true; } else { return false; } } /** * Return an array of arrays, listing course info of all virtual course * linked to the real course ID $real_course_code * * @param $real_course_code, the id of the real course which the virtual courses are linked to */ function get_virtual_courses_linked_to_real_course($real_course_code) { $table = Database :: get_main_table(TABLE_MAIN_COURSE); $sql_query = "SELECT * FROM $table WHERE `target_course_code` = '$real_course_code'"; $sql_result = api_sql_query($sql_query, __FILE__, __LINE__); $result_array = array (); while ($result = Database::fetch_array($sql_result)) { $result_array[] = $result; } return $result_array; } /** * This function returns the course code of the real course * to which a virtual course is linked. * * @param the course code of the virtual course * @return the course code of the real course */ function get_target_of_linked_course($virtual_course_code) { $course_table = Database :: get_main_table(TABLE_MAIN_COURSE); //get info about the virtual course $sql_query = "SELECT * FROM $course_table WHERE `code` = '$virtual_course_code'"; $sql_result = api_sql_query($sql_query, __FILE__, __LINE__); $result = Database::fetch_array($sql_result); $target_course_code = $result["target_course_code"]; return $target_course_code; } /* ============================================================================== USER FUNCTIONS ============================================================================== */ /** * Return course info array of virtual course * * @param $user_id, the id (int) of the user * @param $course_info, array with info about the course (comes from course table) * * @return true if the user is registered in the course, false otherwise */ function is_user_subscribed_in_course($user_id, $course_code, $in_a_session=false) { $user_id = intval($user_id); $course_code = addslashes($course_code); $table = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $sql_query = "SELECT * FROM $table WHERE `user_id` = '$user_id' AND `course_code` = '$course_code'"; $sql_result = api_sql_query($sql_query, __FILE__, __LINE__); $result = Database::fetch_array($sql_result); if (!isset ($result) || empty ($result)) { if($in_a_session) { $sql = 'SELECT 1 FROM '.Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER).' WHERE id_user = '.$user_id.' AND course_code="'.$course_code.'"'; $rs = api_sql_query($sql, __FILE__, __LINE__); if(Database::num_rows($rs)>0) { return true; } else{ $sql = 'SELECT 1 FROM '.Database :: get_main_table(TABLE_MAIN_SESSION_COURSE).' WHERE id_coach = '.$user_id.' AND course_code="'.$course_code.'"'; $rs = api_sql_query($sql, __FILE__, __LINE__); if(Database::num_rows($rs)>0) { return true; } } } else return false; //user is not registered in course } else { return true; //user is registered in course } } /** * Is the user a teacher in the given course? * * @param $user_id, the id (int) of the user * @param $course_code, the course code * * @return true if the user is a teacher in the course, false otherwise */ function is_course_teacher($user_id,$course_code) { $tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); $sql_query='SELECT status FROM '.$tbl_course_user.' WHERE course_code="'.$course_code.'" and user_id="'.$user_id.'"'; $sql_result = api_sql_query($sql_query, __FILE__, __LINE__); if(Database::num_rows($sql_result)>0) { $status=Database::result($sql_result,0,'status'); if($status==1) return true; else return false; } return false; } /** * Is the user subscribed in the real course or linked courses? * * @param $user_id, the id (int) of the user * @param $course_info, array with info about the course (comes from course table, see database lib) * * @return true if the user is registered in the real course or linked courses, false otherwise */ function is_user_subscribed_in_real_or_linked_course($user_id, $course_code, $session_id='') { if($session_id==''){ $course_table = Database :: get_main_table(TABLE_MAIN_COURSE); $course_user_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $sql_query = " SELECT * FROM $course_table course LEFT JOIN $course_user_table course_user ON course.`code` = course_user.`course_code` WHERE course_user.`user_id` = '$user_id' AND ( course.`code` = '$course_code' OR `target_course_code` = '$course_code') "; $sql_result = api_sql_query($sql_query, __FILE__, __LINE__); $result = Database::fetch_array($sql_result); if (!isset ($result) || empty ($result)) { return false; //user is not registered in course } else { return true; //user is registered in course } } else { // is he subscribed to the course of the session ? // Database Table Definitions $tbl_sessions = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_sessions_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_course_user= Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); //users $sql = "SELECT id_user FROM $tbl_session_course_user WHERE id_session='".$_SESSION['id_session']."' AND id_user='$user_id'"; $result = api_sql_query($sql,__FILE__,__LINE__); if(Database::num_rows($result)) return true; // is it a course coach ? $sql = "SELECT id_coach FROM $tbl_sessions_course AS session_course WHERE id_session='".$_SESSION['id_session']."' AND id_coach = '$user_id' AND course_code='$course_code'"; $result = api_sql_query($sql,__FILE__,__LINE__); if(Database::num_rows($result)) return true; // is it a session coach ? $sql = "SELECT id_coach
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -