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

1.9.x
Yannick Warnier 11 years ago
commit 466e086899
  1. 4
      main/admin/user_edit.php
  2. 320
      main/admin/user_move_stats.php
  3. 156
      main/inc/lib/course.lib.php
  4. 178
      main/inc/lib/sessionmanager.lib.php

@ -260,7 +260,6 @@ $creatorInfo = api_get_user_info($user_data['creator_id']);
$date = sprintf(get_lang('CreatedByXYOnZ'), 'user_information.php?user_id='.$user_data['creator_id'], $creatorInfo['username'], $user_data['registration_date']);
$form->addElement('html', '<div class="control-group"><label class="control-label">'.get_lang('RegistrationDate').'</label><div class="controls">'.$date.'</div></div>');
if (!$user_data['platform_admin']) {
// Expiration Date
$form->addElement('radio', 'radio_expiration_date', get_lang('ExpirationDate'), get_lang('NeverExpires'), 0);
@ -274,7 +273,6 @@ if (!$user_data['platform_admin']) {
$form->addElement('radio', 'active', '', get_lang('Inactive'), 0);
}
// EXTRA FIELDS
$return_params = UserManager::set_extra_fields_in_form($form, $extra_data, 'user_edit', true, $user_id);
$jquery_ready_content = $return_params['jquery_ready_content'];
@ -432,7 +430,7 @@ if ($form->validate()) {
} else {
UserManager::update_extra_field_value($user_id, substr($key, 6), $value);
}
} elseif (strpos($key,'remove_extra') !== false) {
} elseif (strpos($key, 'remove_extra') !== false) {
$extra_value = Security::filter_filename(urldecode(key($value)));
// To remove from user_field_value and folder
UserManager::update_extra_field_value($user_id, substr($key,13), $extra_value);

@ -1,12 +1,10 @@
<?php
/* For licensing terms, see /license.txt */
/**
* User move scripti (to move between courses and sessions)
* User move script (to move between courses and sessions)
* @package chamilo.admin
*/
/**
* Code
*/
$language_file = 'admin';
$cidReset = true;
@ -20,14 +18,14 @@ $interbreadcrumb[] = array ("url" => 'index.php', "name" => get_lang('PlatformAd
$debug = 0;
function compare_data($result_message) {
foreach ($result_message as $table=>$data) {
foreach ($result_message as $table=>$data) {
$title = $table;
if ($table == 'TRACK_E_EXERCISES') {
$title = get_lang('Exercises');
} elseif ($table == 'TRACK_E_EXERCISES_IN_LP') {
$title = get_lang('ExercisesInLp');
} elseif ($table == 'LP_VIEW') {
} elseif ($table == 'LP_VIEW') {
$title = get_lang('LearningPaths');
}
echo '<br / ><h3>'.get_lang($title).' </h3><hr />';
@ -70,22 +68,22 @@ function compare_data($result_message) {
if (isset($_REQUEST['load_ajax'])) {
//Checking the variable $_SESSION['combination'] that has all the information of the selected course (instead of using a lots of hidden variables ... )
if (isset($_SESSION['combination']) && !empty($_SESSION['combination'])) {
$combinations = $_SESSION['combination'];
$combinations = $_SESSION['combination'];
$combination_result = $combinations[$_REQUEST['unique_id']];
if (empty($combination_result)) {
echo get_lang('ThereWasAnError');
echo get_lang('ThereWasAnError');
} else {
$origin_course_code = $combination_result['course_code'];
$origin_session_id = intval($combination_result['session_id']);
$new_session_id = intval($_REQUEST['session_id']);
//if (!isset($_REQUEST['view_stat'])) {
if ($origin_session_id == $new_session_id ) {
echo get_lang('CantMoveToTheSameSession');
exit;
}
if ($origin_session_id == $new_session_id ) {
echo get_lang('CantMoveToTheSameSession');
exit;
}
//}
$user_id = intval($_REQUEST['user_id']);
$user_id = intval($_REQUEST['user_id']);
$new_course_list = SessionManager::get_course_list_by_session_id($new_session_id);
@ -96,7 +94,6 @@ if (isset($_REQUEST['load_ajax'])) {
}
}
$result_message = array();
$result_message_compare = array();
@ -117,8 +114,8 @@ if (isset($_REQUEST['load_ajax'])) {
}
//Begin with the import process
$course_info = api_get_course_info($origin_course_code);
$course_id = $course_info['real_id'];
$course_info = api_get_course_info($origin_course_code);
$course_id = $course_info['real_id'];
$TABLETRACK_EXERCICES = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$TBL_TRACK_ATTEMPT = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
@ -135,13 +132,11 @@ if (isset($_REQUEST['load_ajax'])) {
$TBL_DROPBOX_POST = Database::get_course_table(TABLE_DROPBOX_POST);
$TBL_AGENDA = Database::get_course_table(TABLE_AGENDA);
$course_code = Database::escape_string($course_code);
//1. track_e_exercises
//ORIGINAL COURSE
$sql = "SELECT * FROM $TABLETRACK_EXERCICES WHERE exe_cours_id = '$origin_course_code' AND session_id = $origin_session_id AND exe_user_id = $user_id ";
$sql = "SELECT * FROM $TABLETRACK_EXERCICES
WHERE exe_cours_id = '$origin_course_code' AND session_id = $origin_session_id AND exe_user_id = $user_id ";
$res = Database::query($sql);
$list = array();
while($row = Database::fetch_array($res,'ASSOC')) {
@ -149,19 +144,19 @@ if (isset($_REQUEST['load_ajax'])) {
}
if (!empty($list))
foreach ($list as $exe_id =>$data) {
if ($update_database) {
$sql = "UPDATE $TABLETRACK_EXERCICES SET session_id = '$new_session_id' WHERE exe_id = $exe_id";
$res = Database::query($sql);
$result_message[$TABLETRACK_EXERCICES]++;
} else {
if(!empty($data['orig_lp_id']) && !empty($data['orig_lp_item_id'])) {
$result_message['TRACK_E_EXERCISES'][$exe_id] = $data;
foreach ($list as $exe_id =>$data) {
if ($update_database) {
$sql = "UPDATE $TABLETRACK_EXERCICES SET session_id = '$new_session_id' WHERE exe_id = $exe_id";
$res = Database::query($sql);
$result_message[$TABLETRACK_EXERCICES]++;
} else {
$result_message['TRACK_E_EXERCISES_IN_LP'][$exe_id] = $data;
if(!empty($data['orig_lp_id']) && !empty($data['orig_lp_item_id'])) {
$result_message['TRACK_E_EXERCISES'][$exe_id] = $data;
} else {
$result_message['TRACK_E_EXERCISES_IN_LP'][$exe_id] = $data;
}
}
}
}
//DESTINY COURSE
@ -175,19 +170,19 @@ if (isset($_REQUEST['load_ajax'])) {
}
if (!empty($list))
foreach ($list as $exe_id =>$data) {
if ($update_database) {
$sql = "UPDATE $TABLETRACK_EXERCICES SET session_id = '$new_session_id' WHERE exe_id = $exe_id";
$res = Database::query($sql);
$result_message[$TABLETRACK_EXERCICES]++;
} else {
if(!empty($data['orig_lp_id']) && !empty($data['orig_lp_item_id'])) {
$result_message_compare['TRACK_E_EXERCISES'][$exe_id] = $data;
foreach ($list as $exe_id =>$data) {
if ($update_database) {
$sql = "UPDATE $TABLETRACK_EXERCICES SET session_id = '$new_session_id' WHERE exe_id = $exe_id";
$res = Database::query($sql);
$result_message[$TABLETRACK_EXERCICES]++;
} else {
$result_message_compare['TRACK_E_EXERCISES_IN_LP'][$exe_id] = $data;
if(!empty($data['orig_lp_id']) && !empty($data['orig_lp_item_id'])) {
$result_message_compare['TRACK_E_EXERCISES'][$exe_id] = $data;
} else {
$result_message_compare['TRACK_E_EXERCISES_IN_LP'][$exe_id] = $data;
}
}
}
}
}
//2.track_e_attempt, track_e_attempt_recording, track_e_downloads
@ -203,17 +198,17 @@ if (isset($_REQUEST['load_ajax'])) {
}
if (!empty($list))
foreach ($list as $id => $data) {
if ($update_database) {
$sql = "UPDATE $TBL_TRACK_E_COURSE_ACCESS SET session_id = '$new_session_id' WHERE course_access_id = $id";
if ($debug) echo $sql;
$res = Database::query($sql);
if ($debug) var_dump($res);
$result_message[$TBL_TRACK_E_COURSE_ACCESS]++;
} else {
//$result_message[$TBL_TRACK_E_COURSE_ACCESS][$id] = $data;
foreach ($list as $id => $data) {
if ($update_database) {
$sql = "UPDATE $TBL_TRACK_E_COURSE_ACCESS SET session_id = '$new_session_id' WHERE course_access_id = $id";
if ($debug) echo $sql;
$res = Database::query($sql);
if ($debug) var_dump($res);
$result_message[$TBL_TRACK_E_COURSE_ACCESS]++;
} else {
//$result_message[$TBL_TRACK_E_COURSE_ACCESS][$id] = $data;
}
}
}
//4. track_e_lastaccess
@ -224,18 +219,18 @@ if (isset($_REQUEST['load_ajax'])) {
$list[] = $row['access_id'];
}
if (!empty($list))
foreach ($list as $id) {
if ($update_database) {
$sql = "UPDATE $TBL_TRACK_E_LAST_ACCESS SET access_session_id = '$new_session_id' WHERE access_id = $id";
if ($debug) echo $sql;
$res = Database::query($sql);
if ($debug) var_dump($res);
$result_message[$TBL_TRACK_E_LAST_ACCESS]++;
foreach ($list as $id) {
if ($update_database) {
$sql = "UPDATE $TBL_TRACK_E_LAST_ACCESS SET access_session_id = '$new_session_id' WHERE access_id = $id";
if ($debug) echo $sql;
$res = Database::query($sql);
if ($debug) var_dump($res);
$result_message[$TBL_TRACK_E_LAST_ACCESS]++;
}
}
}
//5. lp_item_view
//CHECK ORIGIN
//CHECK ORIGIN
$sql = "SELECT * FROM $TBL_LP_VIEW WHERE user_id = $user_id AND session_id = $origin_session_id AND c_id = $course_id ";
$res = Database::query($sql);
@ -253,44 +248,44 @@ if (isset($_REQUEST['load_ajax'])) {
}
if (!empty($list))
foreach ($list as $id=>$data) {
if ($update_database) {
$sql = "UPDATE $TBL_LP_VIEW SET session_id = '$new_session_id' WHERE c_id = $course_id AND id = $id ";
if ($debug) var_dump($sql);
$res = Database::query($sql);
if ($debug) var_dump($res);
$result_message[$TBL_LP_VIEW]++;
} else {
//Getting all information of that lp_item_id
$score = Tracking::get_avg_student_score($user_id, $origin_course_code, array($data['lp_id']),$origin_session_id);
$progress = Tracking::get_avg_student_progress($user_id, $origin_course_code, array($data['lp_id']),$origin_session_id);
$result_message['LP_VIEW'][$data['lp_id']] = array('score' => $score, 'progress' =>$progress);
foreach ($list as $id=>$data) {
if ($update_database) {
$sql = "UPDATE $TBL_LP_VIEW SET session_id = '$new_session_id' WHERE c_id = $course_id AND id = $id ";
if ($debug) var_dump($sql);
$res = Database::query($sql);
if ($debug) var_dump($res);
$result_message[$TBL_LP_VIEW]++;
} else {
//Getting all information of that lp_item_id
$score = Tracking::get_avg_student_score($user_id, $origin_course_code, array($data['lp_id']),$origin_session_id);
$progress = Tracking::get_avg_student_progress($user_id, $origin_course_code, array($data['lp_id']),$origin_session_id);
$result_message['LP_VIEW'][$data['lp_id']] = array('score' => $score, 'progress' =>$progress);
}
}
}
//CHECk DESTINY
if (!$update_database) {
$sql = "SELECT * FROM $TBL_LP_VIEW WHERE user_id = $user_id AND session_id = $new_session_id AND c_id = $course_id";
$res = Database::query($sql);
$sql = "SELECT * FROM $TBL_LP_VIEW WHERE user_id = $user_id AND session_id = $new_session_id AND c_id = $course_id";
$res = Database::query($sql);
//Getting the list of LPs in the new session
$lp_list = new LearnpathList($user_id, $origin_course_code, $new_session_id);
$flat_list = $lp_list->get_flat_list();
//Getting the list of LPs in the new session
$lp_list = new LearnpathList($user_id, $origin_course_code, $new_session_id);
$flat_list = $lp_list->get_flat_list();
$list = array();
while($row = Database::fetch_array($res,'ASSOC')) {
//Checking if the LP exist in the new session
if (in_array($row['lp_id'], array_keys($flat_list))) {
$list[$row['id']] = $row;
}
$list = array();
while($row = Database::fetch_array($res,'ASSOC')) {
//Checking if the LP exist in the new session
if (in_array($row['lp_id'], array_keys($flat_list))) {
$list[$row['id']] = $row;
}
if (!empty($list))
}
if (!empty($list))
foreach ($list as $id=>$data) {
//Getting all information of that lp_item_id
$score = Tracking::get_avg_student_score($user_id, $origin_course_code, array($data['lp_id']), $new_session_id);
$progress = Tracking::get_avg_student_progress($user_id, $origin_course_code, array($data['lp_id']), $new_session_id);
$result_message_compare['LP_VIEW'][$data['lp_id']] = array('score' => $score, 'progress' =>$progress);
//Getting all information of that lp_item_id
$score = Tracking::get_avg_student_score($user_id, $origin_course_code, array($data['lp_id']), $new_session_id);
$progress = Tracking::get_avg_student_progress($user_id, $origin_course_code, array($data['lp_id']), $new_session_id);
$result_message_compare['LP_VIEW'][$data['lp_id']] = array('score' => $score, 'progress' =>$progress);
}
}
@ -301,8 +296,8 @@ if (isset($_REQUEST['load_ajax'])) {
$sql = "SELECT ref FROM $TBL_ITEM_PROPERTY WHERE tool = 'calendar_event' AND insert_user_id = $user_id AND c_id = $course_id ";
$res = Database::query($sql);
while($row = Database::fetch_array($res,'ASSOC')) {
$id = $row['ref'];
if ($update_database) {
$id = $row['ref'];
if ($update_database) {
$sql = "UPDATE $TBL_AGENDA SET session_id = '$new_session_id' WHERE c_id = $course_id AND id = $id ";
if ($debug) var_dump($sql);
$res_update = Database::query($sql);
@ -360,13 +355,13 @@ if (isset($_REQUEST['load_ajax'])) {
if ($update_database) {
$dir_name = substr($parent_data['url'], 1);
$created_dir = create_unexisting_work_directory($base_work_dir, $dir_name);
$created_dir = '/'.$created_dir;
$now = api_get_utc_datetime();
//Creating directory
$sql_add_publication = "INSERT INTO " . $TBL_STUDENT_PUBLICATION . " SET " .
"url = '".$created_dir."',
$dir_name = substr($parent_data['url'], 1);
$created_dir = create_unexisting_work_directory($base_work_dir, $dir_name);
$created_dir = '/'.$created_dir;
$now = api_get_utc_datetime();
//Creating directory
$sql_add_publication = "INSERT INTO " . $TBL_STUDENT_PUBLICATION . " SET " .
"url = '".$created_dir."',
c_id = '".$course_id."',
title = '".$parent_data['title']."',
description = '".$parent_data['description']." folder_moved_from_session_id_$origin_session_id ',
@ -380,15 +375,15 @@ if (isset($_REQUEST['load_ajax'])) {
qualificator_id = '',
date_of_qualification = '0000-00-00 00:00:00',
session_id = ".$new_session_id;
$rest_insert = Database::query($sql_add_publication);
if ($debug) echo ($sql_add_publication);
// add the directory
$id = Database::insert_id();
//Folder created
api_item_property_update($course_info, 'work', $id, 'DirectoryCreated', api_get_user_id());
if ($debug) var_dump($rest_insert);
$new_parent_id = $id;
$result_message[$TBL_STUDENT_PUBLICATION.' - new folder created called: '.$created_dir]++;
$rest_insert = Database::query($sql_add_publication);
if ($debug) echo ($sql_add_publication);
// add the directory
$id = Database::insert_id();
//Folder created
api_item_property_update($course_info, 'work', $id, 'DirectoryCreated', api_get_user_id());
if ($debug) var_dump($rest_insert);
$new_parent_id = $id;
$result_message[$TBL_STUDENT_PUBLICATION.' - new folder created called: '.$created_dir]++;
}
}
@ -411,10 +406,10 @@ if (isset($_REQUEST['load_ajax'])) {
$id = Database::insert_id();
$sql_update = "UPDATE " . $TBL_STUDENT_PUBLICATION . " SET " .
"has_properties = '".$id."',
"has_properties = '".$id."',
view_properties = '1'
WHERE id = ".$new_parent_id;
if ($debug) echo $sql_update;
if ($debug) echo $sql_update;
$rest_update = Database::query($sql_update);
@ -429,7 +424,7 @@ if (isset($_REQUEST['load_ajax'])) {
if ($update_database) {
//Creating a new work
$sql_add_publication = "INSERT INTO " . $TBL_STUDENT_PUBLICATION . " SET " .
"url = '" . $new_url . "',
"url = '" . $new_url . "',
c_id = '".$course_id."',
title = '" . $data['title']. "',
description = '" . $data['description'] . " file moved',
@ -480,7 +475,7 @@ if (isset($_REQUEST['load_ajax'])) {
if ($update_database) {
$sql = "UPDATE $TBL_DROPBOX_FILE SET session_id = '$new_session_id' WHERE c_id = $course_id AND id = $id";
if ($debug) var_dump($sql);
$res = Database::query($sql);
$res = Database::query($sql);
if ($debug) var_dump($res);
$sql = "UPDATE $TBL_DROPBOX_POST SET session_id = '$new_session_id' WHERE file_id = $id";
@ -506,47 +501,47 @@ if (isset($_REQUEST['load_ajax'])) {
if ($debug) var_dump($sql);
$res = Database::query($sql);
if ($debug) var_dump($res);
}
}
}
if ($update_database) {
echo '<h2>'.get_lang('StatsMoved').'</h2>';
if (is_array($result_message))
if (is_array($result_message))
foreach ($result_message as $table=>$times) {
echo 'Table '.$table.' - '.$times.' records updated <br />';
}
} else {
echo '<h2>'.get_lang('UserInformationOfThisCourse').'</h2>';
echo '<h2>'.get_lang('UserInformationOfThisCourse').'</h2>';
echo '<br />';
echo '<table width="100%">';
echo '<tr>';
echo '<td width="50%" valign="top">';
echo '<br />';
echo '<table width="100%">';
echo '<tr>';
echo '<td width="50%" valign="top">';
if ($origin_session_id == 0 ) {
echo '<h4>'.get_lang('OriginCourse').'</h4>';
} else {
echo '<h4>'.get_lang('OriginSession').' #'.$origin_session_id.'</h4>';
}
compare_data($result_message);
echo '</td>';
echo '<td width="50%" valign="top">';
if ($new_session_id == 0 ) {
echo '<h4>'.get_lang('DestinyCourse').'</h4>';
} else {
echo '<h4>'.get_lang('DestinySession').' #'.$new_session_id.'</h4>';
}
compare_data($result_message_compare);
echo '</td>';
echo '</tr>';
echo '</table>';
if ($origin_session_id == 0 ) {
echo '<h4>'.get_lang('OriginCourse').'</h4>';
} else {
echo '<h4>'.get_lang('OriginSession').' #'.$origin_session_id.'</h4>';
}
compare_data($result_message);
echo '</td>';
echo '<td width="50%" valign="top">';
if ($new_session_id == 0 ) {
echo '<h4>'.get_lang('DestinyCourse').'</h4>';
} else {
echo '<h4>'.get_lang('DestinySession').' #'.$new_session_id.'</h4>';
}
compare_data($result_message_compare);
echo '</td>';
echo '</tr>';
echo '</table>';
}
} else {
echo get_lang('CourseDoesNotExistInThisSession');
}
}
} else {
echo get_lang('ThereWasAnError');
echo get_lang('ThereWasAnError');
}
exit;
}
@ -589,7 +584,7 @@ $htmlHeadXtra[] = '<script type="text/javascript">
function get_courses_list_by_user_id_based_in_exercises($user_id) {
$TABLETRACK_EXERCICES = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$user_id = intval($user_id);
//$sql = "SELECT DISTINCT exe_user_id, exe_cours_id as code, session_id as id_session FROM $TABLETRACK_EXERCICES WHERE exe_user_id = $user_id GROUP BY exe_user_id, exe_cours_id ORDER by exe_user_id, exe_cours_id ASC";
//$sql = "SELECT DISTINCT exe_user_id, exe_cours_id as code, session_id as id_session FROM $TABLETRACK_EXERCICES WHERE exe_user_id = $user_id GROUP BY exe_user_id, exe_cours_id ORDER by exe_user_id, exe_cours_id ASC";
$sql = "SELECT DISTINCT exe_user_id, exe_cours_id as code, session_id as id_session FROM $TABLETRACK_EXERCICES WHERE exe_user_id = $user_id ORDER by exe_user_id, exe_cours_id ASC";
$res = Database::query($sql);
@ -624,7 +619,7 @@ $navigation = "$begin - $end / $count<br />";
if ($page > 1) {
$navigation .='<a href="'.api_get_self().'?page='.($page - 1).'">'.get_lang('Previous').'</a>';
} else {
$navigation .= get_lang('Previous');
$navigation .= get_lang('Previous');
}
$navigation .= '&nbsp;';
$page ++;
@ -639,7 +634,7 @@ $session_list = SessionManager::get_sessions_list(array(),array('name'));
$options = '';
$options .= '<option value="0">--'.get_lang('SelectASession').'--</option>';
foreach ($session_list as $session_data) {
$my_session_list[$session_data['id']] =$session_data['name'];
$my_session_list[$session_data['id']] =$session_data['name'];
$options .= '<option value="'.$session_data['id'].'">'.$session_data['name'].'</option>';
}
@ -647,18 +642,20 @@ $combinations = array();
if (!empty($user_list)) {
foreach ($user_list as $user) {
$user_id = $user['user_id'];
//if ($user_id != 78 ) continue;
$name = $user['firstname'].' '.$user['lastname'];
$course_list_registered = CourseManager::get_courses_list_by_user_id($user_id, true, false);
$course_list_registered = CourseManager::get_courses_list_by_user_id(
$user_id,
true,
false
);
$new_course_list = array();
foreach ($course_list_registered as $course_reg) {
if (empty($course_reg['id_session'])) {
$course_reg['id_session'] = 0;
$course_reg['id_session'] = 0;
}
$new_course_list[] = $course_reg['code'].'_'.$course_reg['id_session'];
$new_course_list[] = $course_reg['code'].'_'.$course_reg['id_session'];
}
$course_list = get_courses_list_by_user_id_based_in_exercises($user_id);
@ -666,35 +663,40 @@ if (!empty($user_list)) {
if (is_array($course_list) && !empty($course_list)) {
foreach ($course_list as $my_course) {
$key = $my_course['code'].'_'.$my_course['id_session'];
if(!in_array($key,$new_course_list)) {
if (!in_array($key, $new_course_list)) {
$my_course['not_registered'] = 1;
$course_list_registered[] = $my_course;
}
$course_list_registered[] = $my_course;
}
}
}
foreach ($course_list_registered as & $course) {
$courseInfo = api_get_course_info($course['code']);
$course['name'] = $courseInfo['name'];
}
$course_list = $course_list_registered;
echo '<div>';
echo '<table class="data_table">';
echo '<tr>';
echo '<th style="text-align:left;" colspan="'.count($course_list).'">';
echo "<h3>$name #$user_id </h3> ";
echo '</th>';
echo '</tr>';
echo '<tr>';
echo '<th style="text-align:left;" colspan="'.count($course_list).'">';
echo "<h3>$name #$user_id </h3> ";
echo '</th>';
echo '</tr>';
if (!empty($course_list)) {
echo '<tr>';
foreach ($course_list as $course) {
echo '<td>';
if (isset($course['id_session']) && !empty($course['id_session'])) {
echo '<b>'.get_lang('SessionName').'</b> '.$my_session_list[$course['id_session']].'<br />';
echo '<b>'.get_lang('SessionName').'</b> '.$my_session_list[$course['id_session']].'<br />';
}
echo $course['title'];
echo $course['name'];
echo ' ('.$course['code'].') ';
if (isset($course['not_registered']) && !empty($course['not_registered'])) {
echo ' <i>'.get_lang('UserNotRegistered').'</i>';
echo ' <i>'.get_lang('UserNotRegistered').'</i>';
}
echo '</td>';
}
@ -704,9 +706,9 @@ if (!empty($user_list)) {
foreach ($course_list as $course) {
$course_code = $course['code'];
if (empty($course['id_session'])) {
$session_id = 0;
$session_id = 0;
} else {
$session_id = $course['id_session'];
$session_id = $course['id_session'];
}
echo '<td>';
echo get_lang('MoveTo'); echo '<br />';
@ -725,7 +727,7 @@ if (!empty($user_list)) {
echo '</tr>';
} else {
echo '<td>';
echo get_lang('NoCoursesForThisUser');
echo get_lang('NoCoursesForThisUser');
echo '</td>';
}
@ -735,5 +737,3 @@ if (!empty($user_list)) {
}
echo $navigation;
$_SESSION['combination'] = $combinations;

@ -1917,6 +1917,13 @@ class CourseManager
}
}
/**
* @param int $session_id
* @param string $course_code
* @param string $separator
* @param bool $add_link_to_profile
* @return null|string
*/
public static function get_coachs_from_course_to_string(
$session_id = 0,
$course_code = null,
@ -1943,6 +1950,11 @@ class CourseManager
return $coaches_to_string;
}
/**
* @param string $course_code
* @param int $session_id
* @return string
*/
public static function get_coach_list_from_course_code_to_string($course_code, $session_id)
{
$tutor_data = '';
@ -1960,11 +1972,13 @@ class CourseManager
}
/**
* Return user info array of all users registered in the specified course
* this includes the users of the course itsel and the users of all linked courses.
* Return user info array of all users registered in the specified course
* this includes the users of the course itself and the users of all linked courses.
*
* @param array $course_info
* @return array with user info
* @param string $course_code
* @param bool $with_sessions
* @param int $session_id
* @return array with user info
*/
public static function get_real_and_linked_user_list($course_code, $with_sessions = true, $session_id = 0)
{
@ -1991,14 +2005,14 @@ class CourseManager
}
/**
* Return an array of arrays, listing course info of all courses in the list
* linked to the real course $real_course_code, to which the user $user_id is subscribed.
* Return an array of arrays, listing course info of all courses in the list
* linked to the real course $real_course_code, to which the user $user_id is subscribed.
*
* @param $user_id, the id (int) of the user
* @param $real_course_code, the id (char) of the real course
* @param $user_id, the id (int) of the user
* @param $real_course_code, the id (char) of the real course
*
* @return array of course info arrays
* @deprecated virtual course feature is not supported
* @return array of course info arrays
* @deprecated virtual course feature is not supported
*/
public static function get_list_of_virtual_courses_for_specific_user_and_real_course($user_id, $course_code)
{
@ -2027,9 +2041,9 @@ class CourseManager
/**
* Get the list of groups from the course
* @param string Course code
* @param int Session ID (optional)
* @param boolean get empty groups (optional)
* @param string $course_code
* @param int $session_id Session ID (optional)
* @param boolean $in_get_empty_group get empty groups (optional)
* @return array List of groups info
*/
public static function get_group_list_of_course($course_code, $session_id = 0, $in_get_empty_group = 0)
@ -2482,10 +2496,12 @@ class CourseManager
$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.'"';
$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.'"';
$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;
@ -2610,7 +2626,11 @@ class CourseManager
}
}
public static function get_special_course_list() {
/**
* @return array
*/
public static function get_special_course_list()
{
$tbl_course_field = Database :: get_main_table(TABLE_MAIN_COURSE_FIELD);
$tbl_course_field_value = Database :: get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES);
@ -2643,12 +2663,13 @@ class CourseManager
/**
* Get list of courses for a given user
* @param int user ID
* @param boolean Whether to include courses from session or not
* @param int $user_id
* @param boolean $include_sessions Whether to include courses from session or not
* @return array List of codes and db names
* @author isaac flores paz
*/
public static function get_courses_list_by_user_id($user_id, $include_sessions = false) {
public static function get_courses_list_by_user_id($user_id, $include_sessions = false)
{
$user_id = intval($user_id);
$course_list = array();
$codes = array();
@ -2712,6 +2733,7 @@ class CourseManager
}
}
}
return $course_list;
}
@ -2876,7 +2898,8 @@ class CourseManager
}
/**
* Update course attributes. Will only update attributes with a non-empty value. Note that you NEED to check that your attributes are valid before using this function
* Update course attributes. Will only update attributes with a non-empty value.
* Note that you NEED to check that your attributes are valid before using this function
*
* @param int Course id
* @param array Associative array with field names as keys and field values as values
@ -3014,9 +3037,10 @@ class CourseManager
$extra_fields = array();
while($rowcf = Database::fetch_array($res_field)) {
$extra_field_id = $rowcf['id'];
$sql_field_value = "SELECT field_value FROM $tbl_course_field_value WHERE course_code = '$code' AND field_id = '$extra_field_id' ";
$res_field_value = Database::query($sql_field_value);
if(Database::num_rows($res_field_value) > 0 ) {
$sql = "SELECT field_value FROM $tbl_course_field_value
WHERE course_code = '$code' AND field_id = '$extra_field_id'";
$res_field_value = Database::query($sql);
if (Database::num_rows($res_field_value) > 0 ) {
$r_field_value = Database::fetch_row($res_field_value);
$rowcf['extra_field_value'] = $r_field_value[0];
}
@ -3042,8 +3066,9 @@ class CourseManager
if(!$row) {
return null;
} else {
$sql_field_value = "SELECT field_value FROM $tbl_course_field_value WHERE course_code = '$code' AND field_id = '{$row->id}';";
$res_field_value = Database::query($sql_field_value);
$sql = "SELECT field_value FROM $tbl_course_field_value
WHERE course_code = '$code' AND field_id = '{$row->id}';";
$res_field_value = Database::query($sql);
$row_field_value = Database::fetch_object($res_field_value);
if(!$row_field_value) {
return null;
@ -3199,9 +3224,12 @@ class CourseManager
//Deleting assigned courses to hrm_id
if ($_configuration['multiple_access_urls']) {
$sql = "SELECT s.course_code FROM $tbl_course_rel_user s INNER JOIN $tbl_course_rel_access_url a ON (a.course_code = s.course_code) WHERE user_id = $hr_manager_id AND relation_type=".COURSE_RELATION_TYPE_RRHH." AND access_url_id = ".api_get_current_access_url_id()."";
$sql = "SELECT s.course_code FROM $tbl_course_rel_user s
INNER JOIN $tbl_course_rel_access_url a ON (a.course_code = s.course_code)
WHERE user_id = $hr_manager_id AND relation_type=".COURSE_RELATION_TYPE_RRHH." AND access_url_id = ".api_get_current_access_url_id()."";
} else {
$sql = "SELECT course_code FROM $tbl_course_rel_user WHERE user_id = $hr_manager_id AND relation_type=".COURSE_RELATION_TYPE_RRHH." ";
$sql = "SELECT course_code FROM $tbl_course_rel_user
WHERE user_id = $hr_manager_id AND relation_type=".COURSE_RELATION_TYPE_RRHH." ";
}
$result = Database::query($sql);
if (Database::num_rows($result) > 0) {
@ -3574,10 +3602,10 @@ class CourseManager
public static function display_special_courses($user_id, $load_dirs = false)
{
$user_id = intval($user_id);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$special_course_list = self::get_special_course_list();
$special_course_list = self::get_special_course_list();
$with_special_courses = $without_special_courses = '';
if (!empty($special_course_list)) {
@ -3589,7 +3617,8 @@ class CourseManager
$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'
LEFT JOIN $tbl_course_user course_rel_user
ON course.code = course_rel_user.course_code AND course_rel_user.user_id = '$user_id'
WHERE $with_special_courses group by course.code";
$rs_special_course = Database::query($sql);
@ -3604,8 +3633,6 @@ class CourseManager
}
$params = array();
// Get notifications.
//$course['id_session'] = null;
//$course['status'] = $course['status'];
$course_info['id_session'] = null;
$course_info['status'] = $course['status'];
@ -3665,6 +3692,7 @@ class CourseManager
}
}
}
return $html;
}
@ -3703,6 +3731,7 @@ class CourseManager
// Step 2: We display the course without a user category.
$html .= self :: display_courses_in_category(0, $load_dirs);
return $html;
}
@ -3717,10 +3746,10 @@ class CourseManager
{
$user_id = api_get_user_id();
// Table definitions
$TABLECOURS = Database :: get_main_table(TABLE_MAIN_COURSE);
$TABLECOURSUSER = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$TABLECOURS = Database :: get_main_table(TABLE_MAIN_COURSE);
$TABLECOURSUSER = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$TABLE_ACCESS_URL_REL_COURSE = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$current_url_id = api_get_current_access_url_id();
$current_url_id = api_get_current_access_url_id();
// Get course list auto-register
$special_course_list = self::get_special_course_list();
@ -3763,7 +3792,6 @@ class CourseManager
$html = '';
$course_list = array();
$showCustomIcon = api_get_configuration_value('course_images_in_courses_list');
// Browse through all courses.
@ -3863,6 +3891,7 @@ class CourseManager
}
$html .= self::course_item_html($params, $is_subcontent);
}
return $html;
}
@ -3871,7 +3900,8 @@ class CourseManager
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University
* @return array containing all the titles of the user defined courses with the id as key of the array
*/
function get_user_course_categories() {
public static function get_user_course_categories()
{
global $_user;
$output = array();
$table_category = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
@ -4189,7 +4219,8 @@ class CourseManager
* if the course code doest not exist in the DB the same course code will be returned
* @return string wanted unused code
*/
public static function generate_nice_next_course_code($wanted_code) {
public static function generate_nice_next_course_code($wanted_code)
{
require_once api_get_path(LIBRARY_PATH).'add_course.lib.inc.php';
$course_code_ok = !self::course_code_exists($wanted_code);
if (!$course_code_ok) {
@ -4209,6 +4240,7 @@ class CourseManager
}
return false;
}
return $wanted_code;
}
@ -4260,6 +4292,7 @@ class CourseManager
}
return false;
}
return false;
}
@ -4306,11 +4339,10 @@ class CourseManager
*/
public static function get_user_course_vote($user_id, $course_id, $session_id = null, $url_id = null)
{
$table_user_course_vote = Database::get_main_table(TABLE_MAIN_USER_REL_COURSE_VOTE);
$session_id = !isset($session_id) ? api_get_session_id() : intval($session_id);
$url_id = empty($url_id) ? api_get_current_access_url_id() : intval($url_id);
$table_user_course_vote = Database::get_main_table(TABLE_MAIN_USER_REL_COURSE_VOTE);
$session_id = !isset($session_id) ? api_get_session_id() : intval($session_id);
$url_id = empty($url_id) ? api_get_current_access_url_id() : intval($url_id);
$user_id = intval($user_id);
if (empty($user_id)) {
@ -4324,7 +4356,14 @@ class CourseManager
'url_id' => $url_id
);
$result = Database::select('vote', $table_user_course_vote, array('where' => array('user_id = ? AND c_id = ? AND session_id = ? AND url_id = ?' => $params)), 'first');
$result = Database::select(
'vote',
$table_user_course_vote,
array('where' => array(
'user_id = ? AND c_id = ? AND session_id = ? AND url_id = ?' => $params)
),
'first'
);
if (!empty($result)) {
return $result['vote'];
}
@ -4756,7 +4795,6 @@ class CourseManager
return $row[0];
}
/**
* Get available le courses count
* @param int Access URL ID (optional)
@ -4796,6 +4834,7 @@ class CourseManager
}
$res = Database::query($sql);
$row = Database::fetch_row($res);
return $row[0];
}
@ -4897,22 +4936,27 @@ class CourseManager
// Delete only teacher relations that doesn't match the selected teachers
$cond = null;
if (count($teachers)>0) {
foreach($teachers as $key) {
foreach ($teachers as $key) {
$key = Database::escape_string($key);
$cond.= " AND user_id <> '".$key."'";
}
}
$sql = 'DELETE FROM '.$course_user_table.' WHERE course_code="'.Database::escape_string($course_code).'" AND status="1"'.$cond;
$sql = 'DELETE FROM '.$course_user_table.'
WHERE course_code="'.Database::escape_string($course_code).'" AND status="1"'.$cond;
Database::query($sql);
}
if (count($teachers) > 0) {
foreach ($teachers as $userId) {
$userId = intval($userId);
// We check if the teacher is already subscribed in this course
$sql = 'SELECT 1 FROM '.$course_user_table.' WHERE user_id = "'.$userId.'" AND course_code = "'.$course_code.'" ';
$sql = 'SELECT 1 FROM '.$course_user_table.'
HERE user_id = "'.$userId.'" AND course_code = "'.$course_code.'" ';
$result = Database::query($sql);
if (Database::num_rows($result)) {
$sql = 'UPDATE '.$course_user_table.' SET status = "1" WHERE course_code = "'.$course_code.'" AND user_id = "'.$userId.'" ';
$sql = 'UPDATE '.$course_user_table.' SET status = "1"
WHERE course_code = "'.$course_code.'" AND user_id = "'.$userId.'" ';
} else {
$sql = "INSERT INTO ".$course_user_table . " SET
course_code = '".Database::escape_string($course_code). "',
@ -5011,6 +5055,7 @@ class CourseManager
$pluginCourseSettings
);
}
return $courseSettings;
}
@ -5059,7 +5104,8 @@ class CourseManager
$courseSetting = Database::get_course_table(TABLE_COURSE_SETTING);
$courseId = intval($courseId);
$variable = Database::escape_string($variable);
$sql = "SELECT variable FROM $courseSetting WHERE c_id = $courseId AND variable = '$variable'";
$sql = "SELECT variable FROM $courseSetting
WHERE c_id = $courseId AND variable = '$variable'";
$result = Database::query($sql);
return Database::num_rows($result) > 0;
}
@ -5113,8 +5159,8 @@ class CourseManager
WHERE
course_code = $courseCode AND
session_id = $sessionId AND
login_course_date BETWEEN $startDate AND $endDate
";
login_course_date BETWEEN '$startDate' AND '$endDate'
";
$result = Database::query($sql);
@ -5168,9 +5214,11 @@ class CourseManager
FROM $forum f
where f.c_id = %s and f.session_id = %s";
}
$sql_query = sprintf($sql, $courseId, $sessionId);
$result = Database::query($sql_query);
$sql = sprintf($sql, intval($courseId), intval($sessionId));
$result = Database::query($sql);
$row = Database::fetch_array($result);
return $row['count'];
}

@ -536,15 +536,18 @@ class SessionManager
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$sql = "select count(*) as total_rows
$sessionId = intval($sessionId);
$sql = "SELECT count(*) as total_rows
FROM $tbl_lp_view v
INNER JOIN $tbl_lp l ON l.id = v.lp_id
INNER JOIN $tbl_user u ON u.user_id = v.user_id
INNER JOIN $tbl_course c";
$sql .= ' WHERE v.session_id = ' . $sessionId;
INNER JOIN $tbl_course c
WHERE v.session_id = " . $sessionId;
$result_rows = Database::query($sql);
$row = Database::fetch_array($result_rows);
$num = $row['total_rows'];
return $num;
}
@ -569,7 +572,6 @@ class SessionManager
$course = api_get_course_info_by_id($courseId);
//getting all the students of the course
//we are not using this because it only returns user ids
/* if (empty($sessionId)
@ -604,8 +606,8 @@ class SessionManager
}
$sql = "SELECT u.user_id, u.lastname, u.firstname, u.username, u.email, s.course_code
FROM $session_course_user s
INNER JOIN $user u ON u.user_id = s.id_user
FROM $session_course_user s
INNER JOIN $user u ON u.user_id = s.id_user
$where $order $limit";
$sql_query = sprintf($sql, Database::escape_string($course['code']), $sessionId);
@ -903,19 +905,21 @@ class SessionManager
//total
if ($getAllSessions) {
$sql = "SELECT count(w.id) as count
FROM $workTable w
LEFT JOIN $workTableAssignment a ON (a.publication_id = w.id AND a.c_id = w.c_id)
WHERE w.c_id = %s
AND parent_id = 0
AND active IN (1, 0)";
FROM $workTable w
LEFT JOIN $workTableAssignment a
ON (a.publication_id = w.id AND a.c_id = w.c_id)
WHERE w.c_id = %s
AND parent_id = 0
AND active IN (1, 0)";
} else {
$sql = "SELECT count(w.id) as count
FROM $workTable w
LEFT JOIN $workTableAssignment a ON (a.publication_id = w.id AND a.c_id = w.c_id)
WHERE w.c_id = %s
AND parent_id = 0
AND active IN (1, 0)
AND session_id = %s";
FROM $workTable w
LEFT JOIN $workTableAssignment a
ON (a.publication_id = w.id AND a.c_id = w.c_id)
WHERE w.c_id = %s
AND parent_id = 0
AND active IN (1, 0)
AND session_id = %s";
}
$sql_query = sprintf($sql, $course['real_id'], $sessionId);
@ -928,10 +932,10 @@ class SessionManager
*/
if ($getAllSessions) {
$sql = "SELECT count(distinct page_id) as count FROM $wiki
WHERE c_id = %s";
WHERE c_id = %s";
} else {
$sql = "SELECT count(distinct page_id) as count FROM $wiki
WHERE c_id = %s and session_id = %s";
WHERE c_id = %s and session_id = %s";
}
$sql_query = sprintf($sql, $course['real_id'], $sessionId);
$result = Database::query($sql_query);
@ -945,9 +949,12 @@ class SessionManager
$survey_list = survey_manager::get_surveys($course['code'], $sessionId);
$surveys_total = count($survey_list);
$survey_data = array();
foreach ($survey_list as $survey) {
$user_list = survey_manager::get_people_who_filled_survey($survey['survey_id'], false, $course['real_id']);
$user_list = survey_manager::get_people_who_filled_survey(
$survey['survey_id'],
false,
$course['real_id']
);
foreach ($user_list as $user_id) {
isset($survey_user_list[$user_id]) ? $survey_user_list[$user_id] ++ : $survey_user_list[$user_id] = 1;
}
@ -966,11 +973,11 @@ class SessionManager
foreach ($users as $user) {
//Course description
$sql = "SELECT count(*) as count
FROM $table_stats_access
WHERE access_tool = 'course_description'
AND access_cours_code = '%s'
AND access_session_id = %s
AND access_user_id = %s ";
FROM $table_stats_access
WHERE access_tool = 'course_description'
AND access_cours_code = '%s'
AND access_session_id = %s
AND access_user_id = %s ";
$sql_query = sprintf($sql, $course['code'], $user['id_session'], $user['user_id']);
$result = Database::query($sql_query);
@ -1003,7 +1010,6 @@ class SessionManager
$assignments_progress = 0;
}
//Wiki
//total revisions per user
$sql = "SELECT count(*) as count
@ -1015,12 +1021,12 @@ class SessionManager
$wiki_revisions = $row['count'];
//count visited wiki pages
$sql = "SELECT count(distinct default_value) as count
FROM $table_stats_default
WHERE default_user_id = %s
AND default_cours_code = '%s'
AND default_event_type = 'wiki_page_view'
AND default_value_type = 'wiki_page_id'
AND c_id = %s";
FROM $table_stats_default
WHERE default_user_id = %s
AND default_cours_code = '%s'
AND default_event_type = 'wiki_page_view'
AND default_value_type = 'wiki_page_id'
AND c_id = %s";
$sql_query = sprintf($sql, $user['user_id'], $course['code'], $course['real_id']);
$result = Database::query($sql_query);
$row = Database::fetch_array($result);
@ -1033,7 +1039,6 @@ class SessionManager
$wiki_progress = 0;
}
//Surveys
$surveys_done = (isset($survey_user_list[$user['user_id']]) ? $survey_user_list[$user['user_id']] : 0);
$surveys_left = $surveys_total - $surveys_done;
@ -1113,10 +1118,11 @@ class SessionManager
'surveys_progress' => sprintf($linkSurvey, $surveys_progress . '%'),
);
}
return $table;
}
function get_number_of_tracking_access_overview()
public static function get_number_of_tracking_access_overview()
{
// database table definition
$track_e_course_access = Database :: get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
@ -1130,7 +1136,7 @@ class SessionManager
* @author César Perales <cesar.perales@beeznest.com>, Beeznest Team
* @version Chamilo 1.9.6
*/
static function get_user_data_access_tracking_overview(
public static function get_user_data_access_tracking_overview(
$sessionId,
$courseId,
$studentId = 0,
@ -1163,6 +1169,7 @@ class SessionManager
$is_western_name_order = api_is_western_name_order();
}
$where = null;
if (isset($sessionId) && !empty($sessionId)) {
$where = sprintf(" WHERE a.session_id = %d", $sessionId);
}
@ -1286,7 +1293,8 @@ class SessionManager
if (!$session_name_ok) {
$table = Database::get_main_table(TABLE_MAIN_SESSION);
$session_name = Database::escape_string($session_name);
$sql = "SELECT count(*) as count FROM $table WHERE name LIKE '$session_name%'";
$sql = "SELECT count(*) as count FROM $table
WHERE name LIKE '$session_name%'";
$result = Database::query($sql);
if (Database::num_rows($result) > 0) {
$row = Database::fetch_array($result);
@ -1513,8 +1521,9 @@ class SessionManager
{
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$id_promotion = intval($id_promotion);
$update_sql = "UPDATE $tbl_session SET promotion_id=0 WHERE promotion_id='$id_promotion'";
if (Database::query($update_sql)) {
$sql = "UPDATE $tbl_session SET promotion_id=0
WHERE promotion_id='$id_promotion'";
if (Database::query($sql)) {
return true;
} else {
return false;
@ -1783,18 +1792,19 @@ class SessionManager
if ($updateTotal) {
// Count users in this session-course relation
$sql = "SELECT COUNT(id_user) as nbUsers FROM $table
WHERE
id_session='$sessionId' AND
course_code='$courseCode' AND
status<>2";
$sql = "SELECT COUNT(id_user) as nbUsers
FROM $table
WHERE
id_session='$sessionId' AND
course_code='$courseCode' AND
status<>2";
$result = Database::query($sql);
list($userCount) = Database::fetch_array($result);
// update the session-course relation to add the users total
$sql = "UPDATE $tableSessionCourse SET
nbr_users = $userCount
WHERE id_session='$sessionId' AND course_code = '$courseCode'";
nbr_users = $userCount
WHERE id_session='$sessionId' AND course_code = '$courseCode'";
Database::query($sql);
}
}
@ -2200,7 +2210,8 @@ class SessionManager
$rowsf = Database::fetch_array($ressf);
$tms = time();
$sqlsfv = "SELECT * FROM $t_sfv WHERE session_id = '$session_id' AND field_id = '" . $rowsf['id'] . "' ORDER BY id";
$sqlsfv = "SELECT * FROM $t_sfv
WHERE session_id = '$session_id' AND field_id = '" . $rowsf['id'] . "' ORDER BY id";
$ressfv = Database::query($sqlsfv);
$n = Database::num_rows($ressfv);
if ($n > 1) {
@ -2213,7 +2224,8 @@ class SessionManager
}
$rowsfv = Database::fetch_array($ressfv);
if ($rowsfv['field_value'] != $fvalues) {
$sqlu = "UPDATE $t_sfv SET field_value = '$fvalues', tms = FROM_UNIXTIME($tms) WHERE id = " . $rowsfv['id'];
$sqlu = "UPDATE $t_sfv SET field_value = '$fvalues', tms = FROM_UNIXTIME($tms)
WHERE id = " . $rowsfv['id'];
$resu = Database::query($sqlu);
return($resu ? true : false);
}
@ -2223,7 +2235,8 @@ class SessionManager
//we need to update the current record
$rowsfv = Database::fetch_array($ressfv);
if ($rowsfv['field_value'] != $fvalues) {
$sqlu = "UPDATE $t_sfv SET field_value = '$fvalues', tms = FROM_UNIXTIME($tms) WHERE id = " . $rowsfv['id'];
$sqlu = "UPDATE $t_sfv SET field_value = '$fvalues', tms = FROM_UNIXTIME($tms)
WHERE id = " . $rowsfv['id'];
//error_log('UM::update_extra_field_value: '.$sqlu);
$resu = Database::query($sqlu);
return($resu ? true : false);
@ -2231,10 +2244,9 @@ class SessionManager
return true;
} else {
$sqli = "INSERT INTO $t_sfv (session_id,field_id,field_value,tms) " .
"VALUES ('$session_id'," . $rowsf['id'] . ",'$fvalues',FROM_UNIXTIME($tms))";
//error_log('UM::update_extra_field_value: '.$sqli);
"VALUES ('$session_id'," . $rowsf['id'] . ",'$fvalues',FROM_UNIXTIME($tms))";
$resi = Database::query($sqli);
return($resi ? true : false);
return $resi ? true : false;
}
} else {
return false; //field not found
@ -2561,7 +2573,9 @@ class SessionManager
{
$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);
$id = api_get_current_access_url_id();
$sql = 'SELECT * FROM ' . $tbl_session_category . ' WHERE access_url_id ="' . $id . '" ORDER BY name ASC';
$sql = 'SELECT * FROM ' . $tbl_session_category . '
WHERE access_url_id ="' . $id . '"
ORDER BY name ASC';
$result = Database::query($sql);
if (Database::num_rows($result) > 0) {
$data = Database::store_result($result, 'ASSOC');
@ -2969,7 +2983,8 @@ class SessionManager
// select the courses
$sql = "SELECT * FROM $tbl_course c
INNER JOIN $tbl_session_rel_course src ON c.code = src.course_code
INNER JOIN $tbl_session_rel_course src
ON c.code = src.course_code
WHERE src.id_session = '$session_id' ";
if (!empty($course_name)) {
@ -3276,10 +3291,11 @@ class SessionManager
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT session_rcru.status
FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
WHERE session_rcru.id_user = user.user_id AND
session_rcru.id_session = '" . intval($session_id) . "' AND
session_rcru.course_code ='" . Database::escape_string($course_code) . "' AND
user.user_id = " . intval($user_id);
WHERE
session_rcru.id_user = user.user_id AND
session_rcru.id_session = '" . intval($session_id) . "' AND
session_rcru.course_code ='" . Database::escape_string($course_code) . "' AND
user.user_id = " . intval($user_id);
$result = Database::query($sql);
$status = false;
@ -3308,9 +3324,9 @@ class SessionManager
$sql = "SELECT session_rcru.status
FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
WHERE session_rcru.id_user = user.user_id AND
session_rcru.id_session = '" . intval($session_id) . "' AND
session_rcru.course_code ='" . Database::escape_string($course_code) . "' AND
user.user_id = " . intval($user_id);
session_rcru.id_session = '" . intval($session_id) . "' AND
session_rcru.course_code ='" . Database::escape_string($course_code) . "' AND
user.user_id = " . intval($user_id);
$result = Database::query($sql);
$status = false;
if (Database::num_rows($result)) {
@ -3572,7 +3588,8 @@ class SessionManager
$table_session = Database::get_main_table(TABLE_MAIN_SESSION);
$course_code = Database::escape_string($course_code);
$sql = "SELECT name, s.id
FROM $table_session_course sc INNER JOIN $table_session s ON (sc.id_session = s.id)
FROM $table_session_course sc
INNER JOIN $table_session s ON (sc.id_session = s.id)
WHERE sc.course_code = '$course_code' ";
$result = Database::query($sql);
return Database::store_result($result);
@ -4263,6 +4280,7 @@ class SessionManager
);
}
}
return array_to_string($list, CourseManager::USER_SEPARATOR);
}
@ -4287,6 +4305,7 @@ class SessionManager
$coaches[] = $row['id_user'];
}
}
return $coaches;
}
@ -4924,7 +4943,12 @@ class SessionManager
$sessionList[] = $sessionInfo['session_id'];
}
$userInfo = $data['user_info'];
self::suscribe_sessions_to_hr_manager($userInfo, $sessionList, $sendEmail, $removeOldRelationShips);
self::suscribe_sessions_to_hr_manager(
$userInfo,
$sessionList,
$sendEmail,
$removeOldRelationShips
);
}
}
}
@ -4970,6 +4994,7 @@ class SessionManager
}
}
}
return $message;
}
@ -5211,14 +5236,15 @@ class SessionManager
* @param int $userId The user id
* @return boolean Whether is subscribed
*/
public static function isUserSusbcribedAsStudent($sessionId, $userId) {
public static function isUserSusbcribedAsStudent($sessionId, $userId)
{
$sessionRelUserTable = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$sessionId = intval($sessionId);
$userId = intval($userId);
$sql = "SELECT COUNT(1) AS qty FROM $sessionRelUserTable "
. "WHERE id_session = $sessionId AND id_user = $userId AND relation_type = 0";
$sql = "SELECT COUNT(1) AS qty FROM $sessionRelUserTable
WHERE id_session = $sessionId AND id_user = $userId AND relation_type = 0";
$result = Database::fetch_assoc(Database::query($sql));
@ -5239,9 +5265,6 @@ class SessionManager
if ($sessionInfo['date_start'] == '0000-00-00' && $sessionInfo['date_end'] == '0000-00-00') {
return get_lang('NoTimeLimits');
} else {
$startDate = '';
$endDate = '';
if ($sessionInfo['date_start'] != '0000-00-00') {
$startDate = get_lang('From') . ' ' . api_format_date($sessionInfo['date_start'], DATE_FORMAT_LONG_NO_DAY);
} else {
@ -5301,19 +5324,22 @@ class SessionManager
* Check if the course belongs to the session
* @param int $sessionId The session id
* @param string $courseCode The course code
*
* @return bool
*/
public static function sessionHasCourse($sessionId, $courseCode) {
public static function sessionHasCourse($sessionId, $courseCode)
{
$sessionId = intval($sessionId);
$courseCode = Database::escape_string($courseCode);
$courseTablee = Database::get_main_table(TABLE_MAIN_COURSE);
$courseTable = Database::get_main_table(TABLE_MAIN_COURSE);
$sessionRelCourseTable = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$sql = "SELECT COUNT(1) AS qty FROM $courseTablee c "
. "INNER JOIN $sessionRelCourseTable src "
. "ON c.code = src.course_code "
. "WHERE src.id_session = $sessionId "
. "AND c.code = '$courseCode'";
$sql = "SELECT COUNT(1) AS qty FROM $courseTable c
INNER JOIN $sessionRelCourseTable src
ON c.code = src.course_code
WHERE src.id_session = $sessionId
AND c.code = '$courseCode' ";
$result = Database::query($sql);

Loading…
Cancel
Save