Merge branch '1.9.x' of github.com:chamilo/chamilo-lms into 1.9.x

1.9.x
Yannick Warnier 12 years ago
commit 8a008847b5
  1. 45
      main/auth/courses_controller.php
  2. 4
      main/inc/lib/course.lib.php
  3. 2
      main/inc/lib/main_api.lib.php
  4. 20
      main/inc/lib/userportal.lib.php

@ -18,7 +18,7 @@ class CoursesController { // extends Controller {
/**
* Constructor
*/
public function __construct() {
public function __construct() {
$this->toolname = 'auth';
$actived_theme_path = api_get_template();
$this->view = new View($this->toolname, $actived_theme_path);
@ -34,7 +34,7 @@ class CoursesController { // extends Controller {
public function courses_list($action, $message = '') {
$data = array();
$user_id = api_get_user_id();
$data['user_courses'] = $this->model->get_courses_of_user($user_id);
$data['user_course_categories'] = $this->model->get_user_course_categories();
$data['courses_in_category'] = $this->model->get_courses_in_category();
@ -60,7 +60,7 @@ class CoursesController { // extends Controller {
* @param string error message(optional)
*/
public function categories_list($action, $message='', $error='') {
$data = array();
$data = array();
$data['user_course_categories'] = $this->model->get_user_course_categories();
$data['action'] = $action;
$data['message'] = $message;
@ -81,23 +81,23 @@ class CoursesController { // extends Controller {
*/
public function courses_categories($action, $category_code = null, $message = '', $error = '', $content = null) {
$data = array();
$browse_course_categories = $this->model->browse_course_categories();
$browse_course_categories = $this->model->browse_course_categories();
if ($action == 'display_random_courses') {
$data['browse_courses_in_category'] = $this->model->browse_courses_in_category(null, 10);
} else {
if (!isset($category_code)) {
$category_code = $browse_course_categories[0][1]['code']; // by default first category
}
}
$data['browse_courses_in_category'] = $this->model->browse_courses_in_category($category_code);
}
$data['browse_course_categories'] = $browse_course_categories;
$data['code'] = Security::remove_XSS($category_code);
// getting all the courses to which the user is subscribed to
$curr_user_id = api_get_user_id();
$user_courses = $this->model->get_courses_of_user($curr_user_id);
$user_courses = $this->model->get_courses_of_user($curr_user_id);
$user_coursecodes = array();
// we need only the course codes as these will be used to match against the courses of the category
@ -106,14 +106,14 @@ class CoursesController { // extends Controller {
$user_coursecodes[] = $value['code'];
}
}
if (api_is_drh()) {
$courses = CourseManager::get_courses_followed_by_drh(api_get_user_id());
foreach ($courses as $course) {
$user_coursecodes[] = $course['code'];
}
}
}
$data['user_coursecodes'] = $user_coursecodes;
$data['action'] = $action;
$data['message'] = $message;
@ -167,19 +167,26 @@ class CoursesController { // extends Controller {
}
/**
*
* Auto user subcription to a course
*/
public function subscribe_user($course_code, $search_term, $category_code) {
$data = array();
$result = $this->model->subscribe_user($course_code);
if (!$result) {
$error = get_lang('CourseRegistrationCodeIncorrect');
$courseInfo = api_get_course_info($course_code);
// The course must be open in order to access the auto subscription
if (in_array($courseInfo['visibility'], array(COURSE_VISIBILITY_CLOSED, COURSE_VISIBILITY_REGISTERED))) {
$error = get_lang('SubscribingNotAllowed');
//$message = get_lang('SubscribingNotAllowed');
} else {
//Redirect directly to the course after subscription
$message = $result['message'];
$content = $result['content'];
$result = $this->model->subscribe_user($course_code);
if (!$result) {
$error = get_lang('CourseRegistrationCodeIncorrect');
} else {
//Redirect directly to the course after subscription
$message = $result['message'];
$content = $result['content'];
}
}
if (!empty($search_term)) {
$this->search_courses($search_term, $message, $error);
} else {

@ -3967,8 +3967,8 @@ class CourseManager {
if (!api_is_anonymous($uid) &&
!$is_admin &&
(
($course['visibility'] == COURSE_VISIBILITY_OPEN_WORLD || $course['visibility'] == COURSE_VISIBILITY_OPEN_PLATFORM) ||
$course['visibility'] == COURSE_VISIBILITY_REGISTERED && $course['subscribe'] == SUBSCRIBE_ALLOWED
($course['visibility'] == COURSE_VISIBILITY_OPEN_WORLD || $course['visibility'] == COURSE_VISIBILITY_OPEN_PLATFORM)
//$course['visibility'] == COURSE_VISIBILITY_REGISTERED && $course['subscribe'] == SUBSCRIBE_ALLOWED
) &&
$course['subscribe'] == SUBSCRIBE_ALLOWED &&
(!in_array($course['real_id'], $user_courses) || empty($user_courses))

@ -58,7 +58,7 @@ $_status_list[ANONYMOUS] = 'anonymous'; // 6
// COURSE VISIBILITY CONSTANTS
/** only visible for course admin */
define('COURSE_VISIBILITY_CLOSED', 0);
/** only visible for users registered in the course*/
/** only visible for users registered in the course */
define('COURSE_VISIBILITY_REGISTERED', 1);
/** Open for all registered users on the platform */
define('COURSE_VISIBILITY_OPEN_PLATFORM', 2);

@ -847,7 +847,6 @@ class IndexManager {
/**
* The most important function here, prints the session and course list (user_portal.php)
error_log(__LINE__);
*
* */
function return_courses_and_sessions($user_id) {
@ -862,6 +861,7 @@ error_log(__LINE__);
$session_categories = UserManager::get_sessions_by_category($user_id, false);
}
$html = '';
//Showing history title
@ -890,6 +890,7 @@ error_log(__LINE__);
if (is_array($session_categories)) {
foreach ($session_categories as $session_category) {
$session_category_id = $session_category['session_category']['id'];
// Sessions and courses that are not in a session category
if ($session_category_id == 0) {
@ -974,13 +975,12 @@ error_log(__LINE__);
$html_sessions = '';
foreach ($session_category['sessions'] as $session) {
$session_id = $session['session_id'];
//var_dump($session);var_dump($session_category);
// Don't show empty sessions.
if (count($session['courses']) < 1) {
continue;
}
$date_session_start = $session['date_start'];
//api_get_session_visibility($session_id);
$days_access_before_beginning = $session['nb_days_access_before_beginning'];
$days_access_after_end = $session['nb_days_access_after_end'];
$date_session_end = $session['date_end'];
@ -990,17 +990,25 @@ error_log(__LINE__);
foreach ($session['courses'] as $course) {
$is_coach_course = api_is_coach($session_id, $course['code']);
$dif_time_after = 0;
$allowed_time = 0;
if ($is_coach_course) {
$allowed_time = api_strtotime($date_session_start) - ($days_access_before_beginning*86400);
if ($session_now > $date_session_end) {
// 24 hours = 86400
if ($date_session_start != '0000-00-00') {
$allowed_time = api_strtotime($date_session_start) - ($days_access_before_beginning*86400);
}
if ($date_session_end != '0000-00-00') {
if ($session_now > $date_session_end) {
$dif_time_after = $session_now - api_strtotime($date_session_end);
$dif_time_after = round($dif_time_after/86400);
}
}
} else {
$allowed_time = api_strtotime($date_session_start);
}
if ($session_now > $allowed_time && $days_access_after_end >= $dif_time_after-1) {
if ($session_now > $allowed_time && $days_access_after_end >= $dif_time_after - 1) {
if (api_get_setting('hide_courses_in_sessions') == 'false') {
$c = CourseManager :: get_logged_user_course_html($course, $session_id, 'session_course_item');
$html_courses_session .= $c[1];

Loading…
Cancel
Save