'; } } else { echo get_lang('UserHasNoCourse'); } } break; case 'search_category': require_once api_get_path(LIBRARY_PATH).'course_category.lib.php'; if (api_is_platform_admin() || api_is_allowed_to_create_course()) { $results = searchCategoryByKeyword($_REQUEST['q']); if (!empty($results)) { foreach ($results as &$item) { $item['id'] = $item['code']; $item['text'] = '('.$item['code'].') '.$item['name']; } echo json_encode($results); } else { echo json_encode(array()); } } break; case 'search_course': if (api_is_platform_admin()) { if (!empty($_GET['session_id']) && intval($_GET['session_id'])) { //if session is defined, lets find only courses of this session $courseList = SessionManager::get_course_list_by_session_id( $_GET['session_id'], $_GET['q'] ); } else { //if session is not defined lets search all courses STARTING with $_GET['q'] //TODO change this function to search not only courses STARTING with $_GET['q'] $courseList = CourseManager::get_courses_list( 0, //offset 0, //howMany 1, //$orderby = 1 'ASC', -1, //visibility $_GET['q'], null, //$urlId true //AlsoSearchCode ); } $results = array(); require_once api_get_path(LIBRARY_PATH).'course_category.lib.php'; if (!empty($courseList)) { foreach ($courseList as $courseInfo) { $title = $courseInfo['title']; if (!empty($courseInfo['category_code'])) { $parents = getParentsToString($courseInfo['category_code']); $title = $parents.$courseInfo['title']; } $results[] = array( 'id' => $courseInfo['id'], 'text' => $title ); } echo json_encode($results); } else { echo json_encode(array()); } } break; case 'search_course_by_session': if (api_is_platform_admin()) { $results = SessionManager::get_course_list_by_session_id($_GET['session_id'], $_GET['q']); $results2 = array(); if (!empty($results)) { foreach ($results as $item) { $item2 = array(); foreach ($item as $id => $internal) { if ($id == 'id') { $item2[$id] = $internal; } if ($id == 'title') { $item2['text'] = $internal; } } $results2[] = $item2; } echo json_encode($results2); } else { echo json_encode(array()); } } break; case 'search_course_by_session_all': if (api_is_platform_admin()) { if ($_GET['session_id'] == 'TODOS' || $_GET['session_id'] == 'T') { $_GET['session_id'] = '%'; } $results = SessionManager::get_course_list_by_session_id_like( $_GET['session_id'], $_GET['q'] ); $results2 = array(); if (!empty($results)) { foreach ($results as $item) { $item2 = array(); foreach ($item as $id => $internal) { if ($id == 'id') { $item2[$id] = $internal; } if ($id == 'title') { $item2['text'] = $internal; } } $results2[] = $item2; } echo json_encode($results2); } else { echo json_encode(array()); } } break; case 'search_user_by_course': if (api_is_platform_admin()) { $user = Database :: get_main_table(TABLE_MAIN_USER); $session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $course = api_get_course_info_by_id($_GET['course_id']); $sql = "SELECT u.user_id as id, u.username, u.lastname, u.firstname FROM $user u INNER JOIN $session_course_user r ON u.user_id = r.id_user WHERE id_session = %d AND course_code = '%s' AND (u.firstname LIKE '%s' OR u.username LIKE '%s' OR u.lastname LIKE '%s')"; $needle = '%' . $_GET['q'] . '%'; $sql_query = sprintf($sql, $_GET['session_id'], $course['code'], $needle, $needle, $needle); $result = Database::query($sql_query); while ($user = Database::fetch_assoc($result)) { $data[] = array('id' => $user['id'], 'text' => $user['username'] . ' (' . $user['firstname'] . ' ' . $user['lastname'] . ')'); } if (!empty($data)) { echo json_encode($data); } else { echo json_encode(array()); } } break; case 'search_exercise_by_course': if (api_is_platform_admin()) { $course = api_get_course_info_by_id($_GET['course_id']); require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php'; $session_id = (!empty($_GET['session_id'])) ? intval($_GET['session_id']) : 0 ; $exercises = get_all_exercises($course, $session_id, false, $_GET['q'], true, 3); foreach ($exercises as $exercise) { $data[] = array('id' => $exercise['id'], 'text' => html_entity_decode($exercise['title']) ); } if (!empty($data)) { $data[] = array('id' => 'T', 'text' => 'TODOS'); echo json_encode($data); } else { echo json_encode(array(array('id' => 'T', 'text' => 'TODOS'))); } } break; case 'search_survey_by_course': if (api_is_platform_admin()) { $survey = Database :: get_course_table(TABLE_SURVEY); $sql = "SELECT survey_id as id, title, anonymous FROM $survey WHERE c_id = %d AND session_id = %d AND title LIKE '%s'"; $sql_query = sprintf( $sql, intval($_GET['course_id']), intval($_GET['session_id']), '%' . Database::escape_string($_GET['q']).'%' ); $result = Database::query($sql_query); while ($survey = Database::fetch_assoc($result)) { $survey['title'] .= ($survey['anonymous'] == 1) ? ' (' . get_lang('Anonymous') . ')' : ''; $data[] = array( 'id' => $survey['id'], 'text' => strip_tags(html_entity_decode($survey['title'])) ); } if (!empty($data)) { echo json_encode($data); } else { echo json_encode(array()); } } break; case 'display_sessions_courses': $sessionId = intval($_GET['session']); $userTable = Database::get_main_table(TABLE_MAIN_USER); $coursesData = SessionManager::get_course_list_by_session_id($sessionId); $courses = array(); foreach ($coursesData as $courseId => $course) { $coachData = SessionManager::getCoachesByCourseSession($sessionId, $course['code']); $coachName = ''; if (!empty($coachData)) { $userResult = Database::select('lastname,firstname', $userTable, array( 'where' => array( 'user_id = ?' => $coachData[0] ) ), 'first'); $coachName = api_get_person_name($userResult['firstname'], $userResult['lastname']); } $courses[] = array( 'id' => $courseId, 'name' => $course['title'], 'coachName' => $coachName, ); } echo json_encode($courses); break; default: echo ''; } exit;