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

1.10.x
Yannick Warnier 11 years ago
commit d7d26a897f
  1. 14
      main/admin/course_edit.php
  2. 4
      main/admin/user_add.php
  3. 6
      main/admin/user_edit.php
  4. 8
      main/auth/inscription.php
  5. 6
      main/inc/email_editor.php
  6. 70
      main/inc/lib/course.lib.php
  7. 29
      main/inc/lib/course_category.lib.php
  8. 10
      main/inc/lib/extra_field_value.lib.php
  9. 47
      main/inc/lib/usermanager.lib.php
  10. 24
      main/inc/lib/userportal.lib.php
  11. 6
      main/install/database.sql
  12. 4
      main/install/migrate-db-1.9.0-1.10.0-pre.sql
  13. 29
      main/session/index.php
  14. 82
      user_portal.php

@ -218,10 +218,16 @@ if (!empty($specialCourseFieldInfo)) {
$specialCourseAttributes['checked'] = '';
}
$form->addElement('hidden', '_extra_special_course', 0);
$form->addElement('checkbox', 'extra_special_course', array(
null, get_lang('AllUsersAreAutomaticallyRegistered')
), get_lang('SpecialCourse'), $specialCourseAttributes);
$form->addElement(
'checkbox',
'extra_special_course',
array(
null,
get_lang('AllUsersAreAutomaticallyRegistered')
),
get_lang('SpecialCourse'),
$specialCourseAttributes
);
}
//Extra fields

@ -233,7 +233,7 @@ $form->addElement('radio', 'radio_expiration_date', get_lang('ExpirationDate'),
$group = array ();
$group[] = $form->createElement('radio', 'radio_expiration_date', null, get_lang('On'), 1);
$group[] = $form->createElement(
'DatePicker',
'DateTimePicker',
'expiration_date',
null,
array(
@ -263,7 +263,7 @@ $defaults['mail']['send_mail'] = 1;
$defaults['password']['password_auto'] = 1;
$defaults['active'] = 1;
$days = api_get_setting('account_valid_duration');
$defaults['expiration_date'] = date('Y-m-d', api_strtotime('+'.$days.' day'));
$defaults['expiration_date'] = api_get_local_time('+'.$days.' day');
$defaults['radio_expiration_date'] = 0;
$defaults['status'] = STUDENT;

@ -269,7 +269,7 @@ if (!$user_data['platform_admin']) {
$form->addElement('radio', 'radio_expiration_date', get_lang('ExpirationDate'), get_lang('NeverExpires'), 0);
$group = array ();
$group[] = $form->createElement('radio', 'radio_expiration_date', null, get_lang('On'), 1);
$group[] = $form->createElement('DatePicker', 'expiration_date', null, array('onchange' => 'javascript: enable_expiration_date();'));
$group[] = $form->createElement('DateTimePicker', 'expiration_date', null, array('onchange' => 'javascript: enable_expiration_date();'));
$form->addGroup($group, 'max_member_group', null, '', false);
// Active account or inactive account
@ -298,10 +298,10 @@ $expiration_date = $user_data['expiration_date'];
if (empty($expiration_date)) {
$user_data['radio_expiration_date'] = 0;
$user_data['expiration_date'] = date('Y-m-d');
$user_data['expiration_date'] = api_get_local_time();
} else {
$user_data['radio_expiration_date'] = 1;
$user_data['expiration_date'] = $expiration_date;
$user_data['expiration_date'] = api_get_local_time($expiration_date);
}
$form->setDefaults($user_data);

@ -482,14 +482,6 @@ if ($form->validate()) {
Database::query($sql);
}
// if there is a default duration of a valid account then we have to change the expiration_date accordingly
if (api_get_setting('account_valid_duration') != '') {
$sql = "UPDATE ".Database::get_main_table(TABLE_MAIN_USER)."
SET expiration_date='registration_date+1'
WHERE user_id='".$user_id."'";
Database::query($sql);
}
$course_code_redirect = Session::read('course_redirect');
// Saving user to course if it was set.

@ -29,16 +29,16 @@ $action = isset($_GET['action']) ? $_GET['action'] : null;
$form = new FormValidator('email_editor', 'post');
$form->addElement('hidden', 'dest');
$form->addElement('text', 'email_address', get_lang('EmailDestination'));
$form->addElement('text', 'email_title', get_lang('EmailTitle'), array('class' => 'span5'));
$form->addElement('text', 'email_title', get_lang('EmailTitle'));
$form->freeze('email_address');
$form->addElement('textarea', 'email_text', get_lang('EmailText'), array('class' => 'span5', 'rows' => '6'));
$form->addElement('textarea', 'email_text', get_lang('EmailText'), array('rows' => '6'));
$form->addRule('email_address', get_lang('ThisFieldIsRequired'), 'required');
$form->addRule('email_title', get_lang('ThisFieldIsRequired'), 'required');
$form->addRule('email_text', get_lang('ThisFieldIsRequired'), 'required');
$form->addRule('email_address', get_lang('EmailWrong'), 'email');
$form->addElement('button', 'submit', get_lang('SendMail'));
$form->addButtonSend(get_lang('SendMail'));
switch ($action) {
case 'subscribe_me_to_session':

@ -1131,7 +1131,7 @@ class CourseManager
*
* @param int the id of the user
* @param array info about the course (comes from course table, see database lib)
*
* @deprecated linked_courses definition doesn't exists
* @return true if the user is registered in the real course or linked courses, false otherwise
*/
public static function is_user_subscribed_in_real_or_linked_course($user_id, $course_code, $session_id = '')
@ -2481,19 +2481,24 @@ class CourseManager
}
// get course list auto-register
$sql = "SELECT DISTINCT(tcfv.course_code) FROM $tbl_course_field_value tcfv INNER JOIN $tbl_course_field tcf
$sql = "SELECT DISTINCT(tcfv.course_code)
FROM $tbl_course_field_value tcfv
INNER JOIN $tbl_course_field tcf
ON tcfv.field_id = tcf.id $join_access_url
WHERE tcf.field_variable = 'special_course' AND tcfv.field_value = 1 $where_access_url";
$special_course_result = Database::query($sql);
$special_course_list = array();
WHERE
tcf.field_variable = 'special_course' AND
tcfv.field_value = 1 $where_access_url";
$result = Database::query($sql);
$courseList = array();
if (Database::num_rows($special_course_result) > 0) {
$special_course_list = array();
while ($result_row = Database::fetch_array($special_course_result)) {
$special_course_list[] = $result_row['course_code'];
if (Database::num_rows($result) > 0) {
while ($result_row = Database::fetch_array($result)) {
$courseList[] = $result_row['course_code'];
}
}
return $special_course_list;
return $courseList;
}
/**
@ -3515,10 +3520,17 @@ class CourseManager
$with_special_courses = ' course.code IN ("' . implode('","', $special_course_list) . '")';
}
$html = null;
$courseCount = 0;
if (!empty($with_special_courses)) {
$sql = "SELECT course.id, course.code, course.subscribe subscr, course.unsubscribe unsubscr, course_rel_user.status status,
course_rel_user.sort sort, course_rel_user.user_course_cat user_course_cat, course_rel_user.user_id
$sql = "SELECT
course.id,
course.code,
course.subscribe subscr,
course.unsubscribe unsubscr,
course_rel_user.status status,
course_rel_user.sort sort,
course_rel_user.user_course_cat user_course_cat,
course_rel_user.user_id
FROM $tbl_course course
LEFT JOIN $tbl_course_user course_rel_user
ON course.code = course_rel_user.course_code AND course_rel_user.user_id = '$user_id'
@ -3526,6 +3538,7 @@ class CourseManager
$rs_special_course = Database::query($sql);
$number_of_courses = Database::num_rows($rs_special_course);
$key = 0;
if ($number_of_courses > 0) {
@ -3534,9 +3547,9 @@ class CourseManager
if ($course_info['visibility'] == COURSE_VISIBILITY_HIDDEN) {
continue;
}
$courseCount++;
$params = array();
// Get notifications.
$course_info['id_session'] = null;
$course_info['status'] = $course['status'];
$show_notification = Display::show_notification($course_info);
@ -3609,7 +3622,10 @@ class CourseManager
}
}
return $html;
return [
'html' => $html,
'course_count' => $courseCount
];
}
/**
@ -3632,6 +3648,7 @@ class CourseManager
$sql = "SELECT id, title FROM $tucc WHERE user_id='" . $user_id . "' ORDER BY sort ASC";
$result = Database::query($sql);
$html = null;
$courseCount = 0;
while ($row = Database::fetch_array($result)) {
// We simply display the title of the category.
$params = array(
@ -3640,16 +3657,24 @@ class CourseManager
'title' => $row['title'],
'class' => 'table_user_course_category'
);
$courseInCategory = self:: display_courses_in_category($row['id'], $load_dirs);
$html .= self::course_item_parent(
self::course_item_html($params, true),
self:: display_courses_in_category($row['id'], $load_dirs)
$courseInCategory['html']
);
$courseCount += $courseInCategory['course_count'];
}
// Step 2: We display the course without a user category.
$html .= self:: display_courses_in_category(0, $load_dirs);
$courseInCategory = self:: display_courses_in_category(0, $load_dirs);
$html .= $courseInCategory['html'];
$courseCount += $courseInCategory['course_count'];
return $html;
return [
'html' => $html,
'course_count' => $courseCount
];
}
/**
@ -3710,7 +3735,7 @@ class CourseManager
$course_list = array();
$showCustomIcon = api_get_configuration_value('course_images_in_courses_list');
$courseCount = 0;
// Browse through all courses.
while ($course = Database::fetch_array($result)) {
$course_info = api_get_course_info($course['code']);
@ -3729,6 +3754,8 @@ class CourseManager
$course_list[] = $course_info['real_id'];
}
$courseCount++;
// For each course, get if there is any notification icon to show
// (something that would have changed since the user's last visit).
$show_notification = Display::show_notification($course_info);
@ -3828,7 +3855,10 @@ class CourseManager
$html .= self::course_item_html($params, $isSubcontent);
}
return $html;
return [
'html' => $html,
'course_count' => $courseCount
];
}
/**

@ -958,8 +958,7 @@ function getCataloguePagination($pageCurrent, $pageLength, $pageTotal)
return $pageDiv;
}
/**
/**
* Return URL to course catalog
* @param int $pageCurrent
* @param int $pageLength
@ -968,30 +967,32 @@ function getCataloguePagination($pageCurrent, $pageLength, $pageTotal)
* @param string $action
* @return string
*/
function getCourseCategoryUrl(
function getCourseCategoryUrl(
$pageCurrent,
$pageLength,
$categoryCode = null,
$hiddenLinks = null,
$action = null
) {
$action = isset($action) ? Security::remove_XSS($action) : Security::remove_XSS($_REQUEST['action']);
) {
$requestAction = isset($_REQUEST['action']) ? Security::remove_XSS($_REQUEST['action']) : null;
$action = isset($action) ? Security::remove_XSS($action) : $requestAction;
$searchTerm = isset($_REQUEST['search_term']) ? Security::remove_XSS($_REQUEST['search_term']) : null;
$categoryCodeRequest = isset($_REQUEST['category_code']) ? Security::remove_XSS($_REQUEST['category_code']) : null;
$categoryCode = isset($categoryCode) ? Security::remove_XSS($categoryCode) : $categoryCodeRequest;
$hiddenLinksRequest = isset($_REQUEST['hidden_links']) ? Security::remove_XSS($_REQUEST['hidden_links']) : null;
$hiddenLinks = isset($hiddenLinks) ? Security::remove_XSS($hiddenLinksRequest) : $categoryCodeRequest;
// Start URL with params
$pageUrl = api_get_self() .
'?action=' . $action .
'&category_code=' . (
isset($categoryCode) ? $categoryCode :
Security::remove_XSS($_REQUEST['category_code'])
) .
'&hidden_links=' . (
isset($hiddenLinks) ? $hiddenLinks :
Security::remove_XSS($_REQUEST['hidden_links'])
).
'&category_code=' .$categoryCode.
'&hidden_links=' .$hiddenLinks.
'&pageCurrent=' . $pageCurrent .
'&pageLength=' . $pageLength
;
switch ($action) {
case 'subscribe' :
// for search
@ -1027,7 +1028,7 @@ function getPageNumberItem($pageNumber, $pageLength, $liAttributes = array(), $c
);
// If is current page ('active' class) clear URL
if (isset($liAttributes) && is_array($liAttributes)) {
if (isset($liAttributes) && is_array($liAttributes) && isset($liAttributes['class'])) {
if (strpos('active', $liAttributes['class']) !== false) {
$url = '';
}

@ -115,8 +115,10 @@ class ExtraFieldValue extends Model
// Parse params.
foreach ($params as $key => $value) {
if (substr($key, 0, 6) == 'extra_' || substr($key, 0, 7) == '_extra_') {
// An extra field.
$field_variable = substr($key, 6);
$extra_field_info = $extra_field->get_handler_field_info_by_field_variable($field_variable);
if ($extra_field_info) {
@ -124,8 +126,7 @@ class ExtraFieldValue extends Model
$comment = isset($params[$commentVariable]) ? $params[$commentVariable] : null;
switch ($extra_field_info['field_type']) {
case ExtraField::FIELD_TYPE_TAG :
case ExtraField::FIELD_TYPE_TAG:
$old = self::getAllValuesByItemAndField(
$params[$this->handler_id],
$extra_field_info['id']
@ -247,7 +248,9 @@ class ExtraFieldValue extends Model
'field_value' => $value
);
if ($this->handler_id !== 'session_id' && $this->handler_id !== 'course_code') {
if ($this->handler_id !== 'session_id' &&
$this->handler_id !== 'course_code'
) {
$new_params['comment'] = $comment;
}
@ -460,6 +463,7 @@ class ExtraFieldValue extends Model
}
} else {
$params['id'] = $field_values['id'];
return parent::update($params, $show_query);
}
}

@ -55,7 +55,7 @@ class UserManager
* @param string Phone number (optional)
* @param string Picture URI (optional)
* @param string Authentication source (optional, defaults to 'platform', dependind on constant)
* @param string Account expiration date (optional, defaults to '0000-00-00 00:00:00')
* @param string Account expiration date (optional, defaults to null)
* @param int Whether the account is enabled or disabled by default
* @param int The department of HR in which the user is registered (optional, defaults to 0)
* @param array Extra fields
@ -79,7 +79,7 @@ class UserManager
$phone = '',
$picture_uri = '',
$auth_source = PLATFORM_AUTH_SOURCE,
$expiration_date = null,
$expirationDate = null,
$active = 1,
$hr_dept_id = 0,
$extra = null,
@ -163,10 +163,19 @@ class UserManager
$currentDate = api_get_utc_datetime();
$now = new DateTime($currentDate);
$manager = Database::getManager();
if (!empty($expiration_date)) {
$expiration_date = new \DateTime($expiration_date);
if (empty($expirationDate)) {
// Default expiration date
// if there is a default duration of a valid account then
// we have to change the expiration_date accordingly
$expirationDate = new DateTime($currentDate);
if (api_get_setting('account_valid_duration') != '') {
$days = intval(api_get_setting('account_valid_duration'));
$expirationDate->modify('+'.$days.' day');
}
} else {
$expirationDate = api_get_utc_datetime($expirationDate);
$expirationDate = new \DateTime($expirationDate);
}
$user = new User();
@ -183,32 +192,13 @@ class UserManager
->setPhone($phone)
->setLanguage($language)
->setRegistrationDate($now)
->setExpirationDate($expiration_date)
->setExpirationDate($expirationDate)
->setHrDeptId($hr_dept_id)
->setActive($active);
$manager = Database::getManager();
$manager->persist($user);
$manager->flush();
/*$sql = "INSERT INTO $table_user
SET lastname = '".Database::escape_string(trim($lastName))."',
firstname = '".Database::escape_string(trim($firstName))."',
username = '".Database::escape_string(trim($loginName))."',
status = '".Database::escape_string($status)."',
password = '".Database::escape_string($password)."',
email = '".Database::escape_string($email)."',
official_code = '".Database::escape_string($official_code)."',
picture_uri = '".Database::escape_string($picture_uri)."',
creator_id = '".Database::escape_string($creator_id)."',
auth_source = '".Database::escape_string($auth_source)."',
phone = '".Database::escape_string($phone)."',
language = '".Database::escape_string($language)."',
registration_date = '".$current_date."',
expiration_date = '".Database::escape_string($expiration_date)."',
hr_dept_id = '".Database::escape_string($hr_dept_id)."',
active = '".Database::escape_string($active)."'";
$result = Database::query($sql);*/
$userId = $user->getId();
if (!empty($userId)) {
@ -251,7 +241,7 @@ class UserManager
$plugin = new AppPlugin();
$additionalParameters = array(
'smsType' => constant($plugin->getSMSPluginName().'::WELCOME_LOGIN_PASSWORD'),
'smsType' => constant($plugin->getSMSPluginName().':: WELCOME_LOGIN_PASSWORD'),
'userId' => $return,
'mobilePhoneNumber' => $phoneNumber,
'password' => $original_password
@ -677,6 +667,7 @@ class UserManager
}
if (!empty($expiration_date)) {
$expiration_date = api_get_utc_datetime($expiration_date);
$expiration_date = new \DateTime($expiration_date);
}
@ -2743,7 +2734,6 @@ class UserManager
}
if (api_is_allowed_to_create_course()) {
foreach ($sessions as $enreg) {
$session_id = $enreg['id'];
$session_visibility = api_get_session_visibility($session_id);
@ -2751,6 +2741,7 @@ class UserManager
if ($session_visibility == SESSION_INVISIBLE) {
continue;
}
// This query is horribly slow when more than a few thousand
// users and just a few sessions to which they are subscribed
$id_session = $enreg['id'];

@ -1040,17 +1040,23 @@ class IndexManager
$courses_html = '';
$special_courses = '';
$sessionCount = 0;
$courseCount = 0;
// If we're not in the history view...
if (!isset($_GET['history'])) {
// Display special courses.
$special_courses = CourseManager::display_special_courses($user_id, $this->load_directories_preview);
$specialCourses = CourseManager::display_special_courses($user_id, $this->load_directories_preview);
$special_courses = $specialCourses['html'];
// Display courses.
$courses_html .= CourseManager::display_courses($user_id, $this->load_directories_preview);
$courses = CourseManager::display_courses($user_id, $this->load_directories_preview);
$courses_html .= $courses['html'];
$courseCount = $specialCourses['course_count'] + $courses['course_count'];
}
$sessions_with_category = '';
$sessions_with_no_category = '';
if (is_array($session_categories)) {
foreach ($session_categories as $session_category) {
$session_category_id = $session_category['session_category']['id'];
@ -1185,10 +1191,11 @@ class IndexManager
$parentInfo = CourseManager::course_item_html_no_icon($params);
}
$sessions_with_no_category .= CourseManager::course_item_parent(
$parentInfo,null
);
$sessionCount++;
}
}
} else {
@ -1203,6 +1210,7 @@ class IndexManager
if (count($session['courses']) < 1) {
continue;
}
$date_session_start = $session['date_start'];
$date_session_end = $session['date_end'];
$days_access_before_beginning = $session['nb_days_access_before_beginning'];
@ -1313,6 +1321,8 @@ class IndexManager
}
$html_sessions .= $parentInfo . $html_courses_session;
$sessionCount++;
}
}
}
@ -1354,9 +1364,11 @@ class IndexManager
}
}
return $sessions_with_category.
$sessions_with_no_category.
$courses_html.$special_courses;
return [
'html' => $sessions_with_category.$sessions_with_no_category.$courses_html.$special_courses,
'session_count' => $sessionCount,
'course_count' => $courseCount
];
}
/**

@ -2724,9 +2724,7 @@ CREATE TABLE IF NOT EXISTS message_attachment (
PRIMARY KEY (id)
);
INSERT INTO course_field (field_type, field_variable, field_display_text, field_default_value, field_visible, field_changeable) values (10, 'special_course','Special course', '', 1 , 1);
INSERT INTO course_field (field_type, field_variable, field_display_text, field_default_value, field_visible, field_changeable) values (1, 'special_course', 'Special course', '', 1 , 1);
--
-- Table structure for table block
@ -4729,5 +4727,5 @@ CREATE TABLE c_attendance_calendar_rel_group (
-- Version
LOCK TABLES settings_current WRITE;
UPDATE settings_current SET selected_value = '1.10.0.30' WHERE variable = 'chamilo_database_version';
UPDATE settings_current SET selected_value = '1.10.0.31' WHERE variable = 'chamilo_database_version';
UNLOCK TABLES;

@ -124,5 +124,7 @@ CREATE TABLE IF NOT EXISTS c_student_publication_rel_user (id INT PRIMARY KEY N
CREATE TABLE IF NOT EXISTS c_student_publication_comment (id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, work_id INT NOT NULL, c_id INT NOT NULL, comment text, file VARCHAR(255), user_id int NOT NULL, sent_at datetime NOT NULL);
CREATE TABLE IF NOT EXISTS c_attendance_calendar_rel_group (id int NOT NULL auto_increment PRIMARY KEY, c_id INT NOT NULL, group_id INT NOT NULL, calendar_id INT NOT NULL);
UPDATE course_field SET field_type = 1 WHERE field_variable = 'special_course';
-- Do not move this query
UPDATE settings_current SET selected_value = '1.10.0.30' WHERE variable = 'chamilo_database_version';
UPDATE settings_current SET selected_value = '1.10.0.31' WHERE variable = 'chamilo_database_version';

@ -5,16 +5,12 @@
* @package chamilo.session
* @author Julio Montoya <gugli100@gmail.com> Beeznest
*/
/**
* Code
*/
use \ChamiloSession as Session;
$cidReset = true;
require_once '../inc/global.inc.php';
$session_id = isset($_GET['session_id']) ? intval($_GET['session_id']): null;
$sessionField = new ExtraFieldValue('session');
@ -43,23 +39,37 @@ if (isset($_SESSION['objExercise'])) {
Session::erase('objExercise');
}
$userId = api_get_user_id();
$session_info = SessionManager::fetch($session_id);
$session_list = SessionManager::get_sessions_by_coach(api_get_user_id());
$course_list = SessionManager::get_course_list_by_session_id($session_id);
// Getting all sessions where I'm subscribed
$new_session_list = array();
/*$new_session_list = array();
if (!api_is_anonymous()) {
$new_session_list = UserManager::get_personal_session_course_list(api_get_user_id());
}
$user_course_list = array();
foreach ($new_session_list as $session_item) {
$user_course_list[] = $session_item['code'];
}*/
$user_course_list = array();
foreach ($course_list as $course) {
$status = SessionManager::get_user_status_in_course_session($userId, $course['code'], $session_id);
if ($status || api_is_platform_admin()) {
$user_course_list[] = $course['code'];
}
}
if (empty($user_course_list)) {
api_not_allowed(true);
}
$my_session_list = array();
$final_array = array();
/*
if (!empty($new_session_list)) {
foreach ($new_session_list as $item) {
$my_session_id = isset($item['id_session']) ? $item['id_session'] : null;
@ -110,7 +120,8 @@ if (!empty($new_session_list)) {
}
$my_session_list[] = $my_session_id;
}
}
}*/
$new_course_list = array();
if (!empty($course_list)) {
@ -202,11 +213,11 @@ if (!empty($course_list)) {
}
// If the requested session does not exist in my list we stop the script
if (!api_is_platform_admin()) {
/*if (!api_is_platform_admin()) {
if (!api_is_anonymous() && !in_array($session_id, $my_session_list)) {
api_not_allowed(true);
}
}
}*/
//If session is not active we stop de script
if (!api_is_allowed_to_session_edit()) {

@ -30,53 +30,49 @@ require_once api_get_path(LIBRARY_PATH).'userportal.lib.php';
api_block_anonymous_users(); // Only users who are logged in can proceed.
$user_id = api_get_user_id();
$userId = api_get_user_id();
/* Constants and CONFIGURATION parameters */
$load_dirs = api_get_setting('show_documents_preview');
// Check if a user is enrolled only in one course for going directly to the course after the login.
if (api_get_setting('go_to_course_after_login') == 'true') {
$controller = new IndexManager(get_lang('MyCourses'));
// Get the courses list
$personal_course_list = UserManager::get_personal_session_course_list($user_id);
// Main courses and session list
$courseAndSessions = $controller->return_courses_and_sessions($userId);
$my_session_list = array();
$count_of_courses_no_sessions = 0;
$count_of_courses_with_sessions = 0;
// Check if a user is enrolled only in one course for going directly to the course after the login.
if (api_get_setting('go_to_course_after_login') == 'true') {
foreach ($personal_course_list as $course) {
if (!empty($course['id_session'])) {
$my_session_list[$course['id_session']] = true;
$count_of_courses_with_sessions++;
} else {
$count_of_courses_no_sessions++;
}
}
$count_of_sessions = count($my_session_list);
$count_of_sessions = $courseAndSessions['session_count'];
$count_of_courses_no_sessions = $courseAndSessions['course_count'];
if ($count_of_sessions == 1 && $count_of_courses_no_sessions == 0) {
$key = array_keys($personal_course_list);
$course_info = $personal_course_list[$key[0]];
$course_directory = $course_info['course_info']['path'];
$id_session = isset($course_info['id_session']) ? $course_info['id_session'] : 0;
$url = api_get_path(WEB_CODE_PATH).'session/?session_id='.$id_session;
$sessions = SessionManager::get_sessions_by_user($userId);
if (isset($sessions[0])) {
$sessionInfo = $sessions[0];
if (isset($sessionInfo['session_id'])) {
$url = api_get_path(WEB_CODE_PATH).'session/?session_id='.$sessionInfo['session_id'];
header('location:'.$url);
header('Location:'.$url);
exit;
}
}
}
if (!isset($_SESSION['coursesAlreadyVisited']) &&
$count_of_sessions == 0 && $count_of_courses_no_sessions == 1
) {
$key = array_keys($personal_course_list);
$course_info = $personal_course_list[$key[0]];
$course_directory = $course_info['course_info']['path'];
$id_session = isset($course_info['id_session']) ? $course_info['id_session'] : 0;
$url = api_get_path(WEB_COURSE_PATH).$course_directory.'/?id_session='.$id_session;
header('location:'.$url);
$courses = CourseManager::get_courses_list_by_user_id($userId);
if (!empty($courses) && isset($courses[0]) && isset($courses[0]['code'])) {
$courseInfo = api_get_course_info($courses[0]['code']);
if (!empty($courseInfo)) {
$courseUrl = $courseInfo['course_public_url'];
header('Location:'.$courseUrl);
exit;
}
}
}
}
$nameTools = get_lang('MyCourses');
@ -123,38 +119,14 @@ if ($load_dirs) {
</script>';
}
/* Sniffing system */
//store posts to sessions
/*
if (isset($_SESSION['sniff_navigator']) && $_SESSION['sniff_navigator']!="checked") {
$_SESSION['sniff_navigator']=Security::remove_XSS($_POST['sniff_navigator']);
$_SESSION['sniff_screen_size_w']=Security::remove_XSS($_POST['sniff_navigator_screen_size_w']);
$_SESSION['sniff__screen_size_h']=Security::remove_XSS($_POST['sniff_navigator_screen_size_h']);
$_SESSION['sniff_type_mimetypes']=Security::remove_XSS($_POST['sniff_navigator_type_mimetypes']);
$_SESSION['sniff_suffixes_mimetypes']=Security::remove_XSS($_POST['sniff_navigator_suffixes_mimetypes']);
$_SESSION['sniff_list_plugins']=Security::remove_XSS($_POST['sniff_navigator_list_plugins']);
$_SESSION['sniff_check_some_activex']=Security::remove_XSS($_POST['sniff_navigator_check_some_activex']);
$_SESSION['sniff_check_some_plugins']=Security::remove_XSS($_POST['sniff_navigator_check_some_plugins']);
$_SESSION['sniff_java']=Security::remove_XSS($_POST['sniff_navigator_java']);
$_SESSION['sniff_java_sun_ver']=Security::remove_XSS($_POST['sniff_navigator_java_sun_ver']);
}
*/
/* MAIN CODE */
$controller = new IndexManager(get_lang('MyCourses'));
// Main courses and session list
$courses_and_sessions = $controller->return_courses_and_sessions($user_id);
//Show the chamilo mascot
if (empty($courses_and_sessions) && !isset($_GET['history'])) {
if (empty($courseAndSessions['html']) && !isset($_GET['history'])) {
$controller->tpl->assign('welcome_to_course_block', $controller->return_welcome_to_course_block());
}
$controller->tpl->assign('content', $courses_and_sessions);
$controller->tpl->assign('content', $courseAndSessions['html']);
if (api_get_setting('allow_browser_sniffer') == 'true') {
if ($_SESSION['sniff_navigator']!="checked") {

Loading…
Cancel
Save