From d31f38d7eca8cb90862793f7998d645ecee9fba5 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Wed, 9 Jan 2013 15:42:40 +0100 Subject: [PATCH 1/3] Course order - Minor imporvements adding break in order to stop the loop when searching for the course code see BT#5558 --- main/inc/lib/auth.lib.php | 32 +++++++++-------- main/inc/lib/course.lib.php | 68 ++++++++++++++++--------------------- 2 files changed, 47 insertions(+), 53 deletions(-) diff --git a/main/inc/lib/auth.lib.php b/main/inc/lib/auth.lib.php index 6325cc7a88..3207cefcdc 100644 --- a/main/inc/lib/auth.lib.php +++ b/main/inc/lib/auth.lib.php @@ -21,7 +21,7 @@ class Auth { * Constructor */ public function __construct() { - + } /** @@ -183,16 +183,18 @@ class Auth { } } - foreach ($user_courses as $key => $course) { + $target_course = array(); + foreach ($user_courses as $count => $course) { if ($course2move == $course['code']) { // source_course is the course where we clicked the up or down icon $source_course = $course; // target_course is the course before/after the source_course (depending on the up/down icon) if ($direction == 'up') { - $target_course = $user_courses[$key - 1]; + $target_course = $user_courses[$count - 1]; } else { - $target_course = $user_courses[$key + 1]; + $target_course = $user_courses[$count + 1]; } + break; } } @@ -444,7 +446,7 @@ class Auth { // 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 + $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); @@ -472,14 +474,14 @@ class Auth { $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 COUNT(*) FROM $tbl_course course INNER JOIN $tbl_url_rel_course as url_rel_course ON (url_rel_course.course_code=course.code) + $sql = "SELECT COUNT(*) FROM $tbl_course 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 "; $result = Database::query($sql); list($num_records) = Database::fetch_row($result); - $sql = "SELECT course.id FROM $tbl_course 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 + $sql = "SELECT course.id FROM $tbl_course 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 RAND()*$num_records< $random_value $without_special_courses ORDER BY RAND() LIMIT 0, $random_value"; } else { @@ -555,7 +557,7 @@ 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 + $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); @@ -616,7 +618,7 @@ class Auth { public function subscribe_user($course_code) { $user_id = api_get_user_id(); $all_course_information = CourseManager::get_course_information($course_code); - + if ($all_course_information['registration_code'] == '' || $_POST['course_registration_code'] == $all_course_information['registration_code']) { if (api_is_platform_admin()) { $status_user_in_new_course = COURSEMANAGER; @@ -633,7 +635,7 @@ class Auth { $message = get_lang('EnrollToCourseSuccessful'); } else { $message = get_lang('ErrorContactPlatformAdmin'); - } + } return array('message' => $message); } else { if (isset($_POST['course_registration_code']) && $_POST['course_registration_code'] != $all_course_information['registration_code']) { @@ -641,11 +643,11 @@ class Auth { } $message = get_lang('CourseRequiresPassword') . '
'; $message .= $all_course_information['title'].' ('.$all_course_information['visual_code'].') '; - - $action = api_get_path(WEB_CODE_PATH) . "auth/courses.php?action=subscribe_user_with_password&sec_token=" . $_SESSION['sec_token']; + + $action = api_get_path(WEB_CODE_PATH) . "auth/courses.php?action=subscribe_user_with_password&sec_token=" . $_SESSION['sec_token']; $form = new FormValidator('subscribe_user_with_password', 'post', $action); $form->addElement('hidden', 'sec_token', $_SESSION['sec_token']); - $form->addElement('hidden', 'subscribe_user_with_password', $all_course_information['code']); + $form->addElement('hidden', 'subscribe_user_with_password', $all_course_information['code']); $form->addElement('text', 'course_registration_code'); $form->addElement('button', 'submit', get_lang('SubmitRegistrationCode')); $content = $form->return_form(); diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index 46fe87bd84..2254304a32 100644 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -2045,57 +2045,49 @@ class CourseManager { $TABLECOURSE = Database::get_main_table(TABLE_MAIN_COURSE); $TABLECOURSUSER = Database::get_main_table(TABLE_MAIN_COURSE_USER); - $course_title = Database::result(Database::query('SELECT title FROM '.$TABLECOURSE. - ' WHERE code="'.$course_code.'"'), 0, 0); + $course_title = Database::result(Database::query('SELECT title FROM '.$TABLECOURSE.' WHERE code="'.$course_code.'"'), 0, 0); - $result = Database::query('SELECT course.code as code, course.title as title, cu.sort as sort FROM '.$TABLECOURSUSER.' as cu, '.$TABLECOURSE.' as course - WHERE course.code = cu.course_code - AND user_id = "'.$user_id.'" - AND cu.relation_type<>'.COURSE_RELATION_TYPE_RRHH.' - AND user_course_cat=0 ORDER BY cu.sort'); + $sql = 'SELECT course.code as code, course.title as title, cu.sort as sort FROM '.$TABLECOURSUSER.' as cu, '.$TABLECOURSE.' as course + WHERE course.code = cu.course_code AND user_id = "'.$user_id.'" AND + cu.relation_type<>'.COURSE_RELATION_TYPE_RRHH.' AND + user_course_cat = 0 + ORDER BY cu.sort'; + $result = Database::query($sql); $course_title_precedent = ''; $counter = 0; $course_found = false; $course_sort = 1; - while ($courses = Database::fetch_array($result)){ - - if ($course_title_precedent == '') { - $course_title_precedent = $courses['title']; - } - - if (api_strcasecmp($course_title_precedent, $course_title) < 0) { - - $course_found = true; - $course_sort = $courses['sort']; + if (Database::num_rows($result) > 0) { + while ($courses = Database::fetch_array($result)) { + if ($course_title_precedent == '') { + $course_title_precedent = $courses['title']; + } + if (api_strcasecmp($course_title_precedent, $course_title) < 0) { + $course_found = true; + $course_sort = $courses['sort']; + if ($counter == 0) { + $sql = 'UPDATE '.$TABLECOURSUSER.' SET sort = sort+1 WHERE user_id= "'.$user_id.'" AND relation_type<>'.COURSE_RELATION_TYPE_RRHH.' AND user_course_cat="0" AND sort > "'.$course_sort.'"'; + $course_sort++; + } else { + $sql = 'UPDATE '.$TABLECOURSUSER.' SET sort = sort+1 WHERE user_id= "'.$user_id.'" AND relation_type<>'.COURSE_RELATION_TYPE_RRHH.' AND user_course_cat="0" AND sort >= "'.$course_sort.'"'; + } + Database::query($sql); + break; - if ($counter == 0) { - $sql = 'UPDATE '.$TABLECOURSUSER.' SET sort = sort+1 WHERE user_id= "'.$user_id.'" AND relation_type<>'.COURSE_RELATION_TYPE_RRHH.' AND user_course_cat="0" AND sort > "'.$course_sort.'"'; - $course_sort++; } else { - $sql = 'UPDATE '.$TABLECOURSUSER.' SET sort = sort+1 WHERE user_id= "'.$user_id.'" AND relation_type<>'.COURSE_RELATION_TYPE_RRHH.' AND user_course_cat="0" AND sort >= "'.$course_sort.'"'; + $course_title_precedent = $courses['title']; } - - Database::query($sql); - break; - - } else { - $course_title_precedent = $courses['title']; + $counter++; } - $counter++; - } - - // We must register the course in the beginning of the list - if (Database::num_rows($result) > 0 && !$course_found) { - $course_sort = Database::result(Database::query('SELECT min(sort) as min_sort FROM '.$TABLECOURSUSER. - ' WHERE user_id="'.$user_id.'" AND user_course_cat="0"'), 0, 0); - - Database::query('UPDATE '.$TABLECOURSUSER.' SET sort = sort+1 - WHERE user_id= "'.$user_id.'" AND user_course_cat="0"'); + // We must register the course in the beginning of the list + if (!$course_found) { + $course_sort = Database::result(Database::query('SELECT min(sort) as min_sort FROM '.$TABLECOURSUSER.' WHERE user_id="'.$user_id.'" AND user_course_cat="0"'), 0, 0); + Database::query('UPDATE '.$TABLECOURSUSER.' SET sort = sort+1 WHERE user_id= "'.$user_id.'" AND user_course_cat="0"'); + } } - return $course_sort; } From f469e5120db9668fc4054d14e1ba9b7a01831d83 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Thu, 10 Jan 2013 16:08:51 +0100 Subject: [PATCH 2/3] Minor - cleaning whitespaces --- main/admin/user_add.php | 4 ++-- main/auth/my_progress.php | 44 +++++++++++++++++---------------------- 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/main/admin/user_add.php b/main/admin/user_add.php index 83a9f1ce7b..da2ecbda51 100644 --- a/main/admin/user_add.php +++ b/main/admin/user_add.php @@ -25,7 +25,7 @@ $is_platform_admin = api_is_platform_admin() ? 1 : 0; $message = null; $htmlHeadXtra[] = ''; -$htmlHeadXtra[] = ''; +$htmlHeadXtra[] = ''; $htmlHeadXtra[] = '