From 9dfb0abe237b67496160aa780577d587d9fdfeeb Mon Sep 17 00:00:00 2001 From: Cesar Perales Date: Thu, 28 Nov 2013 20:34:11 -0500 Subject: [PATCH] filter courses by session, result function of filtered courses, refs #BT7011 --- main/admin/course_list.php | 53 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/main/admin/course_list.php b/main/admin/course_list.php index 5734735d87..88e8e21257 100644 --- a/main/admin/course_list.php +++ b/main/admin/course_list.php @@ -115,7 +115,50 @@ function get_course_data($from, $number_of_items, $column, $direction) { } return $courses; } +/** + * Get course data to display filtered by session name + */ +function get_course_data_by_session($from, $number_of_items, $column, $direction) { + $course_table = Database::get_main_table(TABLE_MAIN_COURSE); + $session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); + $session = Database::get_main_table(TABLE_MAIN_SESSION); + + $sql = "SELECT c.code AS col0, + c.title AS col1, + c.code AS col2, + c.course_language AS col3, + c.category_code AS col4, + c.subscribe AS col5, + c.unsubscribe AS col6, + c.code AS col7, + c.visibility AS col8, + c.directory as col9, + c.visual_code + FROM $course_table c + INNER JOIN $session_rel_course r ON c.code = r.course_code + INNER JOIN $session s ON r.id_session = s.id + "; + if (isset($_GET['session'])) { + $session = Database::escape_string(trim($_GET['session'])); + $sql.= " WHERE s.name LIKE '%" . $session . "%'"; + } + $sql .= " ORDER BY col$column $direction "; + $sql .= " LIMIT $from,$number_of_items"; + + $res = Database::query($sql); + $courses = array (); + while ($course = Database::fetch_array($res)) { + // Place colour icons in front of courses. + $show_visual_code = $course['visual_code'] != $course[2] ? Display::label($course['visual_code'], 'info') : null; + $course[1] = get_course_visibility_icon($course[8]).''.$course[1].' '.$show_visual_code; + $course[5] = $course[5] == SUBSCRIBE_ALLOWED ? get_lang('Yes') : get_lang('No'); + $course[6] = $course[6] == UNSUBSCRIBE_ALLOWED ? get_lang('Yes') : get_lang('No'); + $course_rem = array($course[0], $course[1], $course[2], $course[3], $course[4], $course[5], $course[6], $course[7]); + $courses[] = $course_rem; + } + return $courses; +} /** * Filter to display the edit-buttons */ @@ -261,8 +304,14 @@ if (isset ($_GET['search']) && $_GET['search'] == 'advanced') { $actions .= ''; $actions .= $form->return_form(); - // Create a sortable table with the course data - $table = new SortableTable('courses', 'get_number_of_courses', 'get_course_data', 2); + if (isset ($_GET['search']) && $_GET['search'] == 'session') { + // Create a sortable table with the course data filtered by session + $table = new SortableTable('courses', 'get_number_of_courses', 'get_course_data_by_session', 2); + } else { + // Create a sortable table with the course data + $table = new SortableTable('courses', 'get_number_of_courses', 'get_course_data', 2); + } + $parameters=array(); if (isset ($_GET['keyword'])) {