Skip to content

Commit 8a00884

Browse files
committed
Merge branch '1.9.x' of github.com:chamilo/chamilo-lms into 1.9.x
2 parents 4caebb0 + 96e1a83 commit 8a00884

File tree

4 files changed

+43
-28
lines changed

4 files changed

+43
-28
lines changed

main/auth/courses_controller.php

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class CoursesController { // extends Controller {
1818
/**
1919
* Constructor
2020
*/
21-
public function __construct() {
21+
public function __construct() {
2222
$this->toolname = 'auth';
2323
$actived_theme_path = api_get_template();
2424
$this->view = new View($this->toolname, $actived_theme_path);
@@ -34,7 +34,7 @@ public function __construct() {
3434
public function courses_list($action, $message = '') {
3535
$data = array();
3636
$user_id = api_get_user_id();
37-
37+
3838
$data['user_courses'] = $this->model->get_courses_of_user($user_id);
3939
$data['user_course_categories'] = $this->model->get_user_course_categories();
4040
$data['courses_in_category'] = $this->model->get_courses_in_category();
@@ -60,7 +60,7 @@ public function courses_list($action, $message = '') {
6060
* @param string error message(optional)
6161
*/
6262
public function categories_list($action, $message='', $error='') {
63-
$data = array();
63+
$data = array();
6464
$data['user_course_categories'] = $this->model->get_user_course_categories();
6565
$data['action'] = $action;
6666
$data['message'] = $message;
@@ -81,23 +81,23 @@ public function categories_list($action, $message='', $error='') {
8181
*/
8282
public function courses_categories($action, $category_code = null, $message = '', $error = '', $content = null) {
8383
$data = array();
84-
$browse_course_categories = $this->model->browse_course_categories();
85-
84+
$browse_course_categories = $this->model->browse_course_categories();
85+
8686
if ($action == 'display_random_courses') {
8787
$data['browse_courses_in_category'] = $this->model->browse_courses_in_category(null, 10);
8888
} else {
8989
if (!isset($category_code)) {
9090
$category_code = $browse_course_categories[0][1]['code']; // by default first category
91-
}
91+
}
9292
$data['browse_courses_in_category'] = $this->model->browse_courses_in_category($category_code);
9393
}
94-
94+
9595
$data['browse_course_categories'] = $browse_course_categories;
9696
$data['code'] = Security::remove_XSS($category_code);
9797

9898
// getting all the courses to which the user is subscribed to
9999
$curr_user_id = api_get_user_id();
100-
$user_courses = $this->model->get_courses_of_user($curr_user_id);
100+
$user_courses = $this->model->get_courses_of_user($curr_user_id);
101101
$user_coursecodes = array();
102102

103103
// we need only the course codes as these will be used to match against the courses of the category
@@ -106,14 +106,14 @@ public function courses_categories($action, $category_code = null, $message = ''
106106
$user_coursecodes[] = $value['code'];
107107
}
108108
}
109-
109+
110110
if (api_is_drh()) {
111111
$courses = CourseManager::get_courses_followed_by_drh(api_get_user_id());
112112
foreach ($courses as $course) {
113113
$user_coursecodes[] = $course['code'];
114-
}
114+
}
115115
}
116-
116+
117117
$data['user_coursecodes'] = $user_coursecodes;
118118
$data['action'] = $action;
119119
$data['message'] = $message;
@@ -167,19 +167,26 @@ public function search_courses($search_term, $message = '', $error = '') {
167167
}
168168

169169
/**
170-
*
170+
* Auto user subcription to a course
171171
*/
172172
public function subscribe_user($course_code, $search_term, $category_code) {
173173
$data = array();
174-
$result = $this->model->subscribe_user($course_code);
175-
if (!$result) {
176-
$error = get_lang('CourseRegistrationCodeIncorrect');
174+
$courseInfo = api_get_course_info($course_code);
175+
// The course must be open in order to access the auto subscription
176+
if (in_array($courseInfo['visibility'], array(COURSE_VISIBILITY_CLOSED, COURSE_VISIBILITY_REGISTERED))) {
177+
$error = get_lang('SubscribingNotAllowed');
178+
//$message = get_lang('SubscribingNotAllowed');
177179
} else {
178-
//Redirect directly to the course after subscription
179-
$message = $result['message'];
180-
$content = $result['content'];
180+
$result = $this->model->subscribe_user($course_code);
181+
if (!$result) {
182+
$error = get_lang('CourseRegistrationCodeIncorrect');
183+
} else {
184+
//Redirect directly to the course after subscription
185+
$message = $result['message'];
186+
$content = $result['content'];
187+
}
181188
}
182-
189+
183190
if (!empty($search_term)) {
184191
$this->search_courses($search_term, $message, $error);
185192
} else {

main/inc/lib/course.lib.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3967,8 +3967,8 @@ static function get_access_link_by_user($uid, $course, $user_courses = array())
39673967
if (!api_is_anonymous($uid) &&
39683968
!$is_admin &&
39693969
(
3970-
($course['visibility'] == COURSE_VISIBILITY_OPEN_WORLD || $course['visibility'] == COURSE_VISIBILITY_OPEN_PLATFORM) ||
3971-
$course['visibility'] == COURSE_VISIBILITY_REGISTERED && $course['subscribe'] == SUBSCRIBE_ALLOWED
3970+
($course['visibility'] == COURSE_VISIBILITY_OPEN_WORLD || $course['visibility'] == COURSE_VISIBILITY_OPEN_PLATFORM)
3971+
//$course['visibility'] == COURSE_VISIBILITY_REGISTERED && $course['subscribe'] == SUBSCRIBE_ALLOWED
39723972
) &&
39733973
$course['subscribe'] == SUBSCRIBE_ALLOWED &&
39743974
(!in_array($course['real_id'], $user_courses) || empty($user_courses))

main/inc/lib/main_api.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
// COURSE VISIBILITY CONSTANTS
5959
/** only visible for course admin */
6060
define('COURSE_VISIBILITY_CLOSED', 0);
61-
/** only visible for users registered in the course*/
61+
/** only visible for users registered in the course */
6262
define('COURSE_VISIBILITY_REGISTERED', 1);
6363
/** Open for all registered users on the platform */
6464
define('COURSE_VISIBILITY_OPEN_PLATFORM', 2);

main/inc/lib/userportal.lib.php

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,6 @@ function return_course_block() {
847847

848848
/**
849849
* The most important function here, prints the session and course list (user_portal.php)
850-
error_log(__LINE__);
851850
*
852851
* */
853852
function return_courses_and_sessions($user_id) {
@@ -862,6 +861,7 @@ function return_courses_and_sessions($user_id) {
862861
$session_categories = UserManager::get_sessions_by_category($user_id, false);
863862
}
864863

864+
865865
$html = '';
866866

867867
//Showing history title
@@ -890,6 +890,7 @@ function return_courses_and_sessions($user_id) {
890890
if (is_array($session_categories)) {
891891
foreach ($session_categories as $session_category) {
892892
$session_category_id = $session_category['session_category']['id'];
893+
893894
// Sessions and courses that are not in a session category
894895
if ($session_category_id == 0) {
895896

@@ -974,13 +975,12 @@ function return_courses_and_sessions($user_id) {
974975
$html_sessions = '';
975976
foreach ($session_category['sessions'] as $session) {
976977
$session_id = $session['session_id'];
977-
//var_dump($session);var_dump($session_category);
978+
978979
// Don't show empty sessions.
979980
if (count($session['courses']) < 1) {
980981
continue;
981982
}
982983
$date_session_start = $session['date_start'];
983-
//api_get_session_visibility($session_id);
984984
$days_access_before_beginning = $session['nb_days_access_before_beginning'];
985985
$days_access_after_end = $session['nb_days_access_after_end'];
986986
$date_session_end = $session['date_end'];
@@ -990,17 +990,25 @@ function return_courses_and_sessions($user_id) {
990990

991991
foreach ($session['courses'] as $course) {
992992
$is_coach_course = api_is_coach($session_id, $course['code']);
993+
993994
$dif_time_after = 0;
995+
$allowed_time = 0;
994996
if ($is_coach_course) {
995-
$allowed_time = api_strtotime($date_session_start) - ($days_access_before_beginning*86400);
996-
if ($session_now > $date_session_end) {
997+
// 24 hours = 86400
998+
if ($date_session_start != '0000-00-00') {
999+
$allowed_time = api_strtotime($date_session_start) - ($days_access_before_beginning*86400);
1000+
}
1001+
if ($date_session_end != '0000-00-00') {
1002+
if ($session_now > $date_session_end) {
9971003
$dif_time_after = $session_now - api_strtotime($date_session_end);
9981004
$dif_time_after = round($dif_time_after/86400);
1005+
}
9991006
}
10001007
} else {
10011008
$allowed_time = api_strtotime($date_session_start);
10021009
}
1003-
if ($session_now > $allowed_time && $days_access_after_end >= $dif_time_after-1) {
1010+
1011+
if ($session_now > $allowed_time && $days_access_after_end >= $dif_time_after - 1) {
10041012
if (api_get_setting('hide_courses_in_sessions') == 'false') {
10051013
$c = CourseManager :: get_logged_user_course_html($course, $session_id, 'session_course_item');
10061014
$html_courses_session .= $c[1];

0 commit comments

Comments
 (0)