Adding c_id in track_* and session_rel_course and session_rel_course_rel_user tables see BT#5638

skala
Julio Montoya 13 years ago
parent 522e551ad1
commit dad69fb238
  1. 23
      main/admin/add_many_session_to_category.php
  2. 5
      main/admin/calendar.lib.php
  3. 68
      main/admin/career_dashboard.php
  4. 2
      main/admin/course_information.php
  5. 15
      main/admin/inactive_user_list.php
  6. 304
      main/admin/ldap_synchro.php
  7. 7
      main/admin/ldap_users_synchro.php
  8. 20
      main/admin/session_course_list.php
  9. 3
      main/admin/special_exports.php
  10. 9
      main/admin/user_information.php
  11. 2
      main/admin/user_list.php
  12. 50
      main/admin/user_move_stats.php
  13. 2
      main/attendance/attendance_controller.php
  14. 2
      main/attendance/attendance_sheet.php
  15. 6
      main/auth/courses_controller.php
  16. 15
      main/auth/ldap/authldap.php
  17. 4
      main/auth/my_progress.php
  18. 4
      main/auth/shibboleth/lib/shibboleth_session.class.php
  19. 18
      main/calendar/agenda.inc.php
  20. 1
      main/calendar/agenda.php
  21. 2
      main/calendar/allagendas.php
  22. 2
      main/calendar/download.php
  23. 2
      main/calendar/myagenda.inc.php
  24. 4
      main/chat/chat_chat.php
  25. 2
      main/chat/chat_hidden.php
  26. 2
      main/chat/chat_message.php
  27. 15
      main/chat/chat_whoisonline.php
  28. 4
      main/course_home/3column.php
  29. 2
      main/course_home/activity.php
  30. 70
      main/course_home/course_home.php
  31. 2
      main/course_info/download.lib.php
  32. 5
      main/course_info/infocours.php
  33. 5
      main/course_info/legal.php
  34. 11
      main/coursecopy/classes/CourseArchiver.class.php
  35. 11
      main/coursecopy/classes/CourseBuilder.class.php
  36. 140
      main/coursecopy/copy_course_session.php
  37. 3
      main/coursecopy/import_backup.php
  38. 7
      main/document/create_audio.php
  39. 3
      main/document/document.inc.php
  40. 58
      main/document/document.php
  41. 2
      main/document/document_quota.php
  42. 2
      main/document/showinframes.php
  43. 86
      main/dropbox/dropbox_class.inc.php
  44. 33
      main/dropbox/dropbox_functions.inc.php
  45. 7
      main/dropbox/dropbox_init.inc.php
  46. 163
      main/dropbox/dropbox_submit.php
  47. 8
      main/dropbox/index.php
  48. 2
      main/exercice/addlimits.php
  49. 7
      main/exercice/admin.php
  50. 1
      main/exercice/adminhp.php
  51. 16
      main/exercice/exercise.class.php
  52. 13
      main/exercice/exercise.lib.php
  53. 16
      main/exercice/exercise_show.php
  54. 1
      main/exercice/exercise_submit.php
  55. 3
      main/exercice/export/exercise_import.inc.php
  56. 3
      main/exercice/hotpotatoes.lib.php
  57. 8
      main/exercice/question_pool.php
  58. 4
      main/exercice/stats.php
  59. 11
      main/exercice/testcategory.class.php
  60. 4
      main/exercice/upload_exercise.php
  61. 37
      main/forum/forumfunction.inc.php
  62. 36
      main/gradebook/gradebook_add_eval.php
  63. 2
      main/gradebook/gradebook_result.class.php
  64. 5
      main/gradebook/lib/be/result.class.php
  65. 6
      main/gradebook/lib/fe/evalform.class.php
  66. 22
      main/gradebook/lib/gradebook_functions_users.inc.php
  67. 2
      main/group/group_space.php
  68. 6
      main/inc/ajax/course_home.ajax.php
  69. 32
      main/inc/ajax/myspace.ajax.php
  70. 10
      main/inc/lib/announcements.inc.php
  71. 9
      main/inc/lib/attendance.lib.php
  72. 17
      main/inc/lib/auth.lib.php
  73. 11
      main/inc/lib/blog.lib.php
  74. 6
      main/inc/lib/course.class.php
  75. 213
      main/inc/lib/course.lib.php
  76. 2
      main/inc/lib/course_home.lib.php
  77. 14
      main/inc/lib/current_course.class.php
  78. 4
      main/inc/lib/display.lib.php
  79. 8
      main/inc/lib/document.lib.php
  80. 68
      main/inc/lib/events.lib.inc.php
  81. 3
      main/inc/lib/fckeditor/editor/filemanager/connectors/php/commands.php
  82. 3
      main/inc/lib/fckeditor/editor/filemanager/connectors/php/io.php
  83. 15
      main/inc/lib/fckeditor/editor/plugins/ImageManager/Classes/ImageManager.php
  84. 1
      main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/ajax_get_file_listing.php
  85. 3
      main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/inc/class.search.php
  86. 21
      main/inc/lib/fckeditor/editor/plugins/ajaxfilemanager/inc/config.base.php
  87. 2
      main/inc/lib/fckeditor/fcktemplates.xml.php
  88. 2
      main/inc/lib/fileManager.lib.php
  89. 15
      main/inc/lib/groupmanager.lib.php
  90. 12
      main/inc/lib/link.lib.php
  91. 19
      main/inc/lib/login.lib.php
  92. 96
      main/inc/lib/main_api.lib.php
  93. 2
      main/inc/lib/online.inc.php
  94. 320
      main/inc/lib/sessionmanager.lib.php
  95. 21
      main/inc/lib/statistics.lib.php
  96. 5
      main/inc/lib/template.lib.php
  97. 4
      main/inc/lib/thematic.lib.php
  98. 1243
      main/inc/lib/tracking.lib.php
  99. 45
      main/inc/lib/usermanager.lib.php
  100. 42
      main/install/1.10.0/db_main.sql
  101. Some files were not shown because too many files have changed in this diff Show More

@ -9,7 +9,6 @@
$language_file='admin'; $language_file='admin';
// resetting the course id // resetting the course id
$cidReset = true; $cidReset = true;
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
$xajax = new xajax(); $xajax = new xajax();
@ -26,19 +25,14 @@ $interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('PlatformAdm
$interbreadcrumb[] = array('url' => 'session_list.php','name' => get_lang('SessionList')); $interbreadcrumb[] = array('url' => 'session_list.php','name' => get_lang('SessionList'));
// Database Table Definitions // Database Table Definitions
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
// setting the name of the tool // setting the name of the tool
$tool_name= get_lang('SubscribeSessionsToCategory'); $tool_name= get_lang('SubscribeSessionsToCategory');
$id_session=intval($_GET['id_session']); $id_session=intval($_GET['id_session']);
$add_type = 'multiple'; $add_type = 'multiple';
if(isset($_GET['add_type']) && $_GET['add_type']!=''){ if (isset($_GET['add_type']) && $_GET['add_type']!=''){
$add_type = Security::remove_XSS($_REQUEST['add_type']); $add_type = Security::remove_XSS($_REQUEST['add_type']);
} }
@ -52,8 +46,7 @@ if (!api_is_platform_admin() && !api_is_session_admin()) {
$xajax -> processRequests(); $xajax -> processRequests();
$htmlHeadXtra[] = $xajax->getJavascript('../inc/lib/xajax/'); $htmlHeadXtra[] = $xajax->getJavascript('../inc/lib/xajax/');
$htmlHeadXtra[] = ' $htmlHeadXtra[] = '<script>
<script type="text/javascript">
function add_course_to_session (code, content) { function add_course_to_session (code, content) {
document.getElementById("course_to_add").value = ""; document.getElementById("course_to_add").value = "";
document.getElementById("ajax_list_courses_single").innerHTML = ""; document.getElementById("ajax_list_courses_single").innerHTML = "";
@ -99,7 +92,6 @@ if ($_POST['formSent']) {
$session_id = join(',', $SessionCategoryList); $session_id = join(',', $SessionCategoryList);
$sql = "UPDATE $tbl_session SET session_category_id = $Categoryid WHERE id in ($session_id) "; $sql = "UPDATE $tbl_session SET session_category_id = $Categoryid WHERE id in ($session_id) ";
Database::query($sql); Database::query($sql);
//header('Location: session_list.php?id_category='.$Categoryid);
header('Location: add_many_session_to_category.php?id_category='.$Categoryid.'&msg=ok'); header('Location: add_many_session_to_category.php?id_category='.$Categoryid.'&msg=ok');
exit; exit;
} else { } else {
@ -112,11 +104,11 @@ if (isset($_GET['id_category'])) {
$Categoryid = intval($_GET['id_category']); $Categoryid = intval($_GET['id_category']);
} }
if(isset($_GET['msg']) && $_GET['msg']=='error'){ if (isset($_GET['msg']) && $_GET['msg']=='error'){
$errorMsg = get_lang('MsgErrorSessionCategory'); $errorMsg = get_lang('MsgErrorSessionCategory');
} }
if(isset($_GET['msg']) && $_GET['msg']=='ok'){ if (isset($_GET['msg']) && $_GET['msg']=='ok'){
$OkMsg = get_lang('SessionCategoryUpdate'); $OkMsg = get_lang('SessionCategoryUpdate');
} }
@ -127,7 +119,7 @@ Display::display_header($tool_name);
$where =''; $where ='';
$rows_category_session = array(); $rows_category_session = array();
if((isset($_POST['CategorySessionId']) && $_POST['formSent'] == 0) || isset($_GET['id_category']) ) { if ((isset($_POST['CategorySessionId']) && $_POST['formSent'] == 0) || isset($_GET['id_category']) ) {
$where = 'WHERE session_category_id !='.$Categoryid; $where = 'WHERE session_category_id !='.$Categoryid;
$sql = 'SELECT id, name FROM '.$tbl_session .' WHERE session_category_id ='.$Categoryid.' ORDER BY name'; $sql = 'SELECT id, name FROM '.$tbl_session .' WHERE session_category_id ='.$Categoryid.' ORDER BY name';
@ -150,11 +142,11 @@ $rows_session = Database::store_result($result);
<?php echo '<legend>'.$tool_name.'</legend>'; ?> <?php echo '<legend>'.$tool_name.'</legend>'; ?>
<input type="hidden" name="formSent" value="1" /> <input type="hidden" name="formSent" value="1" />
<?php <?php
if(!empty($errorMsg)) { if (!empty($errorMsg)) {
Display::display_error_message($errorMsg); //main API Display::display_error_message($errorMsg); //main API
} }
if(!empty($OkMsg)) { if (!empty($OkMsg)) {
Display::display_confirmation_message($OkMsg); //main API Display::display_confirmation_message($OkMsg); //main API
} }
@ -246,7 +238,6 @@ if(!empty($OkMsg)) {
</select></td> </select></td>
</tr> </tr>
</table> </table>
</form> </form>
<script> <script>
function valide(){ function valide(){

@ -613,8 +613,7 @@ function save_edit_agenda_item($id, $title, $content, $start_date, $end_date)
*/ */
function delete_agenda_item($id) function delete_agenda_item($id)
{ {
global $_course; $_course = api_get_course_info();
$t_agenda = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR); $t_agenda = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
$id = intval($id); $id = intval($id);
$sql = "SELECT * FROM $t_agenda WHERE id = '$id'"; $sql = "SELECT * FROM $t_agenda WHERE id = '$id'";
@ -661,7 +660,6 @@ function display_agenda_items()
{ {
global $select_month, $select_year; global $select_month, $select_year;
global $DaysShort, $DaysLong, $MonthsLong; global $DaysShort, $DaysLong, $MonthsLong;
global $is_courseAdmin;
global $dateFormatLong, $timeNoSecFormat, $charset, $_user, $_course; global $dateFormatLong, $timeNoSecFormat, $charset, $_user, $_course;
$TABLEAGENDA = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR); $TABLEAGENDA = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
@ -971,7 +969,6 @@ function display_one_agenda_item($agenda_id)
{ {
global $select_month, $select_year; global $select_month, $select_year;
global $DaysShort, $DaysLong, $MonthsLong; global $DaysShort, $DaysLong, $MonthsLong;
global $is_courseAdmin;
global $dateFormatLong, $timeNoSecFormat, $charset; global $dateFormatLong, $timeNoSecFormat, $charset;
global $_user; global $_user;

@ -37,8 +37,8 @@ $career = new Career();
$condition = array('status = ?' => 1); $condition = array('status = ?' => 1);
if ($form->validate()) { if ($form->validate()) {
$data = $form->getSubmitValues(); $data = $form->getSubmitValues();
$filter = intval($data['filter']); $filter = intval($data['filter']);
if (!empty($filter)) { if (!empty($filter)) {
$condition = array('status = ? AND id = ? ' => array(1, $filter)); $condition = array('status = ? AND id = ? ' => array(1, $filter));
} }
@ -47,7 +47,7 @@ if ($form->validate()) {
$careers = $career->get_all(array('status = ?' => 1)); //only status =1 $careers = $career->get_all(array('status = ?' => 1)); //only status =1
$career_select_list = array(); $career_select_list = array();
$career_select_list[0] = ' -- '.get_lang('Select').' --'; $career_select_list[0] = ' -- '.get_lang('Select').' --';
foreach ($careers as $item) { foreach ($careers as $item) {
$career_select_list[$item['id']] = $item['name']; $career_select_list[$item['id']] = $item['name'];
} }
@ -59,7 +59,7 @@ $form->addElement('style_submit_button', 'submit', get_lang('Filter'), 'class="s
echo '<div class="actions" style="margin-bottom:20px">'; echo '<div class="actions" style="margin-bottom:20px">';
echo '<a href="../admin/index.php">'.Display::return_icon('back.png', get_lang('BackTo').' '.get_lang('PlatformAdmin'),'',ICON_SIZE_MEDIUM).'</a>'; echo '<a href="../admin/index.php">'.Display::return_icon('back.png', get_lang('BackTo').' '.get_lang('PlatformAdmin'),'',ICON_SIZE_MEDIUM).'</a>';
echo '<a href="careers.php">'.Display::return_icon('career.png',get_lang('Careers'),'',ICON_SIZE_MEDIUM).'</a>'; echo '<a href="careers.php">'.Display::return_icon('career.png',get_lang('Careers'),'',ICON_SIZE_MEDIUM).'</a>';
echo '<a href="promotions.php">'.Display::return_icon('promotion.png',get_lang('Promotions'),'',ICON_SIZE_MEDIUM).'</a>'; echo '<a href="promotions.php">'.Display::return_icon('promotion.png',get_lang('Promotions'),'',ICON_SIZE_MEDIUM).'</a>';
echo '</div>'; echo '</div>';
$form->display(); $form->display();
@ -71,80 +71,78 @@ $i = 0;
$grid_js = ''; $grid_js = '';
$career_array = array(); $career_array = array();
if (!empty($careers)) { if (!empty($careers)) {
foreach($careers as $career_item) { foreach($careers as $career_item) {
$promotion = new Promotion(); $promotion = new Promotion();
//Getting all promotions //Getting all promotions
$promotions = $promotion->get_all_promotions_by_career_id($career_item['id'], 'name DESC'); $promotions = $promotion->get_all_promotions_by_career_id($career_item['id'], 'name DESC');
$career_content = ''; $career_content = '';
$promotion_array = array(); $promotion_array = array();
if (!empty($promotions)) { if (!empty($promotions)) {
foreach($promotions as $promotion_item) { foreach($promotions as $promotion_item) {
if (!$promotion_item['status']) { if (!$promotion_item['status']) {
continue; //avoid status = 0 continue; //avoid status = 0
} }
//Getting all sessions from this promotion //Getting all sessions from this promotion
$sessions = SessionManager::get_all_sessions_by_promotion($promotion_item['id']); $sessions = SessionManager::get_all_sessions_by_promotion($promotion_item['id']);
$session_list = array(); $session_list = array();
foreach($sessions as $session_item) { foreach($sessions as $session_item) {
$course_list = SessionManager::get_course_list_by_session_id($session_item['id']); $course_list = SessionManager::get_course_list_by_session_id($session_item['id']);
$session_list[] = array('data'=>$session_item,'courses'=>$course_list); $session_list[] = array('data'=>$session_item,'courses'=>$course_list);
} }
$promotion_array[$promotion_item['id']] =array('name'=>$promotion_item['name'], 'sessions'=>$session_list); $promotion_array[$promotion_item['id']] =array('name'=>$promotion_item['name'], 'sessions'=>$session_list);
} }
} }
$career_array[$career_item['id']] = array('name'=>$career_item['name'],'promotions'=>$promotion_array); $career_array[$career_item['id']] = array('name'=>$career_item['name'],'promotions'=>$promotion_array);
} }
} }
echo '<table class="data_table">'; echo '<table class="data_table">';
foreach($career_array as $career_id => $data) { foreach($career_array as $career_id => $data) {
$career = $data['name']; $career = $data['name'];
$promotions = $data['promotions']; $promotions = $data['promotions'];
$career = Display::url($career,'careers.php?action=edit&id='.$career_id); $career = Display::url($career,'careers.php?action=edit&id='.$career_id);
$career = Display::tag('h3',$career); $career = Display::tag('h3',$career);
echo '<tr><td style="background-color:#eee" colspan="3">'.$career.'</td></tr>'; echo '<tr><td style="background-color:#eee" colspan="3">'.$career.'</td></tr>';
foreach($promotions as $promotion_id => $promotion) { foreach($promotions as $promotion_id => $promotion) {
$promotion_name = $promotion['name']; $promotion_name = $promotion['name'];
$promotion_url = Display::url($promotion_name,'promotions.php?action=edit&id='.$promotion_id); $promotion_url = Display::url($promotion_name,'promotions.php?action=edit&id='.$promotion_id);
$sessions = $promotion['sessions']; $sessions = $promotion['sessions'];
echo '<tr>'; echo '<tr>';
$count = count($sessions); $count = count($sessions);
$rowspan = ''; $rowspan = '';
if (!empty($count)) { if (!empty($count)) {
$count++; $count++;
$rowspan = 'rowspan="'.$count.'"'; $rowspan = 'rowspan="'.$count.'"';
} }
echo '<td '.$rowspan.'>'; echo '<td '.$rowspan.'>';
//echo $promotion_url; echo Display::tag('h4',$promotion_url);
echo Display::tag('h4',$promotion_url);
echo '</td>'; echo '</td>';
echo '</tr>'; echo '</tr>';
if (!empty($sessions)) if (!empty($sessions))
foreach($sessions as $session) { foreach($sessions as $session) {
$course_list = $session['courses']; $course_list = $session['courses'];
$url = Display::url($session['data']['name'], 'resume_session.php?id_session='.$session['data']['id']); $url = Display::url($session['data']['name'], 'resume_session.php?id_session='.$session['data']['id']);
echo '<tr>'; echo '<tr>';
//Session name //Session name
echo Display::tag('td',$url); echo Display::tag('td',$url);
echo '<td>'; echo '<td>';
//Courses //Courses
echo '<table>'; echo '<table>';
foreach($course_list as $course) { foreach($course_list as $course) {
echo '<tr>'; echo '<tr>';
$url = Display::url($course['title'], api_get_path(WEB_COURSE_PATH).$course['directory'].'/?id_session='.$session['data']['id']);
$url = Display::url($course['title'], api_get_path(WEB_COURSE_PATH).$course['directory'].'/?id_session='.$session['data']['id']);
echo Display::tag('td',$url); echo Display::tag('td',$url);
echo '</tr>'; echo '</tr>';
} }
echo '</table>'; echo '</table>';
echo '</td>'; echo '</td>';
echo '</tr>'; echo '</tr>';
} }
} }
} }
echo '</table>'; echo '</table>';
Display::display_footer(); Display::display_footer();

@ -123,7 +123,7 @@ if (Database::num_rows($res) > 0) {
echo Display::display_warning_message(get_lang('NoUsersInCourse')); echo Display::display_warning_message(get_lang('NoUsersInCourse'));
} }
$session_list = SessionManager::get_session_by_course($course_info['code']); $session_list = SessionManager::get_session_by_course($course_info['real_id']);
$url = api_get_path(WEB_CODE_PATH); $url = api_get_path(WEB_CODE_PATH);
if (!empty($session_list)) { if (!empty($session_list)) {

@ -2,9 +2,9 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
/** /**
@author Andre Boivin base code @author Andre Boivin base code
@author Julio Montoya fixing lot of little details @author Julio Montoya fixing lot of little details
@todo this script is not ready for a production use that's why I'm commenting the function delete_inactive_student @todo this script is not ready for a production use that's why I'm commenting the function delete_inactive_student
* @package chamilo.admin * @package chamilo.admin
* script pour effacer les user inactif depuis x temps * script pour effacer les user inactif depuis x temps
*/ */
@ -14,14 +14,9 @@ $language_file = array ('registration','admin');
$cidReset = true; $cidReset = true;
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
$tbl_stats_access = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_ACCESS);
$this_section = SECTION_PLATFORM_ADMIN; $this_section = SECTION_PLATFORM_ADMIN;
api_protect_admin_script(true); api_protect_admin_script(true);
/**
* Make sure this function is protected because it does NOT check password!
*
*/
/** INIT SECTION /** INIT SECTION
*/ */
@ -30,12 +25,12 @@ Display :: display_header($tool_name, "");
//On sélectionne les user élèves //On sélectionne les user élèves
$sql = "SELECT user_id FROM ".$table_user." user WHERE user.status= '5' ORDER by lastname " ; $sql = "SELECT user_id FROM ".$table_user." user WHERE user.status= '5' ORDER by lastname " ;
$result = Database::query($sql); $result = Database::query($sql);
while($row = Database::fetch_array($result)) { while($row = Database::fetch_array($result)) {
$user_id = $row['user_id']; $user_id = $row['user_id'];
// pour chaque élève, on trouve la dernière connexion // pour chaque élève, on trouve la dernière connexion
//$last_connection_date = UserManager:: delete_inactive_student($user_id, 2, true); //$last_connection_date = UserManager:: delete_inactive_student($user_id, 2, true);
} }
/* FOOTER */ /* FOOTER */
Display :: display_footer(); Display :: display_footer();

@ -1,169 +1,193 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
/** /**
* @package chamilo.admin * @package chamilo.admin
*/ * @deprecated ?
*/
/** /**
* Code * Code
*/ */
exit(); //not yet functional, needs to be revised exit(); //not yet functional, needs to be revised
// name of the language file that needs to be included // name of the language file that needs to be included
$language_file='admin'; $language_file = 'admin';
$cidReset=true; $cidReset = true;
require('../inc/global.inc.php'); require('../inc/global.inc.php');
$libpath = api_get_path(LIBRARY_PATH); $libpath = api_get_path(LIBRARY_PATH);
require_once($libpath.'formvalidator/FormValidator.class.php'); require_once($libpath.'formvalidator/FormValidator.class.php');
require_once($libpath.'usermanager.lib.php'); require_once($libpath.'usermanager.lib.php');
require_once('../auth/ldap/authldap.php'); require_once('../auth/ldap/authldap.php');
$annee_base=date('Y'); $annee_base = date('Y');
// setting the section (for the tabs) // setting the section (for the tabs)
$this_section = SECTION_PLATFORM_ADMIN; $this_section = SECTION_PLATFORM_ADMIN;
//api_protect_admin_script(); // on vire la secu... qui n'a pas lieu d'etre ici (script de synchro) //api_protect_admin_script(); // on vire la secu... qui n'a pas lieu d'etre ici (script de synchro)
// setting breadcrumbs // setting breadcrumbs
$interbreadcrumb[]=array('url' => 'index.php',"name" => get_lang('PlatformAdmin')); $interbreadcrumb[] = array('url' => 'index.php', "name" => get_lang('PlatformAdmin'));
$interbreadcrumb[]=array('url' => api_get_self(),"name" => "Liste des sessions"); $interbreadcrumb[] = array('url' => api_get_self(), "name" => "Liste des sessions");
// Database Table Definitions // Database Table Definitions
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_rel_class = Database::get_main_table(TABLE_MAIN_SESSION_CLASS); $tbl_session_rel_class = Database::get_main_table(TABLE_MAIN_SESSION_CLASS);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_class = Database::get_main_table(TABLE_MAIN_CLASS); $tbl_class = Database::get_main_table(TABLE_MAIN_CLASS);
$tbl_class_user = Database::get_main_table(TABLE_MAIN_CLASS_USER); $tbl_class_user = Database::get_main_table(TABLE_MAIN_CLASS_USER);
$tbl_session_rel_etape = "session_rel_etape"; $tbl_session_rel_etape = "session_rel_etape";
$message=""; $message = "";
$result=Database::query("SELECT id, name FROM $tbl_session"); $result = Database::query("SELECT id, name FROM $tbl_session");
$Sessions=Database::store_result($result); $Sessions = Database::store_result($result);
$result=Database::query($sql); $result = Database::query($sql);
$users=Database::store_result($result); $users = Database::store_result($result);
foreach($Sessions as $session){ foreach ($Sessions as $session) {
$id_session = $session['id']; $id_session = $session['id'];
$name_session = $session['name']; $name_session = $session['name'];
$UserList=array(); $UserList = array();
$UserUpdate=array(); $UserUpdate = array();
$UserAdd=array(); $UserAdd = array();
// Parse des code etape de la session // Parse des code etape de la session
/* /*
$sql = "SELECT id_session, code_etape, etape_description, code_ufr, annee $sql = "SELECT id_session, code_etape, etape_description, code_ufr, annee
FROM $tbl_session_rel_etape FROM $tbl_session_rel_etape
WHERE id_session='$id_session' WHERE id_session='$id_session'
ORDER BY code_ufr, code_etape"; ORDER BY code_ufr, code_etape";
$result = Database::query($sql); $result = Database::query($sql);
*/ */
$ds = ldap_connect($ldap_host, $ldap_port) or die(get_lang('LDAPConnectionError')); $ds = ldap_connect($ldap_host, $ldap_port) or die(get_lang('LDAPConnectionError'));
ldap_set_version($ds); ldap_set_version($ds);
// Import des utilisateurs des etapes dans la session // Import des utilisateurs des etapes dans la session
if ($ds) if ($ds) {
{ $r = false;
$r = false; $res = ldap_handle_bind($ds, $r);
$res = ldap_handle_bind($ds, $r); $UserList = array();
$UserList=array(); if ($result !== false) {
if($result !== false) //while($row = Database::fetch_array($result))
{ //{
//while($row = Database::fetch_array($result)) /*
//{ $annee = $row['annee'];
/* $code_ufr = $row['code_ufr'];
$annee = $row['annee']; $etape = $row['code_etape'];
$code_ufr = $row['code_ufr']; */
$etape = $row['code_etape']; // LDAP Query
*/ // edupersonorgunitdn=ou=12CI1,ou=2006,ou=diploma,o=Paris1,dc=univ-paris1,dc=fr
// LDAP Query //etapescommented
// edupersonorgunitdn=ou=12CI1,ou=2006,ou=diploma,o=Paris1,dc=univ-paris1,dc=fr //$sr = @ ldap_search($ds, "ou=people,$LDAPbasedn", "edupersonorgunitdn=ou=$etape,ou=$annee,ou=diploma,$LDAPbasedn");
//etapescommented $sr = @ ldap_search($ds, $ldap_basedn, '(uid=*)');
//$sr = @ ldap_search($ds, "ou=people,$LDAPbasedn", "edupersonorgunitdn=ou=$etape,ou=$annee,ou=diploma,$LDAPbasedn"); $info = ldap_get_entries($ds, $sr);
$sr = @ ldap_search($ds, $ldap_basedn, '(uid=*)'); for ($key = 0; $key < $info["count"]; $key++) {
$info = ldap_get_entries($ds, $sr); echo "<pre>";
for ($key = 0; $key < $info["count"]; $key ++) print_r($info[$key]);
{ echo "</pre>";
echo "<pre>"; $lastname = api_utf8_decode($info[$key]["sn"][0], api_get_system_encoding());
print_r($info[$key]); $firstname = api_utf8_decode($info[$key]["givenname"][0], api_get_system_encoding());
echo "</pre>"; $email = $info[$key]["mail"][0];
$lastname = api_utf8_decode($info[$key]["sn"][0], api_get_system_encoding()); // Get uid from dn
$firstname = api_utf8_decode($info[$key]["givenname"][0], api_get_system_encoding()); $dn_array = ldap_explode_dn($info[$key]["dn"], 1);
$email = $info[$key]["mail"][0]; $username = $dn_array[0]; // uid is first key
// Get uid from dn $outab[] = $info[$key]["edupersonprimaryaffiliation"][0]; // Ici "student"
$dn_array=ldap_explode_dn($info[$key]["dn"],1); $val = ldap_get_values_len($ds, $sr, "userPassword");
$username = $dn_array[0]; // uid is first key $password = $val[0];
$outab[] = $info[$key]["edupersonprimaryaffiliation"][0]; // Ici "student" // Pour faciliter la gestion on ajoute le code "etape-annee"
$val = ldap_get_values_len($ds, $sr, "userPassword"); $official_code = $etape."-".$annee;
$password = $val[0]; $auth_source = "ldap";
// Pour faciliter la gestion on ajoute le code "etape-annee" // Pas de date d'expiration d'etudiant (a recuperer par rapport au shadow expire LDAP)
$official_code=$etape."-".$annee; $expiration_date = '0000-00-00 00:00:00';
$auth_source="ldap"; $active = 1;
// Pas de date d'expiration d'etudiant (a recuperer par rapport au shadow expire LDAP) // Ajout de l'utilisateur
$expiration_date='0000-00-00 00:00:00'; if (UserManager::is_username_available($username)) {
$active=1; $user_id = UserManager::create_user(
// Ajout de l'utilisateur $firstname,
if (UserManager::is_username_available($username)) { $lastname,
$user_id = UserManager::create_user($firstname,$lastname,$status,$email,$username,$password,$official_code,api_get_setting('platformLanguage'),$phone,$picture_uri,$auth_source,$expiration_date,$active); $status,
$UserAdd[]=$user_id; $email,
} else { $username,
$user = UserManager::get_user_info($username); $password,
$user_id=$user['user_id']; $official_code,
UserManager::update_user($user_id, $firstname, $lastname, $username, null, null, $email, $status, $official_code, $phone, $picture_uri, $expiration_date, $active); api_get_setting('platformLanguage'),
$UserUpdate[]=$user_id; $phone,
} $picture_uri,
$UserList[]=$user_id; $auth_source,
} $expiration_date,
//} $active
} );
if (isset($included) && ($included)) $UserAdd[] = $user_id;
{ } else {
$message .= "> $name_session: ".count($UserAdd)." ".get_lang('Added').' '.get_lang('And').' '.count($UserUpdate).' '.get_lang('Modified').'<br/>'; $user = UserManager::get_user_info($username);
} $user_id = $user['user_id'];
else UserManager::update_user(
{ $user_id,
print "> $name_session: ".count($UserAdd).get_lang('Added').' '.get_lang('And').' '.count($UserUpdate).' '.get_lang('Modified')."\n"; $firstname,
} $lastname,
$username,
null,
null,
$email,
$status,
$official_code,
$phone,
$picture_uri,
$expiration_date,
$active
);
$UserUpdate[] = $user_id;
}
$UserList[] = $user_id;
}
//}
}
if (isset($included) && ($included)) {
$message .= "> $name_session: ".count($UserAdd)." ".get_lang('Added').' '.get_lang('And').' '.count(
$UserUpdate
).' '.get_lang('Modified').'<br/>';
} else {
print "> $name_session: ".count($UserAdd).get_lang('Added').' '.get_lang('And').' '.count(
$UserUpdate
).' '.get_lang('Modified')."\n";
}
// Une fois les utilisateurs importer dans la base des utilisateurs, on peux les affecter a<EFBFBD> la session // Une fois les utilisateurs importer dans la base des utilisateurs, on peux les affecter a<EFBFBD> la session
$result=Database::query("SELECT course_code FROM $tbl_session_rel_course " . $result = Database::query("SELECT c_id FROM $tbl_session_rel_course WHERE id_session='$id_session'");
"WHERE id_session='$id_session'"); $CourseList = array();
$CourseList=array(); while ($row = Database::fetch_array($result)) {
while($row=Database::fetch_array($result)) $CourseList[] = $row['c_id'];
{ }
$CourseList[]=$row['course_code']; foreach ($CourseList as $courseId) {
} // On ajoute la relation entre l'utilisateur et le cours
foreach($CourseList as $enreg_course) foreach ($UserList as $enreg_user) {
{ Database::query(
// On ajoute la relation entre l'utilisateur et le cours "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session,c_id,id_user) VALUES('$id_session','$courseId','$enreg_user')"
foreach($UserList as $enreg_user) );
{ }
Database::query("INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session,course_code,id_user) VALUES('$id_session','$enreg_course','$enreg_user')"); $sql = "SELECT COUNT(id_user) as nbUsers ".
} "FROM $tbl_session_rel_course_rel_user ".
$sql = "SELECT COUNT(id_user) as nbUsers " . "WHERE id_session='$id_session' AND c_id='$courseId'";
"FROM $tbl_session_rel_course_rel_user " . $rs = Database::query($sql);
"WHERE id_session='$id_session' AND course_code='$enreg_course'"; list($nbr_users) = Database::fetch_array($rs);
$rs = Database::query($sql); $sql = "UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users WHERE id_session='$id_session' AND c_id='$courseId'";
list($nbr_users) = Database::fetch_array($rs); Database::query($sql);
$sql = "UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users WHERE id_session='$id_session' AND course_code='$enreg_course'"; }
Database::query($sql); // On ajoute la relation entre l'utilisateur et la session
} foreach ($UserList as $enreg_user) {
// On ajoute la relation entre l'utilisateur et la session $sql = "INSERT IGNORE INTO $tbl_session_rel_user(id_session, id_user) ".
foreach($UserList as $enreg_user){ "VALUES('$id_session','$enreg_user')";
$sql = "INSERT IGNORE INTO $tbl_session_rel_user(id_session, id_user) " . Database::query($sql);
"VALUES('$id_session','$enreg_user')"; }
Database::query($sql); $sql = "SELECT COUNT(id_user) as nbUsers ".
} "FROM $tbl_session_rel_user ".
$sql = "SELECT COUNT(id_user) as nbUsers " . "WHERE id_session='$id_session' AND relation_type<>".SESSION_RELATION_TYPE_RRHH."";
"FROM $tbl_session_rel_user " . $rs = Database::query($sql);
"WHERE id_session='$id_session' AND relation_type<>".SESSION_RELATION_TYPE_RRHH.""; list($nbr_users) = Database::fetch_array($rs);
$rs = Database::query($sql); $sql = "UPDATE $tbl_session SET nbr_users=$nbr_users WHERE id='$id_session'";
list($nbr_users) = Database::fetch_array($rs); Database::query($sql);
$sql = "UPDATE $tbl_session SET nbr_users=$nbr_users WHERE id='$id_session'"; }
Database::query($sql); }
}
}
?>

@ -2,6 +2,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
/** /**
* @package chamilo.admin * @package chamilo.admin
* @deprecated ?
*/ */
/** /**
* Code * Code
@ -28,14 +29,8 @@ $interbreadcrumb[]=array('url' => api_get_self(),"name" => get_lang('SessionsLis
// Database Table Definitions // Database Table Definitions
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_rel_class = Database::get_main_table(TABLE_MAIN_SESSION_CLASS);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_class = Database::get_main_table(TABLE_MAIN_CLASS);
$tbl_class_user = Database::get_main_table(TABLE_MAIN_CLASS_USER);
$tbl_session_rel_etape = "session_rel_etape"; $tbl_session_rel_etape = "session_rel_etape";

@ -47,9 +47,9 @@ if ($action == 'delete') {
} }
$idChecked = $my_temp; $idChecked = $my_temp;
$idChecked="'".implode("','", $idChecked)."'"; $idChecked="'".implode("','", $idChecked)."'";
Database::query("DELETE FROM $tbl_session_rel_course WHERE id_session='$id_session' AND course_code IN($idChecked)"); Database::query("DELETE FROM $tbl_session_rel_course WHERE id_session='$id_session' AND c_id IN($idChecked)");
$nbr_affected_rows=Database::affected_rows(); $nbr_affected_rows=Database::affected_rows();
Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND course_code IN($idChecked)"); Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND c_id IN($idChecked)");
Database::query("UPDATE $tbl_session SET nbr_courses=nbr_courses-$nbr_affected_rows WHERE id='$id_session'"); Database::query("UPDATE $tbl_session SET nbr_courses=nbr_courses-$nbr_affected_rows WHERE id='$id_session'");
} }
header('Location: '.api_get_self().'?id_session='.$id_session.'&sort='.$sort); header('Location: '.api_get_self().'?id_session='.$id_session.'&sort='.$sort);
@ -59,7 +59,9 @@ if ($action == 'delete') {
$limit = 20; $limit = 20;
$from = $page * $limit; $from = $page * $limit;
$sql = "SELECT code, title, nbr_users FROM $tbl_session_rel_course, $tbl_course WHERE course_code=code AND id_session='$id_session' ORDER BY $sort LIMIT $from,".($limit+1); $sql = "SELECT c_id, title, nbr_users FROM $tbl_session_rel_course, $tbl_course c
WHERE c_id = c.id AND id_session='$id_session'
ORDER BY $sort LIMIT $from,".($limit+1);
$result=Database::query($sql); $result=Database::query($sql);
$Courses=Database::store_result($result); $Courses=Database::store_result($result);
$tool_name = api_htmlentities($session_name,ENT_QUOTES,$charset).' : '.get_lang('CourseListInSession'); $tool_name = api_htmlentities($session_name,ENT_QUOTES,$charset).' : '.get_lang('CourseListInSession');
@ -80,14 +82,14 @@ $tableHeader[] = array(get_lang('NbUsers'));
$tableHeader[] = array(get_lang('Actions')); $tableHeader[] = array(get_lang('Actions'));
$tableCourses = array(); $tableCourses = array();
foreach($Courses as $key=>$enreg) { foreach ($Courses as $key=>$enreg) {
$course = array(); $course = array();
$course[] = '<input type="checkbox" name="idChecked[]" value="'.$enreg['code'].'">'; $course[] = '<input type="checkbox" name="idChecked[]" value="'.$enreg['c_id'].'">';
$course[] = api_htmlentities($enreg['title'],ENT_QUOTES,$charset); $course[] = api_htmlentities($enreg['title'],ENT_QUOTES,$charset);
$course[] = '<a href="session_course_user_list.php?id_session='.$id_session.'&course_code='.$enreg['code'].'">'.$enreg['nbr_users'].' '.get_lang('Users').'</a>'; $course[] = '<a href="session_course_user_list.php?id_session='.$id_session.'&course_code='.$enreg['c_id'].'">'.$enreg['nbr_users'].' '.get_lang('Users').'</a>';
$course[] = '<a href="'.api_get_path(WEB_COURSE_PATH).$enreg['code'].'/?id_session='.$id_session.'">'.Display::return_icon('course_home.gif', get_lang('Course')).'</a> $course[] = '<a href="'.api_get_path(WEB_COURSE_PATH).$enreg['c_id'].'/?id_session='.$id_session.'">'.Display::return_icon('course_home.gif', get_lang('Course')).'</a>
<a href="session_course_edit.php?id_session='.$id_session.'&page=session_course_list.php&course_code='.$enreg['code'].'">'.Display::return_icon('edit.gif', get_lang('Edit')).'</a> <a href="session_course_edit.php?id_session='.$id_session.'&page=session_course_list.php&course_code='.$enreg['c_id'].'">'.Display::return_icon('edit.gif', get_lang('Edit')).'</a>
<a href="'.api_get_self().'?id_session='.$id_session.'&sort='.$sort.'&action=delete&idChecked[]='.$enreg['code'].'" onclick="javascript:if(!confirm(\''.addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset)).'\')) return false;">'.Display::return_icon('delete.gif', get_lang('Delete')).'</a>'; <a href="'.api_get_self().'?id_session='.$id_session.'&sort='.$sort.'&action=delete&idChecked[]='.$enreg['c_id'].'" onclick="javascript:if(!confirm(\''.addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset)).'\')) return false;">'.Display::return_icon('delete.gif', get_lang('Delete')).'</a>';
$tableCourses[] = $course; $tableCourses[] = $course;
} }
echo '<form method="post" action="'.api_get_self().'">'; echo '<form method="post" action="'.api_get_self().'">';

@ -242,10 +242,9 @@ function fullexportspecial(){
); );
} }
//Add tem to the zip file session course //Add tem to the zip file session course
$code_course = $_course['code'];
$sql_session = "SELECT id, name, course_code FROM $tbl_session_course $sql_session = "SELECT id, name, course_code FROM $tbl_session_course
INNER JOIN $tbl_session ON id_session = id INNER JOIN $tbl_session ON id_session = id
WHERE course_code = '$code_course' "; WHERE c_id = '$course_id' ";
$query_session = Database::query($sql_session); $query_session = Database::query($sql_session);
while ($rows_session = Database::fetch_assoc($query_session)) { while ($rows_session = Database::fetch_assoc($query_session)) {
$session_id = $rows_session['id']; $session_id = $rows_session['id'];

@ -68,9 +68,6 @@ echo '<p>'.Display :: encrypted_mailto_link($user['mail'], $user['mail']).'</p>'
*/ */
echo Display::page_subheader(get_lang('SessionList')); echo Display::page_subheader(get_lang('SessionList'));
$tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
$tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE); $tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE);
$tbl_user = Database :: get_main_table(TABLE_MAIN_USER); $tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
@ -99,10 +96,8 @@ if (count($sessions) > 0) {
$row[] = $course_info['title']; $row[] = $course_info['title'];
//$row[] = $my_course['status'] == STUDENT ? get_lang('Student') : get_lang('Teacher'); //$row[] = $my_course['status'] == STUDENT ? get_lang('Student') : get_lang('Teacher');
$roles = api_detect_user_roles($user['user_id'], $my_course['code'], $id_session); $roles = api_detect_user_roles($user['user_id'], $my_course['real_id'], $id_session);
$row[] = api_get_roles_to_string($roles); $row[] = api_get_roles_to_string($roles);
$tools = '<a href="course_information.php?code='.$course_info['code'].'&id_session='.$id_session.'">'.Display::return_icon('synthese_view.gif', get_lang('Overview')).'</a>'. $tools = '<a href="course_information.php?code='.$course_info['code'].'&id_session='.$id_session.'">'.Display::return_icon('synthese_view.gif', get_lang('Overview')).'</a>'.
'<a href="'.api_get_path(WEB_COURSE_PATH).$course_info['path'].'?id_session='.$id_session.'">'.Display::return_icon('course_home.gif', get_lang('CourseHomepage')).'</a>'; '<a href="'.api_get_path(WEB_COURSE_PATH).$course_info['path'].'?id_session='.$id_session.'">'.Display::return_icon('course_home.gif', get_lang('CourseHomepage')).'</a>';
@ -137,7 +132,7 @@ if (Database::num_rows($res) > 0) {
$row[] = $course->title; $row[] = $course->title;
//$row[] = $course->status == STUDENT ? get_lang('Student') : get_lang('Teacher'); //$row[] = $course->status == STUDENT ? get_lang('Student') : get_lang('Teacher');
$roles = api_detect_user_roles($user['user_id'], $course->code); $roles = api_detect_user_roles($user['user_id'], $course->id);
$row[] = api_get_roles_to_string($roles); $row[] = api_get_roles_to_string($roles);
$tools = '<a href="course_information.php?code='.$course->code.'">'.Display::return_icon('synthese_view.gif', get_lang('Overview')).'</a>'. $tools = '<a href="course_information.php?code='.$course->code.'">'.Display::return_icon('synthese_view.gif', get_lang('Overview')).'</a>'.
'<a href="'.api_get_path(WEB_COURSE_PATH).$course->directory.'">'.Display::return_icon('course_home.gif', get_lang('CourseHomepage')).'</a>' . '<a href="'.api_get_path(WEB_COURSE_PATH).$course->directory.'">'.Display::return_icon('course_home.gif', get_lang('CourseHomepage')).'</a>' .

@ -163,7 +163,7 @@ function login_user($user_id) {
} }
//Load $_user to be sure we clean it before logging in //Load $_user to be sure we clean it before logging in
global $uidReset, $loginFailed, $_configuration, $_user; global $uidReset, $loginFailed, $_user;
$main_user_table = Database::get_main_table(TABLE_MAIN_USER); $main_user_table = Database::get_main_table(TABLE_MAIN_USER);
$main_admin_table = Database::get_main_table(TABLE_MAIN_ADMIN); $main_admin_table = Database::get_main_table(TABLE_MAIN_ADMIN);

@ -77,7 +77,7 @@ if (isset($_REQUEST['load_ajax'])) {
} else { } else {
$course_info = api_get_course_info_by_id($combination_result['c_id']); $course_info = api_get_course_info_by_id($combination_result['c_id']);
$origin_course_code = $course_info['code']; $origin_course_code = $course_info['code'];
$course_id = $course_info['real_id']; $course_id = $course_info['real_id'];
$origin_session_id = intval($combination_result['session_id']); $origin_session_id = intval($combination_result['session_id']);
$new_session_id = intval($_REQUEST['session_id']); $new_session_id = intval($_REQUEST['session_id']);
@ -93,7 +93,7 @@ if (isset($_REQUEST['load_ajax'])) {
$course_founded = false; $course_founded = false;
foreach ($new_course_list as $course_item) { foreach ($new_course_list as $course_item) {
if ($origin_course_code == $course_item['code']) { if ($course_id == $course_item['id']) {
$course_founded = true; $course_founded = true;
} }
} }
@ -196,7 +196,7 @@ if (isset($_REQUEST['load_ajax'])) {
//3. track_e_course_access //3. track_e_course_access
$sql = "SELECT * FROM $TBL_TRACK_E_COURSE_ACCESS $sql = "SELECT * FROM $TBL_TRACK_E_COURSE_ACCESS
WHERE course_code = '$origin_course_code' AND session_id = $origin_session_id AND user_id = $user_id "; WHERE c_id = '$course_id' AND session_id = $origin_session_id AND user_id = $user_id ";
$res = Database::query($sql); $res = Database::query($sql);
$list = array(); $list = array();
while($row = Database::fetch_array($res,'ASSOC')) { while($row = Database::fetch_array($res,'ASSOC')) {
@ -218,7 +218,8 @@ if (isset($_REQUEST['load_ajax'])) {
//4. track_e_lastaccess //4. track_e_lastaccess
$sql = "SELECT access_id FROM $TBL_TRACK_E_LAST_ACCESS WHERE access_cours_code = '$origin_course_code' AND access_session_id = $origin_session_id AND access_user_id = $user_id "; $sql = "SELECT access_id FROM $TBL_TRACK_E_LAST_ACCESS
WHERE c_id = '$course_id' AND access_session_id = $origin_session_id AND access_user_id = $user_id ";
$res = Database::query($sql); $res = Database::query($sql);
$list = array(); $list = array();
while($row = Database::fetch_array($res,'ASSOC')) { while($row = Database::fetch_array($res,'ASSOC')) {
@ -264,8 +265,8 @@ if (isset($_REQUEST['load_ajax'])) {
$result_message[$TBL_LP_VIEW]++; $result_message[$TBL_LP_VIEW]++;
} else { } else {
//Getting all information of that lp_item_id //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); $score = Tracking::get_avg_student_score($user_id, $course_id, 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); $progress = Tracking::get_avg_student_progress($user_id, $course_id, array($data['lp_id']),$origin_session_id);
$result_message['LP_VIEW'][$data['lp_id']] = array('score' => $score, 'progress' =>$progress); $result_message['LP_VIEW'][$data['lp_id']] = array('score' => $score, 'progress' =>$progress);
} }
} }
@ -273,30 +274,29 @@ if (isset($_REQUEST['load_ajax'])) {
//CHECk DESTINY //CHECk DESTINY
if (!$update_database) { 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"; $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); $res = Database::query($sql);
//Getting the list of LPs in the new session //Getting the list of LPs in the new session
$lp_list = new LearnpathList($user_id, $origin_course_code, $new_session_id); $lp_list = new LearnpathList($user_id, $origin_course_code, $new_session_id);
$flat_list = $lp_list->get_flat_list(); $flat_list = $lp_list->get_flat_list();
$list = array(); $list = array();
while($row = Database::fetch_array($res,'ASSOC')) { while($row = Database::fetch_array($res,'ASSOC')) {
//Checking if the LP exist in the new session //Checking if the LP exist in the new session
if (in_array($row['lp_id'], array_keys($flat_list))) { if (in_array($row['lp_id'], array_keys($flat_list))) {
$list[$row['id']] = $row; $list[$row['id']] = $row;
}
}
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);
} }
}
if (!empty($list))
foreach ($list as $id=>$data) {
//Getting all information of that lp_item_id
$score = Tracking::get_avg_student_score($user_id, $course_id, array($data['lp_id']), $new_session_id);
$progress = Tracking::get_avg_student_progress($user_id, $course_id, array($data['lp_id']), $new_session_id);
$result_message_compare['LP_VIEW'][$data['lp_id']] = array('score' => $score, 'progress' =>$progress);
}
} }
//6. Agenda //6. Agenda
//calendar_event_attachment no problems no session_id //calendar_event_attachment no problems no session_id

@ -243,7 +243,7 @@
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id); $data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
} }
} else { } else {
if (api_is_allowed_to_edit(null, true) || api_is_coach(api_get_session_id(), api_get_course_id())) { if (api_is_allowed_to_edit(null, true) || api_is_coach(api_get_session_id(), api_get_course_int_id())) {
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id); $data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
} else { } else {
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id, $user_id); $data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id, $user_id);

@ -11,7 +11,7 @@
// protect a course script // protect a course script
api_protect_course_script(true); api_protect_course_script(true);
if (api_is_allowed_to_edit(null, true) || api_is_coach(api_get_session_id(), api_get_course_id())) { if (api_is_allowed_to_edit(null, true) || api_is_coach(api_get_session_id(), api_get_course_int_id())) {
$param_gradebook = ''; $param_gradebook = '';
if (isset($_SESSION['gradebook'])) { if (isset($_SESSION['gradebook'])) {

@ -171,7 +171,6 @@ class CoursesController
* *
*/ */
public function subscribe_user($course_code, $search_term, $category_code) { public function subscribe_user($course_code, $search_term, $category_code) {
$data = array();
$result = $this->model->subscribe_user($course_code); $result = $this->model->subscribe_user($course_code);
if (!$result) { if (!$result) {
$error = get_lang('CourseRegistrationCodeIncorrect'); $error = get_lang('CourseRegistrationCodeIncorrect');
@ -278,8 +277,9 @@ class CoursesController
* render to listing view * render to listing view
* @param string Course code * @param string Course code
*/ */
public function unsubscribe_user_from_course($course_code, $search_term = null, $category_code = null) { public function unsubscribe_user_from_course($courseCode, $search_term = null, $category_code = null) {
$result = $this->model->remove_user_from_course($course_code); $courseInfo = api_get_course_info($courseCode);
$result = $this->model->remove_user_from_course($courseInfo['real_id']);
$message = ''; $message = '';
if ($result) { $message = get_lang('YouAreNowUnsubscribed'); } if ($result) { $message = get_lang('YouAreNowUnsubscribed'); }
$action = 'sortmycourses'; $action = 'sortmycourses';

@ -550,41 +550,36 @@ function ldap_add_user_to_session($UserList, $id_session) {
// Database Table Definitions // Database Table Definitions
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_rel_class = Database::get_main_table(TABLE_MAIN_SESSION_CLASS);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_class = Database::get_main_table(TABLE_MAIN_CLASS);
$tbl_class_user = Database::get_main_table(TABLE_MAIN_CLASS_USER);
$id_session = (int) $id_session; $id_session = (int) $id_session;
// Once users are imported in the users base, we can assign them to the session // Once users are imported in the users base, we can assign them to the session
$result=Database::query("SELECT course_code FROM $tbl_session_rel_course " . $result=Database::query("SELECT c_id FROM $tbl_session_rel_course " .
"WHERE id_session='$id_session'"); "WHERE id_session='$id_session'");
$CourseList=array(); $CourseList=array();
while ($row=Database::fetch_array($result)) { while ($row=Database::fetch_array($result)) {
$CourseList[]=$row['course_code']; $CourseList[]=$row['c_id'];
} }
foreach ($CourseList as $enreg_course) { foreach ($CourseList as $enreg_course) {
foreach ($UserList as $enreg_user) { foreach ($UserList as $enreg_user) {
$enreg_user = (int) $enreg_user; $enreg_user = (int) $enreg_user;
Database::query("INSERT IGNORE ". Database::query("INSERT IGNORE ".
" INTO $tbl_session_rel_course_rel_user ". " INTO $tbl_session_rel_course_rel_user ".
"(id_session,course_code,id_user) VALUES ". "(id_session,c_id,id_user) VALUES ".
"('$id_session','$enreg_course','$enreg_user')"); "('$id_session','$enreg_course','$enreg_user')");
} }
$sql = "SELECT COUNT(id_user) as nbUsers ". $sql = "SELECT COUNT(id_user) as nbUsers ".
" FROM $tbl_session_rel_course_rel_user " . " FROM $tbl_session_rel_course_rel_user " .
" WHERE id_session='$id_session' ". " WHERE id_session='$id_session' ".
" AND course_code='$enreg_course'"; " AND c_id='$enreg_course'";
$rs = Database::query($sql); $rs = Database::query($sql);
list($nbr_users) = Database::fetch_array($rs); list($nbr_users) = Database::fetch_array($rs);
Database::query("UPDATE $tbl_session_rel_course ". Database::query("UPDATE $tbl_session_rel_course ".
" SET nbr_users=$nbr_users " . " SET nbr_users=$nbr_users " .
" WHERE id_session='$id_session' ". " WHERE id_session='$id_session' ".
" AND course_code='$enreg_course'"); " AND c_id='$enreg_course'");
} }
foreach ($UserList as $enreg_user) { foreach ($UserList as $enreg_user) {
$enreg_user = (int) $enreg_user; $enreg_user = (int) $enreg_user;

@ -67,14 +67,14 @@ if (!empty($course_user_list)) {
if ($count == $last_item) { if ($count == $last_item) {
$last = '<a href="#'.$login.'">'.get_lang('Last').'</a>'; $last = '<a href="#'.$login.'">'.get_lang('Last').'</a>';
} }
$course_info = api_get_course_info($result['course_code']); $course_info = api_get_course_info_by_id($result['real_id']);
$course_image = '<img src="'.$course_info['course_image'].'">'; $course_image = '<img src="'.$course_info['course_image'].'">';
$dates .= '<li><a href="#'.$login.'">'.api_get_utc_datetime($login).'</a></li>'; $dates .= '<li><a href="#'.$login.'">'.api_get_utc_datetime($login).'</a></li>';
$issues .= '<li id ="'.$login.'"> $issues .= '<li id ="'.$login.'">
<div class="row"> <div class="row">
<div class="span2"><div class="thumbnail">'.$course_image.'</div> <div class="span2"><div class="thumbnail">'.$course_image.'</div>
</div> </div>
<div class="span3">'.sprintf(get_lang('YouHaveEnteredTheCourseXInY'), $result['course_code'], api_convert_and_format_date($login, DATE_FORMAT_LONG)).'</div> <div class="span3">'.sprintf(get_lang('YouHaveEnteredTheCourseXInY'), $course_info['code'], api_convert_and_format_date($login, DATE_FORMAT_LONG)).'</div>
</li>'; </li>';
$count++; $count++;
} }

@ -57,8 +57,8 @@ class ShibbolethSession
/* This must be set for local.inc.php to register correctly the global variables in session /* This must be set for local.inc.php to register correctly the global variables in session
* This is BAD. Logic should be migrated into a function and stop relying on global variables. * This is BAD. Logic should be migrated into a function and stop relying on global variables.
*/ */
global $_uid, $is_allowedCreateCourse, $is_platformAdmin, $_real_cid, $_courseUser, $is_courseAdmin; global $_uid, $is_allowedCreateCourse, $_real_cid, $_courseUser;
global $is_courseMember, $is_courseTutor, $is_courseCoach, $is_allowed_in_course, $is_sessionAdmin, $_gid; global $is_courseMember, $is_courseTutor, $is_allowed_in_course, $_gid;
$_uid = $uid; $_uid = $uid;
//is_allowedCreateCourse //is_allowedCreateCourse

@ -991,7 +991,7 @@ function get_course_users()
FROM $tbl_session_course_user AS session_course_user FROM $tbl_session_course_user AS session_course_user
INNER JOIN $tbl_user u ON u.user_id = session_course_user.id_user INNER JOIN $tbl_user u ON u.user_id = session_course_user.id_user
WHERE id_session = ".$session_id." WHERE id_session = ".$session_id."
AND course_code = '".api_get_course_id()."'"; AND c_id = '".api_get_course_int_id()."'";
$result = Database::query($sql); $result = Database::query($sql);
while ($user = Database::fetch_array($result)) { while ($user = Database::fetch_array($result)) {
@ -1009,9 +1009,7 @@ function get_course_users()
*/ */
function get_course_groups() function get_course_groups()
{ {
$group_list = array();
$group_list = CourseManager::get_group_list_of_course(api_get_course_id(), api_get_session_id()); $group_list = CourseManager::get_group_list_of_course(api_get_course_id(), api_get_session_id());
return $group_list; return $group_list;
} }
@ -1215,7 +1213,7 @@ function construct_selected_select_form($group_list = null, $user_list = null, $
*/ */
function store_new_agenda_item() function store_new_agenda_item()
{ {
global $_course; $_course = api_get_course_info();
$TABLEAGENDA = Database::get_course_table(TABLE_AGENDA); $TABLEAGENDA = Database::get_course_table(TABLE_AGENDA);
$t_agenda_repeat = Database::get_course_Table(TABLE_AGENDA_REPEAT); $t_agenda_repeat = Database::get_course_Table(TABLE_AGENDA_REPEAT);
@ -1683,7 +1681,7 @@ function load_edit_users($tool, $id)
*/ */
function change_visibility($tool, $id, $visibility) function change_visibility($tool, $id, $visibility)
{ {
global $_course; $_course = api_get_course_info();
$TABLE_ITEM_PROPERTY = Database::get_course_table(TABLE_ITEM_PROPERTY); $TABLE_ITEM_PROPERTY = Database::get_course_table(TABLE_ITEM_PROPERTY);
$tool = Database::escape_string($tool); $tool = Database::escape_string($tool);
$id = Database::escape_string($id); $id = Database::escape_string($id);
@ -1931,7 +1929,7 @@ function save_edit_agenda_item($id, $title, $content, $start_date, $end_date)
*/ */
function delete_agenda_item($id) function delete_agenda_item($id)
{ {
global $_course; $_course = api_get_course_info();
$id = Database::escape_string($id); $id = Database::escape_string($id);
if (api_is_allowed_to_edit(false, true) OR (api_get_course_setting('allow_user_edit_agenda') && !api_is_anonymous()) if (api_is_allowed_to_edit(false, true) OR (api_get_course_setting('allow_user_edit_agenda') && !api_is_anonymous())
) { ) {
@ -2269,7 +2267,6 @@ function display_one_agenda_item($agenda_id)
global $TABLE_ITEM_PROPERTY; global $TABLE_ITEM_PROPERTY;
global $select_month, $select_year; global $select_month, $select_year;
global $DaysShort, $DaysLong, $MonthsLong; global $DaysShort, $DaysLong, $MonthsLong;
global $is_courseAdmin;
global $dateFormatLong, $timeNoSecFormat, $charset; global $dateFormatLong, $timeNoSecFormat, $charset;
// getting the name of the groups // getting the name of the groups
@ -4686,7 +4683,7 @@ function agenda_add_item(
*/ */
function delete_attachment_file($id_attach) function delete_attachment_file($id_attach)
{ {
global $_course; $_course = api_get_course_info();
$agenda_table_attachment = Database::get_course_table(TABLE_AGENDA_ATTACHMENT); $agenda_table_attachment = Database::get_course_table(TABLE_AGENDA_ATTACHMENT);
$id_attach = intval($id_attach); $id_attach = intval($id_attach);
@ -4715,7 +4712,7 @@ function delete_attachment_file($id_attach)
function add_agenda_attachment_file($file_comment, $last_id) function add_agenda_attachment_file($file_comment, $last_id)
{ {
global $_course; $_course = api_get_course_info();
$agenda_table_attachment = Database::get_course_table(TABLE_AGENDA_ATTACHMENT); $agenda_table_attachment = Database::get_course_table(TABLE_AGENDA_ATTACHMENT);
$last_id = intval($last_id); $last_id = intval($last_id);
// Storing the attachments // Storing the attachments
@ -4776,8 +4773,7 @@ function add_agenda_attachment_file($file_comment, $last_id)
*/ */
function edit_agenda_attachment_file($file_comment, $agenda_id, $id_attach) function edit_agenda_attachment_file($file_comment, $agenda_id, $id_attach)
{ {
$_course = api_get_course_info();
global $_course;
$agenda_table_attachment = Database::get_course_table(TABLE_AGENDA_ATTACHMENT); $agenda_table_attachment = Database::get_course_table(TABLE_AGENDA_ATTACHMENT);
// Storing the attachments // Storing the attachments

@ -165,7 +165,6 @@ $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_courseUser = Database::get_main_table(TABLE_MAIN_COURSE_USER); $tbl_courseUser = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$tbl_group = Database::get_course_table(TABLE_GROUP); $tbl_group = Database::get_course_table(TABLE_GROUP);
$tbl_groupUser = Database::get_course_table(TABLE_GROUP_USER); $tbl_groupUser = Database::get_course_table(TABLE_GROUP_USER);
$tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
/* ACCESS RIGHTS */ /* ACCESS RIGHTS */
// permission stuff - also used by loading from global in agenda.inc.php // permission stuff - also used by loading from global in agenda.inc.php

@ -372,9 +372,7 @@ if (isset ($_user['user_id'])) {
echo '<h1>'.$sessions[$session_id]['name'].'</h1>'; echo '<h1>'.$sessions[$session_id]['name'].'</h1>';
} }
if (is_array($course_list) && count($course_list) > 0) { if (is_array($course_list) && count($course_list) > 0) {
$agendaitems = get_agenda_items_by_course_list($course_list, $month, $year, $session_id); $agendaitems = get_agenda_items_by_course_list($course_list, $month, $year, $session_id);
//$agendaitems = get_global_agenda_items($agendaitems, $day, $month, $year, $week, "month_view");
display_mymonthcalendar_2($agendaitems, $month, $year, array(), $monthName, $session_id); display_mymonthcalendar_2($agendaitems, $month, $year, array(), $monthName, $session_id);
} else { } else {
Display::display_warning_message(get_lang('PleaseSelectACourseOrASessionInTheLeftColumn')); Display::display_warning_message(get_lang('PleaseSelectACourseOrASessionInTheLeftColumn'));

@ -37,7 +37,7 @@ if (empty($course_id) || empty($doc_url)) {
api_not_allowed(); api_not_allowed();
} }
$is_user_is_subscribed = CourseManager::is_user_subscribed_in_course($user_id, $course_info['code'], true, $session_id); $is_user_is_subscribed = CourseManager::is_user_subscribed_in_course($user_id, $course_id, true, $session_id);
if (!api_is_allowed_to_edit() && !$is_user_is_subscribed) { if (!api_is_allowed_to_edit() && !$is_user_is_subscribed) {
api_not_allowed(); api_not_allowed();

@ -556,7 +556,7 @@ function get_all_courses_of_user() {
c.db_name db, c.directory dir, '5' as status c.db_name db, c.directory dir, '5' as status
FROM $TABLECOURS c, $tbl_session_course_user srcu FROM $TABLECOURS c, $tbl_session_course_user srcu
WHERE srcu.id_user='".api_get_user_id()."' WHERE srcu.id_user='".api_get_user_id()."'
AND c.code=srcu.course_code AND c.id = srcu.c_id
UNION UNION
SELECT c.code k, c.visual_code vc, c.title i, c.tutor_name t, SELECT c.code k, c.visual_code vc, c.title i, c.tutor_name t,
c.db_name db, c.directory dir, cru.status status c.db_name db, c.directory dir, cru.status status

@ -30,7 +30,7 @@ if (!empty($course)) {
list($pseudo_user) = Database::fetch_row($result); list($pseudo_user) = Database::fetch_row($result);
$isAllowed = !(empty($pseudo_user) || !$_cid); $isAllowed = !(empty($pseudo_user) || !$_cid);
$isMaster = (bool)$is_courseAdmin; $isMaster = (bool)api_is_course_admin();
$date_now = date('Y-m-d'); $date_now = date('Y-m-d');
$basepath_chat = ''; $basepath_chat = '';
@ -203,7 +203,7 @@ if (!empty($course)) {
<a name="bottom" style="text-decoration:none;">&nbsp;</a> <a name="bottom" style="text-decoration:none;">&nbsp;</a>
<?php <?php
if ($isMaster || $is_courseCoach) { if ($isMaster || api_is_course_coach()) {
$rand = mt_rand(1, 1000); $rand = mt_rand(1, 1000);
echo '<div style="margin-left: 5px;">'; echo '<div style="margin-left: 5px;">';
echo '<a href="'.api_get_self( echo '<a href="'.api_get_self(

@ -29,7 +29,7 @@ $result = Database::query($query);
list($pseudo_user) = Database::fetch_row($result); list($pseudo_user) = Database::fetch_row($result);
$isAllowed = !(empty($pseudo_user) || !$_cid); $isAllowed = !(empty($pseudo_user) || !$_cid);
$isMaster = (bool)$is_courseAdmin; $isMaster = (bool)api_is_course_admin();
$date_now = date('Y-m-d'); $date_now = date('Y-m-d');

@ -76,7 +76,7 @@ if (!empty($course) && !empty($_user['user_id'])) {
list($pseudo_user) = Database::fetch_row($result); list($pseudo_user) = Database::fetch_row($result);
$isAllowed = !(empty($pseudo_user) || !$_cid); $isAllowed = !(empty($pseudo_user) || !$_cid);
$isMaster = (bool)$is_courseAdmin; $isMaster = (bool)api_is_course_admin();
$firstname = Database::result($result, 0, 'firstname'); $firstname = Database::result($result, 0, 'firstname');
$lastname = Database::result($result, 0, 'lastname'); $lastname = Database::result($result, 0, 'lastname');

@ -16,7 +16,7 @@ require_once '../inc/global.inc.php';
$course = api_get_course_id(); $course = api_get_course_id();
$group_id = intval($_SESSION['_gid']); $group_id = intval($_SESSION['_gid']);
$session_id = intval($_SESSION['id_session']); $session_id = api_get_session_id();
$session_condition = api_get_session_condition($session_id); $session_condition = api_get_session_condition($session_id);
$group_condition = " AND to_group_id = '$group_id'"; $group_condition = " AND to_group_id = '$group_id'";
@ -44,7 +44,7 @@ if (!empty($course)) {
list($pseudo_user) = Database::fetch_array($result); list($pseudo_user) = Database::fetch_array($result);
$isAllowed = !(empty($pseudo_user) || !$_cid); $isAllowed = !(empty($pseudo_user) || !$_cid);
$isMaster = (bool)$is_courseAdmin; $isMaster = api_is_course_admin();
$date_inter = date('Y-m-d H:i:s', time() - 120); $date_inter = date('Y-m-d H:i:s', time() - 120);
@ -67,10 +67,11 @@ if (!empty($course)) {
// select learners // select learners
$query = "SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri FROM $tbl_user t1, $tbl_chat_connected t2, $tbl_session_course_user t3 $query = "SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri FROM $tbl_user t1, $tbl_chat_connected t2, $tbl_session_course_user t3
WHERE WHERE
t2.c_id = $course_id AND t2.c_id = $course_id AND
t1.user_id=t2.user_id AND t3.id_user=t2.user_id AND t1.user_id=t2.user_id AND t3.id_user=t2.user_id AND
t3.id_session = '".$session_id."' AND t3.id_session = '".$session_id."' AND
t3.c_id = '".$course_id."' AND t2.last_connection>'".$date_inter."' $extra_condition ORDER BY username"; t3.c_id = '".$course_id."' AND t2.last_connection>'".$date_inter."' $extra_condition
ORDER BY username";
$result = Database::query($query); $result = Database::query($query);
while ($learner = Database::fetch_array($result)) { while ($learner = Database::fetch_array($result)) {
$users[$learner['user_id']] = $learner; $users[$learner['user_id']] = $learner;
@ -94,7 +95,7 @@ if (!empty($course)) {
t1.user_id=t2.user_id t1.user_id=t2.user_id
AND t3.id_user=t2.user_id AND t3.status=2 AND t3.id_user=t2.user_id AND t3.status=2
AND t3.id_session = '".$session_id."' AND t3.id_session = '".$session_id."'
AND t3.course_code = '".$_course['sysCode']."' AND t3.c_id = '".api_get_course_int_id()."'
AND t2.last_connection>'".$date_inter."' $extra_condition ORDER BY username"; AND t2.last_connection>'".$date_inter."' $extra_condition ORDER BY username";
$result = Database::query($query); $result = Database::query($query);

@ -165,7 +165,7 @@ elseif (isset($update) && $update) {
// Work with data post askable by admin of course // Work with data post askable by admin of course
if ($is_platformAdmin && api_is_allowed_to_edit(null, true) && !api_is_coach()) { if (api_is_platform_admin() && api_is_allowed_to_edit(null, true) && !api_is_coach()) {
// Show message to confirm that a tools must be hide from aivailable tools // Show message to confirm that a tools must be hide from aivailable tools
// visibility 0,1->2 // visibility 0,1->2
if ($askDelete) { if ($askDelete) {
@ -219,7 +219,7 @@ if (api_is_allowed_to_edit(null, true) && !api_is_coach()) {
/* TOOLS FOR PLATFORM ADMIN ONLY */ /* TOOLS FOR PLATFORM ADMIN ONLY */
if ($is_platformAdmin && api_is_allowed_to_edit(null, true) && !api_is_coach()) { if (api_is_platform_admin() && api_is_allowed_to_edit(null, true) && !api_is_coach()) {
$content .= "<tr>"."<td colspan=\"6\">". $content .= "<tr>"."<td colspan=\"6\">".
"<hr noshade size=\"1\" />". "<hr noshade size=\"1\" />".
"</td>"."</tr>\n". "</td>"."</tr>\n".

@ -18,7 +18,6 @@ $course_id = api_get_course_int_id();
$session_id = api_get_session_id(); $session_id = api_get_session_id();
// MAIN CODE // MAIN CODE
if (api_is_allowed_to_edit(null, true)) { if (api_is_allowed_to_edit(null, true)) {
// HIDE // HIDE
if (!empty($_GET['hide'])) { if (!empty($_GET['hide'])) {
@ -73,6 +72,7 @@ if (api_is_allowed_to_edit(null, true) && !api_is_coach()) {
</div>'; </div>';
} }
$my_list = CourseHome::get_tools_category(TOOL_AUTHORING); $my_list = CourseHome::get_tools_category(TOOL_AUTHORING);
$items = CourseHome::show_tools_category($my_list); $items = CourseHome::show_tools_category($my_list);
$content .= return_block(get_lang('Authoring'), $items); $content .= return_block(get_lang('Authoring'), $items);

@ -46,70 +46,6 @@ require_once dirname(__FILE__).'/../inc/global.inc.php';
//unset($_SESSION['oLP']); //unset($_SESSION['oLP']);
//unset($_SESSION['lpobject']); //unset($_SESSION['lpobject']);
$htmlHeadXtra[] ='<script>
$(document).ready(function() {
$(".make_visible_and_invisible").attr("href", "javascript:void(0);");
$(".make_visible_and_invisible > img").click(function () {
make_visible = "visible.gif";
make_invisible = "invisible.gif";
path_name = $(this).attr("src");
list_path_name = path_name.split("/");
image_link = list_path_name[list_path_name.length - 1];
tool_id = $(this).attr("id");
tool_info = tool_id.split("_");
my_tool_id = tool_info[1];
$.ajax({
contentType: "application/x-www-form-urlencoded",
beforeSend: function(objeto) {
$(".normal-message").show();
$("#id_confirmation_message").hide();
},
type: "GET",
url: "'.api_get_path(WEB_AJAX_PATH).'course_home.ajax.php?'.api_get_cidreq().'&a=set_visibility",
data: "id=" + my_tool_id + "&sent_http_request=1",
success: function(data) {
eval("var info=" + data);
new_current_tool_image = info.image;
new_current_view = "'.api_get_path(WEB_IMG_PATH).'" + info.view;
//eyes
$("#" + tool_id).attr("src", new_current_view);
//tool
$("#toolimage_" + my_tool_id).attr("src", new_current_tool_image);
//clase
$("#tooldesc_" + my_tool_id).attr("class", info.tclass);
$("#istooldesc_" + my_tool_id).attr("class", info.tclass);
if (image_link == "visible.gif") {
$("#" + tool_id).attr("alt", "'.get_lang('Activate', '').'");
$("#" + tool_id).attr("title", "'.get_lang('Activate', '').'");
} else {
$("#" + tool_id).attr("alt", "'.get_lang('Deactivate', '').'");
$("#" + tool_id).attr("title", "'.get_lang('Deactivate', '').'");
}
if (info.message == "is_active") {
message = "'.get_lang('ToolIsNowVisible', '').'";
} else {
message = "'.get_lang('ToolIsNowHidden', '').'";
}
$(".normal-message").hide();
$("#id_confirmation_message").html(message);
$("#id_confirmation_message").show();
}
});
});
});
/* toogle for post-it in course home */
$(function() {
$(".thematic-postit-head").click(function() {
$(".thematic-postit-center").slideToggle("fast");
});
});
</script>';
// The section for the tabs // The section for the tabs
$this_section = SECTION_COURSES; $this_section = SECTION_COURSES;
@ -129,7 +65,6 @@ define('TOOL_STUDENT_VIEW', 'toolstudentview');
define('TOOL_ADMIN_VISIBLE', 'tooladminvisible'); define('TOOL_ADMIN_VISIBLE', 'tooladminvisible');
$user_id = api_get_user_id(); $user_id = api_get_user_id();
//$course_code = api_get_course_id();
$show_message = ''; $show_message = '';
//Deleting group session //Deleting group session
@ -168,7 +103,7 @@ if (!isset($coursesAlreadyVisited[$course_code])) {
$show_autolaunch_exercise_warning = false; $show_autolaunch_exercise_warning = false;
//Exercise autolaunch //Exercise auto-launch
$auto_launch = api_get_course_setting('enable_exercise_auto_launch'); $auto_launch = api_get_course_setting('enable_exercise_auto_launch');
if (!empty($auto_launch)) { if (!empty($auto_launch)) {
$session_id = api_get_session_id(); $session_id = api_get_session_id();
@ -224,7 +159,8 @@ if (!empty($auto_launch)) {
} }
} }
} }
/*Auto launch code */
/* Auto launch code */
$show_autolaunch_lp_warning = false; $show_autolaunch_lp_warning = false;
$auto_launch = api_get_course_setting('enable_lp_auto_launch'); $auto_launch = api_get_course_setting('enable_lp_auto_launch');
if (!empty($auto_launch)) { if (!empty($auto_launch)) {

@ -13,8 +13,6 @@
//require '../inc/global.inc.php'; //require '../inc/global.inc.php';
function create_backup_is_admin($_cid) { function create_backup_is_admin($_cid) {
$this_section = SECTION_COURSES;
if (isset($_GET['session']) && $_GET['session']) { if (isset($_GET['session']) && $_GET['session']) {
$archive_path = api_get_path(SYS_ARCHIVE_PATH); $archive_path = api_get_path(SYS_ARCHIVE_PATH);
$_cid = true; $_cid = true;

@ -29,7 +29,7 @@ define('MODULE_HELP_NAME', 'Settings');
define('COURSE_CHANGE_PROPERTIES', 'COURSE_CHANGE_PROPERTIES'); define('COURSE_CHANGE_PROPERTIES', 'COURSE_CHANGE_PROPERTIES');
$currentCourseRepository = $_course['path']; $currentCourseRepository = $_course['path'];
$is_allowedToEdit = $is_courseAdmin || $is_platformAdmin; $is_allowedToEdit = api_is_course_admin() || api_is_platform_admin();
$course_code = api_get_course_id(); $course_code = api_get_course_id();
$courseId = api_get_course_int_id(); $courseId = api_get_course_int_id();
@ -91,7 +91,7 @@ while ($a_titulars = Database::fetch_array($q_result_titulars)) {
$s_selected_tutor = api_get_person_name($s_firstname, $s_lastname); $s_selected_tutor = api_get_person_name($s_firstname, $s_lastname);
} }
$s_disabled_select_titular = ''; $s_disabled_select_titular = '';
if (!$is_courseAdmin) { if (!api_is_course_admin()) {
$s_disabled_select_titular = 'disabled=disabled'; $s_disabled_select_titular = 'disabled=disabled';
} }
$a_profs[api_get_person_name($s_firstname, $s_lastname)] = api_get_person_name($s_lastname, $s_firstname).' ('.$s_username.')'; $a_profs[api_get_person_name($s_firstname, $s_lastname)] = api_get_person_name($s_lastname, $s_firstname).' ('.$s_username.')';
@ -331,7 +331,6 @@ $group[]=$form->createElement('radio', 'allow_fast_exercise_edition', get_lang('
$form->addGroup($group, '', array(get_lang("AllowFastExerciseEdition")), ''); $form->addGroup($group, '', array(get_lang("AllowFastExerciseEdition")), '');
//Auto-launch Exercise LP //Auto-launch Exercise LP
$form->addElement('html', '<div><h3>'.Display::return_icon('quiz.png', get_lang('ConfigExercise'),'',ICON_SIZE_SMALL).' '.Security::remove_XSS(get_lang('ConfigExercise')).'</h3><div>');
$group = array(); $group = array();
$group[]=$form->createElement('radio', 'enable_exercise_auto_launch', get_lang('ExerciseAutoLaunch'), get_lang('RedirectToExercise'), 1); $group[]=$form->createElement('radio', 'enable_exercise_auto_launch', get_lang('ExerciseAutoLaunch'), get_lang('RedirectToExercise'), 1);
$group[]=$form->createElement('radio', 'enable_exercise_auto_launch', get_lang('ExerciseAutoLaunch'), get_lang('RedirectToTheExerciseList'), 2); $group[]=$form->createElement('radio', 'enable_exercise_auto_launch', get_lang('ExerciseAutoLaunch'), get_lang('RedirectToTheExerciseList'), 2);

@ -19,6 +19,7 @@ if (empty($course_code)) {
} }
$course_info = CourseManager::get_course_information($course_code); $course_info = CourseManager::get_course_information($course_code);
$courseId = $course_info['real_id'];
$course_legal = $course_info['legal']; $course_legal = $course_info['legal'];
// Build the form // Build the form
@ -51,7 +52,7 @@ if (api_check_user_access_to_legal($course_info['visibility']) && Session::read(
$url = api_get_course_url($course_code, $session_id); $url = api_get_course_url($course_code, $session_id);
if (empty($session_id)) { if (empty($session_id)) {
if (CourseManager::is_user_subscribed_in_course($user_id, $course_code) || api_check_user_access_to_legal($course_info['visibility'])) { if (CourseManager::is_user_subscribed_in_course($user_id, $courseId) || api_check_user_access_to_legal($course_info['visibility'])) {
$user_accepted_legal = CourseManager::is_user_accepted_legal($user_id, $course_info); $user_accepted_legal = CourseManager::is_user_accepted_legal($user_id, $course_info);
if ($user_accepted_legal || $user_pass_open_course) { if ($user_accepted_legal || $user_pass_open_course) {
//Redirect to course home //Redirect to course home
@ -67,7 +68,7 @@ if (empty($session_id)) {
header('Location: '.$url); header('Location: '.$url);
} }
$user_session_status = SessionManager::get_user_status_in_course_session($user_id, $course_code, $session_id); $user_session_status = SessionManager::get_user_status_in_course_session($user_id, $courseId, $session_id);
if (isset($user_session_status) || api_check_user_access_to_legal($course_info['visibility'])) { if (isset($user_session_status) || api_check_user_access_to_legal($course_info['visibility'])) {
$user_accepted_legal = CourseManager::is_user_accepted_legal($user_id, $course_info, $session_id); $user_accepted_legal = CourseManager::is_user_accepted_legal($user_id, $course_info, $session_id);

@ -12,7 +12,7 @@ require_once 'Course.class.php';
* *
* @todo Use archive-folder of Chamilo? * @todo Use archive-folder of Chamilo?
*/ */
class CourseArchiver class CourseArchiver
{ {
/** /**
@ -70,10 +70,10 @@ class CourseArchiver
if ($res === false) { if ($res === false) {
error_log(__FILE__ . ' line ' . __LINE__ . ': ' . (ini_get('track_errors') != false ? $php_errormsg : 'error not recorded because track_errors is off in your php.ini'), 0); error_log(__FILE__ . ' line ' . __LINE__ . ': ' . (ini_get('track_errors') != false ? $php_errormsg : 'error not recorded because track_errors is off in your php.ini'), 0);
} }
//Documents //Documents
// Copy all documents to the temp-dir // Copy all documents to the temp-dir
if (is_array($course->resources[RESOURCE_DOCUMENT])) { if (is_array($course->resources[RESOURCE_DOCUMENT])) {
foreach ($course->resources[RESOURCE_DOCUMENT] as $id => $document) { foreach ($course->resources[RESOURCE_DOCUMENT] as $id => $document) {
if ($document->file_type == DOCUMENT) { if ($document->file_type == DOCUMENT) {
@ -105,7 +105,7 @@ class CourseArchiver
FileManager::copyDirTo($course->path . 'upload/calendar/', $doc_dir, false); FileManager::copyDirTo($course->path . 'upload/calendar/', $doc_dir, false);
} }
//Copy learningpath author image //Copy learningpath author image
if (is_array($course->resources[RESOURCE_LEARNPATH])) { if (is_array($course->resources[RESOURCE_LEARNPATH])) {
$doc_dir = dirname($backup_dir . '/upload/learning_path/'); $doc_dir = dirname($backup_dir . '/upload/learning_path/');
@mkdir($doc_dir, $perm_dirs, true); @mkdir($doc_dir, $perm_dirs, true);
@ -133,7 +133,6 @@ class CourseArchiver
* *
*/ */
static function get_available_backups($user_id = null) { static function get_available_backups($user_id = null) {
global $dateTimeFormatLong;
$backup_files = array(); $backup_files = array();
$dirname = api_get_path(SYS_ARCHIVE_PATH) . ''; $dirname = api_get_path(SYS_ARCHIVE_PATH) . '';
if ($dir = opendir($dirname)) { if ($dir = opendir($dirname)) {

@ -60,7 +60,7 @@ class CourseBuilder {
* Create a new CourseBuilder * Create a new CourseBuilder
*/ */
function __construct($type='', $course = null) { function __construct($type='', $course = null) {
global $_course; $_course = api_get_course_info();
if (!empty($course['official_code'])){ if (!empty($course['official_code'])){
$_course = $course; $_course = $course;
@ -915,10 +915,11 @@ class CourseBuilder {
$this->course->path = api_get_path(SYS_COURSE_PATH).$_course['directory'].'/'; $this->course->path = api_get_path(SYS_COURSE_PATH).$_course['directory'].'/';
$this->course->backup_path = api_get_path(SYS_COURSE_PATH).$_course['directory']; $this->course->backup_path = api_get_path(SYS_COURSE_PATH).$_course['directory'];
$this->course->encoding = api_get_system_encoding(); //current platform encoding $this->course->encoding = api_get_system_encoding(); //current platform encoding
$code_course = $_course['code']; //$code_course = $_course['code'];
$sql_session = "SELECT id, name, course_code FROM $tbl_session_course $courseId = $_course['real_id'];
INNER JOIN $tbl_session ON id_session = id $sql_session = "SELECT id, name, c_id
WHERE course_code = '$code_course' "; FROM $tbl_session_course INNER JOIN $tbl_session ON id_session = id
WHERE c_id = '$courseId' ";
$query_session = Database::query($sql_session); $query_session = Database::query($sql_session);
while ($rows_session = Database::fetch_assoc($query_session)) { while ($rows_session = Database::fetch_assoc($query_session)) {
$session = new CourseSession($rows_session['id'], $rows_session['name']); $session = new CourseSession($rows_session['id'], $rows_session['name']);

@ -45,17 +45,13 @@ $nameTools = get_lang('CopyCourse');
$interbreadcrumb[] = array('url' => '../admin/index.php', 'name' => get_lang('PlatformAdmin')); $interbreadcrumb[] = array('url' => '../admin/index.php', 'name' => get_lang('PlatformAdmin'));
// Database Table Definitions // Database Table Definitions
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
/* FUNCTIONS */ /* FUNCTIONS */
function make_select_session_list($name, $sessions, $attr = array()) function make_select_session_list($name, $sessions, $attr = array()) {
{
$attrs = ''; $attrs = '';
if (count($attr) > 0) { if (count($attr) > 0) {
foreach ($attr as $key => $value) { foreach ($attr as $key => $value) {
@ -85,11 +81,9 @@ function make_select_session_list($name, $sessions, $attr = array())
return $output; return $output;
} }
function display_form() function display_form() {
{
$html = ''; $html = '';
$sessions = SessionManager::get_sessions_list(null, array('name ASC')); $sessions = SessionManager::get_sessions_list(null, array('name ASC'));
// Actions // Actions
$html .= '<div class="actions">'; $html .= '<div class="actions">';
// Link back to the documents overview // Link back to the documents overview
@ -144,8 +138,7 @@ function display_form()
echo $html; echo $html;
} }
function search_courses($id_session, $type) function search_courses($id_session, $type) {
{
global $tbl_course, $tbl_session_rel_course, $course_list; global $tbl_course, $tbl_session_rel_course, $course_list;
$xajax_response = new XajaxResponse(); $xajax_response = new XajaxResponse();
$select_destination = ''; $select_destination = '';
@ -158,7 +151,7 @@ function search_courses($id_session, $type)
$course_list = SessionManager::get_course_list_by_session_id($id_session); $course_list = SessionManager::get_course_list_by_session_id($id_session);
$temp_course_list = array(); $temp_course_list = array();
$return .= '<select id="origin" name="SessionCoursesListOrigin[]" style="width:380px;" onclick="javascript: checkSelected(this.id,\'copy_option_2\',\'title_option2\',\'destination\');">'; $return = '<select id="origin" name="SessionCoursesListOrigin[]" style="width:380px;" onclick="javascript: checkSelected(this.id,\'copy_option_2\',\'title_option2\',\'destination\');">';
foreach ($course_list as $course) { foreach ($course_list as $course) {
$temp_course_list[] = "'{$course['code']}'"; $temp_course_list[] = "'{$course['code']}'";
@ -221,65 +214,28 @@ function search_courses($id_session, $type)
} else { } else {
//Left Select - Destination //Left Select - Destination
$list_courses_origin = implode(',', $_SESSION['course_list']);
$session_origin = $_SESSION['session_origin'];
// Search courses by id_session where course codes is include en courses list destination // Search courses by id_session where course codes is include en courses list destination
$sql = "SELECT c.code, c.visual_code, c.title, src.id_session $sql = "SELECT c.code, c.visual_code, c.title, src.id_session
FROM $tbl_course c, $tbl_session_rel_course src FROM $tbl_course c, $tbl_session_rel_course src
WHERE src.course_code = c.code WHERE src.c_id = c.id
AND src.id_session = '".intval($id_session)."'"; AND src.id_session = '".intval($id_session)."'";
//AND c.code IN ($list_courses_origin)"; //AND c.code IN ($list_courses_origin)";
$rs = Database::query($sql); $rs = Database::query($sql);
$course_list_destination = array(); $course_list_destination = array();
//onmouseover="javascript: this.disabled=true;" onmouseout="javascript: this.disabled=false;" $return = '<select id="destination" name="SessionCoursesListDestination[]" style="width:380px;" >';
$return .= '<select id="destination" name="SessionCoursesListDestination[]" style="width:380px;" >';
while ($course = Database :: fetch_array($rs)) { while ($course = Database :: fetch_array($rs)) {
$course_list_destination[] = $course['code']; $course_list_destination[] = $course['c_id'];
$course_title = str_replace("'", "\'", $course_title); $course_title = str_replace("'", "\'", $course_title);
$return .= '<option value="'.$course['code'].'" title="'.@htmlspecialchars( $return .= '<option value="'.$course['c_id'].'" title="'.@htmlspecialchars($course['title'].' ('.$course['visual_code'].')',ENT_QUOTES,api_get_system_encoding()).'">'.$course['title'].' ('.$course['visual_code'].')</option>';
$course['title'].' ('.$course['visual_code'].')',
ENT_QUOTES,
api_get_system_encoding()
).'">'.$course['title'].' ('.$course['visual_code'].')</option>';
} }
$return .= '</select>'; $return .= '</select>';
$_SESSION['course_list_destination'] = $course_list_destination; $_SESSION['course_list_destination'] = $course_list_destination;
// Send response by ajax // Send response by ajax
$xajax_response->addAssign('ajax_list_courses_destination', 'innerHTML', api_utf8_encode($return)); $xajax_response->addAssign('ajax_list_courses_destination', 'innerHTML', api_utf8_encode($return));
/*
// Disable option from session courses list origin where if no the same con the destination
$sql = "SELECT c.code, c.visual_code, c.title, src.id_session
FROM $tbl_course c, $tbl_session_rel_course src
WHERE src.course_code = c.code
AND src.id_session = '".intval($session_origin)."'";
$result = Database::query($sql);
$return_option_disabled = '<select id="origin" name="SessionCoursesListOrigin[]" multiple="multiple" size="20" style="width:320px;" onclick="javascript: checkSelected(this.id,\'copy_option_2\',\'title_option2\',\'destination\');">';
while ($cours = Database :: fetch_array($result)) {
$course_title=str_replace("'", "\'", $course_title);
if (count($course_list_destination) > 0) {
if (!in_array($cours['code'], $course_list_destination)) {
$return_option_disabled .= '<optgroup style="color:#ccc" label="'.$cours['title'].' ('.$cours['visual_code'].')" >'.$cours['title'].' ('.$cours['visual_code'].')</optgroup>';
} else {
$return_option_disabled .= '<option value="'.$cours['code'].'" title="'.@htmlspecialchars($cours['title'].' ('.$cours['visual_code'].')', ENT_QUOTES, api_get_system_encoding()).'">'.$cours['title'].' ('.$cours['visual_code'].')</option>';
}
} else {
if (empty($id_session)) {
$return_option_disabled .= '<option value="'.$cours['code'].'" title="'.@htmlspecialchars($cours['title'].' ('.$cours['visual_code'].')', ENT_QUOTES, api_get_system_encoding()).'">'.$cours['title'].' ('.$cours['visual_code'].')</option>';
} else {
$return_option_disabled .= '<optgroup style="color:#ccc" label="'.$cours['title'].'('.$cours['visual_code'].')" >'.$cours['title'].' ('.$cours['visual_code'].')</optgroup>';
}
}
}
$return_option_disabled .= '</select>';*/
// Send response by ajax
//$xajax_response -> addAssign('ajax_list_courses_origin', 'innerHTML', api_utf8_encode($return_option_disabled));
} }
} }
return $xajax_response; return $xajax_response;
} }
@ -288,45 +244,43 @@ $xajax->processRequests();
/* HTML head extra */ /* HTML head extra */
$htmlHeadXtra[] = $xajax->getJavascript(api_get_path(WEB_LIBRARY_PATH).'xajax/'); $htmlHeadXtra[] = $xajax->getJavascript(api_get_path(WEB_LIBRARY_PATH).'xajax/');
$htmlHeadXtra[] = '<script type="text/javascript"> $htmlHeadXtra[] = '<script>
function checkSelected(id_select,id_radio,id_title,id_destination) { function checkSelected(id_select,id_radio,id_title,id_destination) {
var num=0; var num=0;
obj_origin = document.getElementById(id_select); obj_origin = document.getElementById(id_select);
obj_destination = document.getElementById(id_destination); obj_destination = document.getElementById(id_destination);
for (x=0;x<obj_origin.options.length;x++) { for (x=0;x<obj_origin.options.length;x++) {
if (obj_origin.options[x].selected) { if (obj_origin.options[x].selected) {
if (obj_destination.options.length > 0) { if (obj_destination.options.length > 0) {
for (y=0;y<obj_destination.options.length;y++) { for (y=0;y<obj_destination.options.length;y++) {
if (obj_origin.options[x].value == obj_destination.options[y].value) { if (obj_origin.options[x].value == obj_destination.options[y].value) {
obj_destination.options[y].selected = true; obj_destination.options[y].selected = true;
} }
} }
} }
num++; num++;
} else { } else {
if (obj_destination.options.length > 0) { if (obj_destination.options.length > 0) {
for (y=0;y<obj_destination.options.length;y++) { for (y=0;y<obj_destination.options.length;y++) {
if (obj_origin.options[x].value == obj_destination.options[y].value) { if (obj_origin.options[x].value == obj_destination.options[y].value) {
obj_destination.options[y].selected = false; obj_destination.options[y].selected = false;
} }
} }
} }
} }
} }
if (num == 1) {
document.getElementById(id_radio).disabled = false;
document.getElementById(id_title).style.color = \'#000\';
} else {
document.getElementById(id_radio).disabled = true;
document.getElementById(id_title).style.color = \'#aaa\';
}
}
</script>';
if (num == 1) {
document.getElementById(id_radio).disabled = false;
document.getElementById(id_title).style.color = \'#000\';
} else {
document.getElementById(id_radio).disabled = true;
document.getElementById(id_title).style.color = \'#aaa\';
}
}
</script>';
Display::display_header($nameTools); Display::display_header($nameTools);
@ -335,13 +289,10 @@ if (isset($_POST['copy_only_session_items']) && $_POST['copy_only_session_items'
$with_base_content = false; $with_base_content = false;
} }
/* MAIN CODE */ /* MAIN CODE */
if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (isset($_POST['copy_option']) && $_POST['copy_option'] == 'full_copy')) { if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (isset($_POST['copy_option']) && $_POST['copy_option'] == 'full_copy')) {
$destination_course = $origin_course = $destination_session = $origin_session = ''; $destination_course = $origin_course = $destination_session = $origin_session = '';
if (isset ($_POST['action']) && $_POST['action'] == 'course_select_form') { if (isset ($_POST['action']) && $_POST['action'] == 'course_select_form') {
$destination_course = $_POST['destination_course']; $destination_course = $_POST['destination_course'];
@ -352,7 +303,6 @@ if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (is
$course = CourseSelectForm :: get_posted_course('copy_course', $origin_session, $origin_course); $course = CourseSelectForm :: get_posted_course('copy_course', $origin_session, $origin_course);
$cr = new CourseRestorer($course); $cr = new CourseRestorer($course);
//$cr->set_file_option($_POST['same_file_name_option']);
$cr->restore($destination_course, $destination_session); $cr->restore($destination_course, $destination_session);
Display::display_confirmation_message(get_lang('CopyFinished')); Display::display_confirmation_message(get_lang('CopyFinished'));
display_form(); display_form();
@ -385,6 +335,8 @@ if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (is
//first element of the array //first element of the array
$course_code = $arr_course_origin[0]; $course_code = $arr_course_origin[0];
$course_destinatination = $arr_course_destination[0]; $course_destinatination = $arr_course_destination[0];
$courseDestinationInfo = api_get_course_info_by_id($course_destinatination);
$course_destinatination = $courseDestinationInfo['code'];
$course_origin = api_get_course_info($course_code); $course_origin = api_get_course_info($course_code);
$cb = new CourseBuilder('', $course_origin); $cb = new CourseBuilder('', $course_origin);

@ -127,7 +127,8 @@ if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (is
} }
} else { } else {
$user = api_get_user_info(); $user = api_get_user_info();
$backups = CourseArchiver::get_available_backups($is_platformAdmin ? null : $user['user_id']); $user = $is_platformAdmin ? null : $user['user_id'];
$backups = CourseArchiver::get_available_backups($user);
$backups_available = count($backups) > 0; $backups_available = count($backups) > 0;
$form = new FormValidator('import_backup_form', 'post', 'import_backup.php', '', 'multipart/form-data'); $form = new FormValidator('import_backup_form', 'post', 'import_backup.php', '', 'multipart/form-data');

@ -423,7 +423,9 @@ function downloadMP3_google($filepath, $dir)
return; return;
} }
global $_course, $_user; global $_user;
$_course = api_get_course_info();
$clean_title = trim($_POST['title']); $clean_title = trim($_POST['title']);
$clean_text = trim($_POST['text']); $clean_text = trim($_POST['text']);
if (empty($clean_title) || empty($clean_text)) { if (empty($clean_title) || empty($clean_text)) {
@ -591,7 +593,8 @@ function downloadMP3_pediaphon($filepath, $dir)
return; return;
} }
global $_course, $_user; global $_user;
$_course = api_get_course_info();
$clean_title = trim($_POST['title']); $clean_title = trim($_POST['title']);
$clean_title = Database::escape_string($clean_title); $clean_title = Database::escape_string($clean_title);
$clean_text = trim($_POST['text']); $clean_text = trim($_POST['text']);

@ -1283,7 +1283,8 @@ function check_and_create_resource_directory($repository_path, $resource_directo
if (@mkdir($resource_directory_full_path, $permissions_for_new_directories)) { if (@mkdir($resource_directory_full_path, $permissions_for_new_directories)) {
// While we are in a course: Registering the newly created folder in the course's database. // While we are in a course: Registering the newly created folder in the course's database.
if (api_is_in_course()) { if (api_is_in_course()) {
global $_course, $_user; global $_user;
$_course = api_get_course_info();
global $group_properties, $to_group_id; global $group_properties, $to_group_id;
$group_directory = !empty($group_properties['directory']) ? $group_properties['directory'] : ''; $group_directory = !empty($group_properties['directory']) ? $group_properties['directory'] : '';

@ -71,7 +71,7 @@ if (empty($course_info)) {
$course_dir = $course_info['path'].'/document'; $course_dir = $course_info['path'].'/document';
$sys_course_path = api_get_path(SYS_COURSE_PATH); $sys_course_path = api_get_path(SYS_COURSE_PATH);
$base_work_dir = $sys_course_path.$course_dir; $base_work_dir = $sys_course_path.$course_dir;
$http_www = api_get_path(WEB_COURSE_PATH).$_course['path'].'/document'; $http_www = api_get_path(WEB_COURSE_PATH).$course_info['path'].'/document';
$dbl_click_id = 0; // Used for avoiding double-click $dbl_click_id = 0; // Used for avoiding double-click
@ -202,9 +202,7 @@ switch ($action) {
break; break;
case 'copytomyfiles': case 'copytomyfiles':
// Copy a file to general my files user's // Copy a file to general my files user's
if (api_get_setting('allow_social_tool') == 'true' && api_get_setting( if (api_get_setting('allow_social_tool') == 'true' && api_get_setting('users_copy_files') == 'true' && api_get_user_id() != 0 && !api_is_anonymous()
'users_copy_files'
) == 'true' && api_get_user_id() != 0 && !api_is_anonymous()
) { ) {
$document_info = DocumentManager::get_document_data_by_id($_GET['id'], api_get_course_id(), true); $document_info = DocumentManager::get_document_data_by_id($_GET['id'], api_get_course_id(), true);
$parent_id = $document_info['parent_id']; $parent_id = $document_info['parent_id'];
@ -217,7 +215,7 @@ switch ($action) {
@mkdir($user_folder, $perm, true); @mkdir($user_folder, $perm, true);
} }
$file = $sys_course_path.$_course['path'].'/document'.$document_info['path']; $file = $sys_course_path.$course_info['path'].'/document'.$document_info['path'];
$copyfile = $user_folder.basename($document_info['path']); $copyfile = $user_folder.basename($document_info['path']);
$cidReq = Security::remove_XSS($_GET['cidReq']); $cidReq = Security::remove_XSS($_GET['cidReq']);
$id_session = Security::remove_XSS($_GET['id_session']); $id_session = Security::remove_XSS($_GET['id_session']);
@ -241,7 +239,7 @@ switch ($action) {
).'&amp;action=copytomyfiles&amp;id='.$document_info['id'].'&amp;copy=yes">'.get_lang('Yes').'</a></p>'; ).'&amp;action=copytomyfiles&amp;id='.$document_info['id'].'&amp;copy=yes">'.get_lang('Yes').'</a></p>';
if (!isset($_GET['copy'])) { if (!isset($_GET['copy'])) {
$message = Display::return_message($message, 'warning', false); $message = Display::return_message($message, 'warning', false);
} } var_dump($file, $copyfile);exit;
if (Security::remove_XSS($_GET['copy']) == 'yes') { if (Security::remove_XSS($_GET['copy']) == 'yes') {
if (!copy($file, $copyfile)) { if (!copy($file, $copyfile)) {
$message = Display::return_message(get_lang('CopyFailed'), 'error'); $message = Display::return_message(get_lang('CopyFailed'), 'error');
@ -254,6 +252,7 @@ switch ($action) {
} }
} }
} else { } else {
if (!copy($file, $copyfile)) { if (!copy($file, $copyfile)) {
$message = Display::return_message(get_lang('CopyFailed'), 'error'); $message = Display::return_message(get_lang('CopyFailed'), 'error');
} else { } else {
@ -439,7 +438,7 @@ if ($to_group_id != 0 && $curdirpath == '/') {
//if (!$is_allowed_to_edit || api_is_coach()) { before //if (!$is_allowed_to_edit || api_is_coach()) { before
if (!$is_allowed_to_edit && api_is_coach()) { if (!$is_allowed_to_edit && api_is_coach()) {
if ($curdirpath != '/' && !(DocumentManager::is_visible($curdirpath, $_course, api_get_session_id(), 'folder'))) { if ($curdirpath != '/' && !(DocumentManager::is_visible($curdirpath, $course_info, api_get_session_id(), 'folder'))) {
api_not_allowed(true); api_not_allowed(true);
} }
} }
@ -453,7 +452,7 @@ if ($session_id == 0) {
$to_group_id = 0; $to_group_id = 0;
$visibility = 0; $visibility = 0;
FileManager::create_unexisting_directory( FileManager::create_unexisting_directory(
$_course, $course_info,
api_get_user_id(), api_get_user_id(),
api_get_session_id(), api_get_session_id(),
$to_group_id, $to_group_id,
@ -471,7 +470,7 @@ if ($session_id == 0) {
$to_group_id = 0; $to_group_id = 0;
$visibility = 1; $visibility = 1;
FileManager::create_unexisting_directory( FileManager::create_unexisting_directory(
$_course, $course_info,
api_get_user_id(), api_get_user_id(),
api_get_session_id(), api_get_session_id(),
$to_group_id, $to_group_id,
@ -490,7 +489,7 @@ if ($session_id == 0) {
$to_group_id = 0; $to_group_id = 0;
$visibility = 0; $visibility = 0;
FileManager::create_unexisting_directory( FileManager::create_unexisting_directory(
$_course, $course_info,
api_get_user_id(), api_get_user_id(),
api_get_session_id(), api_get_session_id(),
$to_group_id, $to_group_id,
@ -510,7 +509,7 @@ if ($session_id == 0) {
$to_group_id = 0; $to_group_id = 0;
$visibility = 1; $visibility = 1;
FileManager::create_unexisting_directory( FileManager::create_unexisting_directory(
$_course, $course_info,
api_get_user_id(), api_get_user_id(),
api_get_session_id(), api_get_session_id(),
$to_group_id, $to_group_id,
@ -577,7 +576,7 @@ $htmlHeadXtra[] = '<script type="text/javascript" src="'.$js_path.'jquery-jplaye
$mediaplayer_path = api_get_path(WEB_LIBRARY_PATH).'mediaplayer/player.swf'; $mediaplayer_path = api_get_path(WEB_LIBRARY_PATH).'mediaplayer/player.swf';
$docs_and_folders = DocumentManager::get_all_document_data( $docs_and_folders = DocumentManager::get_all_document_data(
$_course, $course_info,
$curdirpath, $curdirpath,
$to_group_id, $to_group_id,
null, null,
@ -633,13 +632,14 @@ if ($to_group_id != 0) { // Add group name after for group documents
/* Introduction section (editable by course admins) */ /* Introduction section (editable by course admins) */
if (!empty($_SESSION['_gid'])) { if (!empty($to_group_id)) {
Display::display_introduction_section(TOOL_DOCUMENT.$_SESSION['_gid']); Display::display_introduction_section(TOOL_DOCUMENT.$to_group_id);
} else { } else {
Display::display_introduction_section(TOOL_DOCUMENT); Display::display_introduction_section(TOOL_DOCUMENT);
} }
// ACTION MENU // ACTION MENU
$moveTo = isset($_POST['move_to']) ? Security::remove_XSS($_POST['move_to']) : null;
/* MOVE FILE OR DIRECTORY */ /* MOVE FILE OR DIRECTORY */
//Only teacher and all users into their group and each user into his/her shared folder //Only teacher and all users into their group and each user into his/her shared folder
@ -647,7 +647,7 @@ if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_fold
api_get_user_id(), api_get_user_id(),
$curdirpath, $curdirpath,
$session_id $session_id
) || is_my_shared_folder(api_get_user_id(), Security::remove_XSS($_POST['move_to']), $session_id) ) || is_my_shared_folder(api_get_user_id(), $moveTo, $session_id)
) { ) {
if (isset($_GET['move']) && $_GET['move'] != '') { if (isset($_GET['move']) && $_GET['move'] != '') {
@ -666,7 +666,7 @@ if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_fold
} }
if (!$is_allowed_to_edit) { if (!$is_allowed_to_edit) {
if (DocumentManager::check_readonly($_course, api_get_user_id(), $my_get_move)) { if (DocumentManager::check_readonly($course_info, api_get_user_id(), $my_get_move)) {
api_not_allowed(); api_not_allowed();
} }
} }
@ -674,7 +674,7 @@ if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_fold
$move_path = $document_to_move['path']; $move_path = $document_to_move['path'];
if (!empty($document_to_move)) { if (!empty($document_to_move)) {
$folders = DocumentManager::get_all_document_folders( $folders = DocumentManager::get_all_document_folders(
$_course, $course_info,
$to_group_id, $to_group_id,
$is_allowed_to_edit || $group_member_with_upload_rights $is_allowed_to_edit || $group_member_with_upload_rights
); );
@ -709,7 +709,7 @@ if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_fold
if (isset($_POST['move_to']) && isset($_POST['move_file'])) { if (isset($_POST['move_to']) && isset($_POST['move_file'])) {
if (!$is_allowed_to_edit) { if (!$is_allowed_to_edit) {
if (DocumentManager::check_readonly($_course, api_get_user_id(), $_POST['move_file'])) { if (DocumentManager::check_readonly($course_info, api_get_user_id(), $_POST['move_file'])) {
api_not_allowed(); api_not_allowed();
} }
} }
@ -1501,16 +1501,18 @@ $column_show[] = 0;
$column_order = array(); $column_order = array();
if (count($row) == 12) { if (isset($row)) {
//teacher if (count($row) == 12) {
$column_order[2] = 8; //name //teacher
$column_order[3] = 7; $column_order[2] = 8; //name
$column_order[4] = 6; $column_order[3] = 7;
} elseif (count($row) == 10) { $column_order[4] = 6;
//student } elseif (count($row) == 10) {
$column_order[1] = 6; //student
$column_order[2] = 5; $column_order[1] = 6;
$column_order[3] = 4; $column_order[2] = 5;
$column_order[3] = 4;
}
} }
$default_column = $is_allowed_to_edit ? 2 : 1; $default_column = $is_allowed_to_edit ? 2 : 1;

@ -39,7 +39,7 @@ $session = array();
$user_name = $user_info['complete_name']; $user_name = $user_info['complete_name'];
$course_list = SessionManager::get_course_list_by_session_id ($session_id); $course_list = SessionManager::get_course_list_by_session_id ($session_id);
$session_list = SessionManager::get_session_by_course($course_code); $session_list = SessionManager::get_session_by_course($course_id);
$total_quota_bytes = DocumentManager::get_course_quota(); $total_quota_bytes = DocumentManager::get_course_quota();

@ -136,7 +136,7 @@ header('Pragma: no-cache');
$browser_display_title = 'Documents - '.Security::remove_XSS($_GET['cidReq']).' - '.$file; $browser_display_title = 'Documents - '.Security::remove_XSS($_GET['cidReq']).' - '.$file;
// Only admins get to see the "no frames" link in pageheader.php, so students get a header that's not so high // Only admins get to see the "no frames" link in pageheader.php, so students get a header that's not so high
$frameheight = 135; $frameheight = 135;
if ($is_courseAdmin) { if (api_is_course_admin()) {
$frameheight = 165; $frameheight = 165;
} }

@ -104,7 +104,7 @@ class Dropbox_Work {
$this->description = $description; $this->description = $description;
$this->author = api_get_person_name($_user['firstName'], $_user['lastName']); $this->author = api_get_person_name($_user['firstName'], $_user['lastName']);
$this->last_upload_date = api_get_utc_datetime(); $this->last_upload_date = api_get_utc_datetime();
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
// Check if object exists already. If it does, the old object is used // Check if object exists already. If it does, the old object is used
@ -121,10 +121,10 @@ class Dropbox_Work {
if ($this->isOldWork) { if ($this->isOldWork) {
$this->id = $res['id']; $this->id = $res['id'];
$this->upload_date = $res['upload_date']; $this->upload_date = $res['upload_date'];
$sql = "UPDATE ".$dropbox_cnf["tbl_file"]." SET $sql = "UPDATE ".$dropbox_cnf["tbl_file"]." SET
filesize = '".Database::escape_string($this->filesize)."' , filesize = '".Database::escape_string($this->filesize)."' ,
title = '".Database::escape_string($this->title)."', title = '".Database::escape_string($this->title)."',
description = '".Database::escape_string($this->description)."', description = '".Database::escape_string($this->description)."',
author = '".Database::escape_string($this->author)."', author = '".Database::escape_string($this->author)."',
last_upload_date = '".Database::escape_string($this->last_upload_date)."' last_upload_date = '".Database::escape_string($this->last_upload_date)."'
WHERE c_id = $course_id AND id='".Database::escape_string($this->id)."'"; WHERE c_id = $course_id AND id='".Database::escape_string($this->id)."'";
@ -132,7 +132,7 @@ class Dropbox_Work {
} else { } else {
$this->upload_date = $this->last_upload_date; $this->upload_date = $this->last_upload_date;
$sql = "INSERT INTO ".$dropbox_cnf['tbl_file']." (c_id, uploader_id, filename, filesize, title, description, author, upload_date, last_upload_date, session_id) $sql = "INSERT INTO ".$dropbox_cnf['tbl_file']." (c_id, uploader_id, filename, filesize, title, description, author, upload_date, last_upload_date, session_id)
VALUES ( $course_id, VALUES ( $course_id,
'".Database::escape_string($this->uploader_id)."' '".Database::escape_string($this->uploader_id)."'
, '".Database::escape_string($this->filename)."' , '".Database::escape_string($this->filename)."'
, '".Database::escape_string($this->filesize)."' , '".Database::escape_string($this->filesize)."'
@ -150,7 +150,7 @@ class Dropbox_Work {
// Insert entries into person table // Insert entries into person table
$sql = "INSERT INTO ".$dropbox_cnf['tbl_person']." (c_id, file_id, user_id) $sql = "INSERT INTO ".$dropbox_cnf['tbl_person']." (c_id, file_id, user_id)
VALUES ($course_id, VALUES ($course_id,
'".Database::escape_string($this->id)."' '".Database::escape_string($this->id)."'
, '".Database::escape_string($this->uploader_id)."' , '".Database::escape_string($this->uploader_id)."'
)"; )";
@ -163,8 +163,8 @@ class Dropbox_Work {
* @param unknown_type $id * @param unknown_type $id
*/ */
function _createExistingWork($id) { function _createExistingWork($id) {
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
global $_user, $dropbox_cnf; global $_user, $dropbox_cnf;
// Do some sanity checks // Do some sanity checks
@ -255,7 +255,7 @@ class Dropbox_SentWork extends Dropbox_Work
global $dropbox_cnf; global $dropbox_cnf;
// Call constructor of Dropbox_Work object // Call constructor of Dropbox_Work object
$this->Dropbox_Work($uploader_id, $title, $description, $author, $filename, $filesize); $this->Dropbox_Work($uploader_id, $title, $description, $author, $filename, $filesize);
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
// Do sanity checks on recipient_ids array & property fillin // Do sanity checks on recipient_ids array & property fillin
@ -287,14 +287,14 @@ class Dropbox_SentWork extends Dropbox_Work
// Insert data in dropbox_post and dropbox_person table for each recipient // Insert data in dropbox_post and dropbox_person table for each recipient
foreach ($this->recipients as $rec) { foreach ($this->recipients as $rec) {
$file_id = (int)$this->id; $file_id = (int)$this->id;
$user_id = (int)$rec['id']; $user_id = (int)$rec['id'];
$sql = "INSERT INTO $table_post (c_id, file_id, dest_user_id, session_id) $sql = "INSERT INTO $table_post (c_id, file_id, dest_user_id, session_id)
VALUES ($course_id, $file_id, $user_id, $session_id)"; VALUES ($course_id, $file_id, $user_id, $session_id)";
$result = Database::query($sql); $result = Database::query($sql);
// If work already exists no error is generated // If work already exists no error is generated
/** /**
* Poster is already added when work is created - not so good to split logic * Poster is already added when work is created - not so good to split logic
*/ */
//if ($user_id != $user_id) { //if ($user_id != $user_id) {
// Insert entries into person table // Insert entries into person table
@ -308,7 +308,8 @@ class Dropbox_SentWork extends Dropbox_Work
//} //}
// Update item_property table for each recipient // Update item_property table for each recipient
global $_course, $dropbox_cnf; global $dropbox_cnf;
$_course = api_get_course_info();
if (($ownerid = $this->uploader_id) > $dropbox_cnf['mailingIdBase']) { if (($ownerid = $this->uploader_id) > $dropbox_cnf['mailingIdBase']) {
$ownerid = getUserOwningThisMailing($ownerid); $ownerid = getUserOwningThisMailing($ownerid);
} }
@ -326,10 +327,10 @@ class Dropbox_SentWork extends Dropbox_Work
*/ */
function _createExistingSentWork ($id) { function _createExistingSentWork ($id) {
global $dropbox_cnf; global $dropbox_cnf;
$id = intval($id); $id = intval($id);
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
// Call constructor of Dropbox_Work object // Call constructor of Dropbox_Work object
$this->Dropbox_Work($id); $this->Dropbox_Work($id);
@ -341,7 +342,7 @@ class Dropbox_SentWork extends Dropbox_Work
WHERE c_id = $course_id AND file_id='".Database::escape_string($id)."'"; WHERE c_id = $course_id AND file_id='".Database::escape_string($id)."'";
$result = Database::query($sql); $result = Database::query($sql);
while ($res = Database::fetch_array($result, 'ASSOC')) { while ($res = Database::fetch_array($result, 'ASSOC')) {
// Check for deleted users // Check for deleted users
$dest_user_id = $res['dest_user_id']; $dest_user_id = $res['dest_user_id'];
$user_info = api_get_user_info($dest_user_id); $user_info = api_get_user_info($dest_user_id);
@ -350,10 +351,10 @@ class Dropbox_SentWork extends Dropbox_Work
$this->recipients[] = array('id' => -1, 'name' => get_lang('Unknown', '')); $this->recipients[] = array('id' => -1, 'name' => get_lang('Unknown', ''));
} else { } else {
$this->recipients[] = array( $this->recipients[] = array(
'id' => $dest_user_id, 'id' => $dest_user_id,
'name' => $user_info['complete_name'], 'name' => $user_info['complete_name'],
'user_id' => $dest_user_id, 'user_id' => $dest_user_id,
'feedback_date' => $res['feedback_date'], 'feedback_date' => $res['feedback_date'],
'feedback' => $res['feedback']); 'feedback' => $res['feedback']);
} }
} }
@ -380,8 +381,8 @@ class Dropbox_Person
* @return Dropbox_Person * @return Dropbox_Person
*/ */
function Dropbox_Person($userId, $isCourseAdmin, $isCourseTutor) { function Dropbox_Person($userId, $isCourseAdmin, $isCourseTutor) {
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
// Fill in properties // Fill in properties
$this->userId = $userId; $this->userId = $userId;
$this->isCourseAdmin = $isCourseAdmin; $this->isCourseAdmin = $isCourseAdmin;
@ -393,32 +394,32 @@ class Dropbox_Person
$session_id = api_get_session_id(); $session_id = api_get_session_id();
$condition_session = api_get_session_condition($session_id); $condition_session = api_get_session_condition($session_id);
$post_tbl = Database::get_course_table(TABLE_DROPBOX_POST); $post_tbl = Database::get_course_table(TABLE_DROPBOX_POST);
$person_tbl = Database::get_course_table(TABLE_DROPBOX_PERSON); $person_tbl = Database::get_course_table(TABLE_DROPBOX_PERSON);
$file_tbl = Database::get_course_table(TABLE_DROPBOX_FILE); $file_tbl = Database::get_course_table(TABLE_DROPBOX_FILE);
// Find all entries where this person is the recipient // Find all entries where this person is the recipient
$sql = "SELECT DISTINCT r.file_id, r.cat_id $sql = "SELECT DISTINCT r.file_id, r.cat_id
FROM $post_tbl r INNER JOIN $person_tbl p FROM $post_tbl r INNER JOIN $person_tbl p
ON (r.file_id = p.file_id AND r.c_id = $course_id AND p.c_id = $course_id ) ON (r.file_id = p.file_id AND r.c_id = $course_id AND p.c_id = $course_id )
WHERE WHERE
p.user_id = ".intval($this->userId)." AND p.user_id = ".intval($this->userId)." AND
r.dest_user_id = ".intval($this->userId)." $condition_session "; r.dest_user_id = ".intval($this->userId)." $condition_session ";
$result = Database::query($sql); $result = Database::query($sql);
while ($res = Database::fetch_array($result)) { while ($res = Database::fetch_array($result)) {
$temp = new Dropbox_Work($res['file_id']); $temp = new Dropbox_Work($res['file_id']);
$temp->category = $res['cat_id']; $temp->category = $res['cat_id'];
$this->receivedWork[] = $temp; $this->receivedWork[] = $temp;
} }
// Find all entries where this person is the sender/uploader // Find all entries where this person is the sender/uploader
$sql = "SELECT DISTINCT f.id $sql = "SELECT DISTINCT f.id
FROM $file_tbl f INNER JOIN $person_tbl p FROM $file_tbl f INNER JOIN $person_tbl p
ON (f.id = p.file_id AND f.c_id = $course_id AND p.c_id = $course_id) ON (f.id = p.file_id AND f.c_id = $course_id AND p.c_id = $course_id)
WHERE WHERE
f.uploader_id = '".Database::escape_string($this->userId)."' AND f.uploader_id = '".Database::escape_string($this->userId)."' AND
p.user_id = '".Database::escape_string($this->userId)."' p.user_id = '".Database::escape_string($this->userId)."'
$condition_session $condition_session
"; ";
$result = Database::query($sql); $result = Database::query($sql);
@ -523,7 +524,7 @@ class Dropbox_Person
* Deletes all the received work of this person * Deletes all the received work of this person
*/ */
function deleteAllReceivedWork () { function deleteAllReceivedWork () {
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
global $dropbox_cnf; global $dropbox_cnf;
// Delete entries in person table concerning received works // Delete entries in person table concerning received works
foreach ($this->receivedWork as $w) { foreach ($this->receivedWork as $w) {
@ -537,8 +538,8 @@ class Dropbox_Person
*/ */
function deleteReceivedWorkFolder($id) { function deleteReceivedWorkFolder($id) {
global $dropbox_cnf; global $dropbox_cnf;
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
$id = intval($id); $id = intval($id);
$sql = "DELETE FROM ".$dropbox_cnf['tbl_file']." WHERE c_id = $course_id AND cat_id = '".$id."' "; $sql = "DELETE FROM ".$dropbox_cnf['tbl_file']." WHERE c_id = $course_id AND cat_id = '".$id."' ";
if (!Database::query($sql)) return false; if (!Database::query($sql)) return false;
@ -555,7 +556,7 @@ class Dropbox_Person
* @param integer $id * @param integer $id
*/ */
function deleteReceivedWork($id) { function deleteReceivedWork($id) {
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
global $dropbox_cnf; global $dropbox_cnf;
$id = intval($id); $id = intval($id);
@ -573,7 +574,7 @@ class Dropbox_Person
} }
} }
// Delete entries in person table concerning received works // Delete entries in person table concerning received works
$sql = "DELETE FROM ".$dropbox_cnf['tbl_person']." WHERE c_id = $course_id AND user_id = '".$this->userId."' AND file_id ='".$id."'"; $sql = "DELETE FROM ".$dropbox_cnf['tbl_person']." WHERE c_id = $course_id AND user_id = '".$this->userId."' AND file_id ='".$id."'";
Database::query($sql); Database::query($sql);
removeUnusedFiles(); // Check for unused files removeUnusedFiles(); // Check for unused files
} }
@ -582,7 +583,7 @@ class Dropbox_Person
* Deletes all the sent dropbox files of this person * Deletes all the sent dropbox files of this person
*/ */
function deleteAllSentWork() { function deleteAllSentWork() {
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
global $dropbox_cnf; global $dropbox_cnf;
//delete entries in person table concerning sent works //delete entries in person table concerning sent works
foreach ($this->sentWork as $w) { foreach ($this->sentWork as $w) {
@ -599,7 +600,7 @@ class Dropbox_Person
*/ */
function deleteSentWork($id) { function deleteSentWork($id) {
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
global $dropbox_cnf; global $dropbox_cnf;
$id = intval($id); $id = intval($id);
@ -631,8 +632,9 @@ class Dropbox_Person
*/ */
function updateFeedback($id, $text) { function updateFeedback($id, $text) {
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
global $_course, $dropbox_cnf; global $dropbox_cnf;
$_course = api_get_course_info();
$id = intval($id); $id = intval($id);
// index check // index check

@ -27,7 +27,7 @@ $(document).ready(function () {
*/ */
function handle_multiple_actions() function handle_multiple_actions()
{ {
global $_user, $is_courseAdmin, $is_courseTutor; global $_user, $is_courseTutor;
// STEP 1: are we performing the actions on the received or on the sent files? // STEP 1: are we performing the actions on the received or on the sent files?
if ($_POST['action'] == 'delete_received' || $_POST['action'] == 'download_received') { if ($_POST['action'] == 'delete_received' || $_POST['action'] == 'download_received') {
@ -56,7 +56,7 @@ function handle_multiple_actions()
// STEP 3A: deleting // STEP 3A: deleting
if ($_POST['action'] == 'delete_received' || $_POST['action'] == 'delete_sent') { if ($_POST['action'] == 'delete_received' || $_POST['action'] == 'delete_sent') {
$dropboxfile = new Dropbox_Person($_user['user_id'], $is_courseAdmin, $is_courseTutor); $dropboxfile = new Dropbox_Person($_user['user_id'], api_is_course_admin(), $is_courseTutor);
foreach ($checked_file_ids as $key => $value) { foreach ($checked_file_ids as $key => $value) {
if ($_GET['view'] == 'received') { if ($_GET['view'] == 'received') {
$dropboxfile->deleteReceivedWork($value); $dropboxfile->deleteReceivedWork($value);
@ -114,7 +114,7 @@ function delete_category($action, $id, $user_id = null)
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
global $dropbox_cnf; global $dropbox_cnf;
global $is_courseAdmin, $is_courseTutor; global $is_courseTutor;
if (empty($user_id)) { if (empty($user_id)) {
$user_id = api_get_user_id(); $user_id = api_get_user_id();
@ -154,7 +154,7 @@ function delete_category($action, $id, $user_id = null)
$result = Database::query($sql); $result = Database::query($sql);
while ($row = Database::fetch_array($result)) { while ($row = Database::fetch_array($result)) {
$dropboxfile = new Dropbox_Person($_user['user_id'], $is_courseAdmin, $is_courseTutor); $dropboxfile = new Dropbox_Person($_user['user_id'], api_is_course_admin(), $is_courseTutor);
if ($action == 'deletereceivedcategory') { if ($action == 'deletereceivedcategory') {
$dropboxfile->deleteReceivedWork($row[$id_field]); $dropboxfile->deleteReceivedWork($row[$id_field]);
} }
@ -492,10 +492,10 @@ function display_addcategory_form($category_name = '', $id = '', $action)
*/ */
function display_add_form() function display_add_form()
{ {
global $_user, $is_courseAdmin, $is_courseTutor, $course_info, $origin, $dropbox_unid; global $_user, $is_courseTutor, $course_info, $origin, $dropbox_unid;
$token = Security::get_token(); $token = Security::get_token();
$dropbox_person = new Dropbox_Person(api_get_user_id(), $is_courseAdmin, $is_courseTutor); $dropbox_person = new Dropbox_Person(api_get_user_id(), api_is_course_admin(), $is_courseTutor);
?> ?>
<form method="post" action="index.php?view_received_category=<?php echo Security::remove_XSS( <form method="post" action="index.php?view_received_category=<?php echo Security::remove_XSS(
$_GET['view_received_category'] $_GET['view_received_category']
@ -561,7 +561,7 @@ function display_add_form()
); );
} }
$complete_user_list2 = CourseManager::get_coach_list_from_course_code( $complete_user_list2 = CourseManager::get_coach_list_from_course_code(
$course_info['code'], $course_info['real_id'],
api_get_session_id() api_get_session_id()
); );
$complete_user_list_for_dropbox = array_merge($complete_user_list_for_dropbox, $complete_user_list2); $complete_user_list_for_dropbox = array_merge($complete_user_list_for_dropbox, $complete_user_list2);
@ -708,10 +708,7 @@ function getLoginFromId($id)
*/ */
function isCourseMember($user_id) function isCourseMember($user_id)
{ {
global $_course; $is_course_member = CourseManager::is_user_subscribed_in_course($user_id, api_get_course_int_id(), true);
$course_code = $_course['sysCode'];
$is_course_member = CourseManager::is_user_subscribed_in_course($user_id, $course_code, true);
return $is_course_member; return $is_course_member;
} }
@ -834,7 +831,7 @@ function store_add_dropbox()
{ {
global $dropbox_cnf; global $dropbox_cnf;
global $_user; global $_user;
global $_course; $_course = api_get_course_info();
// Validating the form data // Validating the form data
@ -1174,7 +1171,7 @@ function store_feedback()
*/ */
function zip_download($array) function zip_download($array)
{ {
global $_course; $_course = api_get_course_info();
global $dropbox_cnf; global $dropbox_cnf;
global $files; global $files;
@ -1351,14 +1348,16 @@ function check_number_feedback($key, $array)
* *
* @todo consider moving this function to a more appropriate place. * @todo consider moving this function to a more appropriate place.
*/ */
function get_last_tool_access($tool, $course_code = '', $user_id = '') function get_last_tool_access($tool, $courseId = '', $user_id = '')
{ {
global $_course, $_user; global $_course, $_user;
// The default values of the parameters // The default values of the parameters
if ($course_code == '') { if ($courseId == '') {
$course_code = $_course['id']; $courseId = api_get_course_int_id();
} }
$courseId = intval($courseId);
if ($user_id == '') { if ($user_id == '') {
$user_id = $_user['user_id']; $user_id = $_user['user_id'];
} }
@ -1367,7 +1366,7 @@ function get_last_tool_access($tool, $course_code = '', $user_id = '')
$table_last_access = Database::get_statistic_table('track_e_lastaccess'); $table_last_access = Database::get_statistic_table('track_e_lastaccess');
$sql = "SELECT access_date FROM $table_last_access WHERE access_user_id='".Database::escape_string($user_id)."' $sql = "SELECT access_date FROM $table_last_access WHERE access_user_id='".Database::escape_string($user_id)."'
AND access_cours_code='".Database::escape_string($course_code)."' AND c_id ='".Database::escape_string($courseId)."'
AND access_tool='".Database::escape_string($tool)."' AND access_tool='".Database::escape_string($tool)."'
ORDER BY access_date DESC ORDER BY access_date DESC
LIMIT 1"; LIMIT 1";

@ -63,13 +63,14 @@ require_once api_get_path(SYS_CODE_PATH).'document/document.inc.php'; // we use
$user_id = api_get_user_id(); $user_id = api_get_user_id();
$course_code = api_get_course_id(); $course_code = api_get_course_id();
$courseId = api_get_course_int_id();
$course_info = Database::get_course_info($course_code); $course_info = Database::get_course_info($course_code);
$session_id = api_get_session_id(); $session_id = api_get_session_id();
if (empty($session_id)) { if (empty($session_id)) {
$is_course_member = CourseManager::is_user_subscribed_in_course($user_id, $course_code, false); $is_course_member = CourseManager::is_user_subscribed_in_course($user_id, $courseId, false);
} else { } else {
$is_course_member = CourseManager::is_user_subscribed_in_course($user_id, $course_code, true, $session_id); $is_course_member = CourseManager::is_user_subscribed_in_course($user_id, $courseId, true, $session_id);
} }
/* Object Initialisation */ /* Object Initialisation */
@ -79,7 +80,7 @@ if (empty($session_id)) {
// @todo consider moving the javascripts in a function that displays the javascripts // @todo consider moving the javascripts in a function that displays the javascripts
// only when it is needed. // only when it is needed.
if ($_GET['action'] == 'add') { if ($_GET['action'] == 'add') {
$dropbox_person = new Dropbox_Person($_user['user_id'], $is_courseAdmin, $is_courseTutor); $dropbox_person = new Dropbox_Person($_user['user_id'], api_is_course_admin(), $is_courseTutor);
} }
/* Create javascript and htmlHeaders */ /* Create javascript and htmlHeaders */

@ -107,7 +107,7 @@ if (isset($_POST['submitWork'])) {
} }
if ($dropbox_overwrite) { if ($dropbox_overwrite) {
$dropbox_person = new Dropbox_Person($_user['user_id'], $is_courseAdmin, $is_courseTutor); $dropbox_person = new Dropbox_Person($_user['user_id'], api_is_course_admin(), $is_courseTutor);
foreach ($dropbox_person->sentWork as $w) { foreach ($dropbox_person->sentWork as $w) {
if ($w->title == $dropbox_filename) { if ($w->title == $dropbox_filename) {
@ -205,163 +205,6 @@ if (isset($_POST['submitWork'])) {
} }
} // end if ( isset( $_POST['submitWork'])) } // end if ( isset( $_POST['submitWork']))
/**
* EXAMINE OR SEND MAILING (NEW)
* @deprecated The $_GET[mailingIndex] is never called
*/
/*
if (isset($_GET['mailingIndex'])) {
// examine or send
$dropbox_person = new Dropbox_Person( $_user['user_id'], $is_courseAdmin, $is_courseTutor);
if (isset($_SESSION['sentOrder'])) {
$dropbox_person->orderSentWork($_SESSION['sentOrder']);
}
$i = $_GET['mailingIndex'];
$mailing_item = $dropbox_person->sentWork[$i];
$mailing_title = $mailing_item->title;
$mailing_file = dropbox_cnf('sysPath') . '/' . $mailing_item->filename;
$errormsg = '<b>' . $mailing_item->recipients[0]['name'] . ' ('
. "<a href='dropbox_download.php?origin=$origin&id=".urlencode($mailing_item->id)."'>"
. htmlspecialchars($mailing_title, ENT_QUOTES, api_get_system_encoding()) . '</a>):</b><br /><br />';
if (preg_match( dropbox_cnf('mailingZipRegexp'), $mailing_title, $nameParts)) {
$var = api_strtoupper($nameParts[2]); // the variable part of the name
$course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sel = "SELECT u.user_id, u.lastname, u.firstname, cu.status
FROM ".$_configuration['main_database'].".user u
LEFT JOIN $course_user cu
ON cu.user_id = u.user_id AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND cu.course_code = '".$_course['sysCode']."'";
$sel .= " WHERE u.".dropbox_cnf("mailingWhere".$var)." = '";
$preFix = $nameParts[1]; $postFix = $nameParts[3];
$preLen = api_strlen($preFix); $postLen = api_strlen($postFix);
require api_get_path(LIBRARY_PATH) . 'pclzip/pclzip.lib.php';
$zipFile = new PclZip($mailing_file);
$goodFiles = array();
$zipContent = $zipFile->listContent();
$ucaseFiles = array();
if ($zipContent) {
foreach( $zipFile->listContent() as $thisContent) {
$thisFile = substr(strrchr('/' . $thisContent['filename'], '/'), 1);
$thisFileUcase = strtoupper($thisFile);
if (preg_match("~.(php.*|phtml)$~i", $thisFile)) {
$error = true;
$errormsg .= $thisFile . ': ' . get_lang('MailingZipPhp');
break;
} elseif (!$thisContent['folder']) {
if ($ucaseFiles[$thisFileUcase]) {
$error = true;
$errormsg .= $thisFile . ': ' . get_lang('MailingZipDups');
break;
} else {
$goodFiles[$thisFile] = findRecipient($thisFile);
$ucaseFiles[$thisFileUcase] = 'yep';
}
}
}
} else {
$error = true;
$errormsg .= get_lang('MailingZipEmptyOrCorrupt');
}
if (!$error) {
$students = array(); // collect all recipients in this course
foreach ($goodFiles as $thisFile => $thisRecip) {
$errormsg .= htmlspecialchars($thisFile, ENT_QUOTES, api_get_system_encoding()) . ': ';
if (is_string($thisRecip)) { // see findRecipient
$errormsg .= '<font color="#FF0000">'
. htmlspecialchars($thisRecip, ENT_QUOTES, api_get_system_encoding()) . '</font><br />';
} else {
if ( isset( $_GET['mailingSend'])) {
$errormsg .= get_lang('MailingFileSentTo');
} else {
$errormsg .= get_lang('MailingFileIsFor');
}
$errormsg .= htmlspecialchars(api_get_person_name($thisRecip[2], $thisRecip[1]), ENT_QUOTES, api_get_system_encoding());
if (is_null($thisRecip[3])) {
$errormsg .= get_lang('MailingFileNotRegistered');
} else {
$students[] = $thisRecip[0];
}
$errormsg .= '<br />';
}
}
// find student course members not among the recipients
$course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT u.lastname, u.firstname
FROM $course_user cu
LEFT JOIN ".$_configuration['main_database'].".user u
ON cu.user_id = u.user_id AND cu.course_code = '".$_course['sysCode']."'
WHERE cu.status = 5
AND u.user_id NOT IN ('" . implode("', '" , $students) . "')";
$result = Database::query($sql);
if (Database::num_rows($result) > 0) {
$remainingUsers = '';
while ($res = Database::fetch_array($result)) {
$remainingUsers .= ', ' . htmlspecialchars(api_get_person_name($res[1], $res[0]), ENT_QUOTES, api_get_system_encoding());
}
$errormsg .= '<br />' . get_lang('MailingNothingFor') . api_substr($remainingUsers, 1) . '.<br />';
}
if (isset($_GET['mailingSend'])) {
chdir(dropbox_cnf('sysPath'));
$zipFile->extract(PCLZIP_OPT_REMOVE_ALL_PATH);
$mailingPseudoId = dropbox_cnf('mailingIdBase') + $mailing_item->id;
foreach ($goodFiles as $thisFile => $thisRecip) {
if (is_string($thisRecip)) { // remove problem file
@unlink(dropbox_cnf('sysPath') . '/' . $thisFile);
} else {
$newName = getLoginFromId( $_user['user_id']) . '_' . $thisFile . '_' . uniqid('');
if (rename(dropbox_cnf('sysPath') . '/' . $thisFile, dropbox_cnf('sysPath') . '/' . $newName))
new Dropbox_SentWork($mailingPseudoId, $thisFile, $mailing_item->description, $mailing_item->author, $newName, $thisContent['size'], array($thisRecip[0]));
}
}
$sendDT = api_get_utc_datetime();
// set filesize to zero on send, to avoid 2nd send (see index.php)
$sql = "UPDATE ".dropbox_cnf("tbl_file")."
SET filesize = '0' , upload_date = '".$sendDT."', last_upload_date = '".$sendDT."'
WHERE id='".addslashes($mailing_item->id)."'";
$result = Database::query($sql);
} elseif ($mailing_item->filesize != 0) {
$errormsg .= '<br />' . get_lang('MailingNotYetSent') . '<br />';
}
}
} else {
$error = true;
$errormsg .= get_lang('MailingWrongZipfile');
}
//EXAMINE OR SEND MAILING RESULTMESSAGE
if ($error) {
?>
<b><font color="#FF0000"><?php echo $errormsg?></font></b><br /><br />
<a href="index.php<?php echo "?origin=$origin"; ?>"><?php echo get_lang('BackList'); ?></a><br />
<?php
} else {
?>
<?php echo $errormsg?><br /><br />
<a href="index.php<?php echo "?origin=$origin"; ?>"><?php echo get_lang('BackList'); ?></a><br />
<?php
}
}
*/
function findRecipient($thisFile) function findRecipient($thisFile)
{ {
// string result = error message, array result = [user_id, lastname, firstname, status] // string result = error message, array result = [user_id, lastname, firstname, status]
@ -425,9 +268,9 @@ if (isset($_GET['deleteReceived']) || isset($_GET['deleteSent'])
) { ) {
if ($_GET['mailing']) { if ($_GET['mailing']) {
getUserOwningThisMailing($_GET['mailing'], $_user['user_id'], '408'); getUserOwningThisMailing($_GET['mailing'], $_user['user_id'], '408');
$dropbox_person = new Dropbox_Person($_GET['mailing'], $is_courseAdmin, $is_courseTutor); $dropbox_person = new Dropbox_Person($_GET['mailing'], api_is_course_admin(), $is_courseTutor);
} else { } else {
$dropbox_person = new Dropbox_Person($_user['user_id'], $is_courseAdmin, $is_courseTutor); $dropbox_person = new Dropbox_Person($_user['user_id'], api_is_course_admin(), $is_courseTutor);
} }
if (isset($_SESSION['sentOrder'])) { if (isset($_SESSION['sentOrder'])) {

@ -98,7 +98,7 @@ require_once 'dropbox_init.inc.php';
// get the last time the user accessed the tool // get the last time the user accessed the tool
if ($_SESSION[$_course['id']]['last_access'][TOOL_DROPBOX] == '') { if ($_SESSION[$_course['id']]['last_access'][TOOL_DROPBOX] == '') {
$last_access = get_last_tool_access(TOOL_DROPBOX, $_course['code'], $_user['user_id']); $last_access = get_last_tool_access(TOOL_DROPBOX, api_get_course_int_id(), $_user['user_id']);
$_SESSION[$_course['id']]['last_access'][TOOL_DROPBOX] = $last_access; $_SESSION[$_course['id']]['last_access'][TOOL_DROPBOX] = $last_access;
} else { } else {
$last_access = $_SESSION[$_course['id']]['last_access'][TOOL_DROPBOX]; $last_access = $_SESSION[$_course['id']]['last_access'][TOOL_DROPBOX];
@ -204,7 +204,7 @@ if (($action == 'deletereceivedfile' OR $action == 'deletesentfile') AND isset($
if (api_get_session_id() != 0 && !api_is_allowed_to_session_edit(false, true)) { if (api_get_session_id() != 0 && !api_is_allowed_to_session_edit(false, true)) {
api_not_allowed(); api_not_allowed();
} }
$dropboxfile = new Dropbox_Person(api_get_user_id(), $is_courseAdmin, $is_courseTutor); $dropboxfile = new Dropbox_Person(api_get_user_id(), api_is_course_admin(), $is_courseTutor);
if ($action == 'deletereceivedfile') { if ($action == 'deletereceivedfile') {
$dropboxfile->deleteReceivedWork($_GET['id']); $dropboxfile->deleteReceivedWork($_GET['id']);
$message = get_lang('ReceivedFileDeleted'); $message = get_lang('ReceivedFileDeleted');
@ -374,7 +374,7 @@ if ($action != 'add') {
} }
// Object initialisation // Object initialisation
$dropbox_person = new Dropbox_Person(api_get_user_id(), $is_courseAdmin, $is_courseTutor); // note: are the $is_courseAdmin and $is_courseTutor parameters needed???? $dropbox_person = new Dropbox_Person(api_get_user_id(), api_is_course_admin(), $is_courseTutor); // note: are the $is_courseAdmin and $is_courseTutor parameters needed????
// Constructing the array that contains the total number of feedback messages per document. // Constructing the array that contains the total number of feedback messages per document.
$number_feedback = get_total_number_feedback(); $number_feedback = get_total_number_feedback();
@ -525,7 +525,7 @@ if ($action != 'add') {
} }
// Object initialisation // Object initialisation
$dropbox_person = new Dropbox_Person(api_get_user_id(), $is_courseAdmin, $is_courseTutor); $dropbox_person = new Dropbox_Person(api_get_user_id(), api_is_course_admin(), $is_courseTutor);
// Constructing the array that contains the total number of feedback messages per document. // Constructing the array that contains the total number of feedback messages per document.
$number_feedback = get_total_number_feedback(); $number_feedback = get_total_number_feedback();

@ -76,7 +76,7 @@ if ( empty ( $objExercise ) )
$objExercise = $_SESSION['objExercise']; $objExercise = $_SESSION['objExercise'];
} }
$exercise_id = intval($_GET['exercise_id']); $exercise_id = intval($_GET['exercise_id']);
$is_allowedToEdit=$is_courseAdmin; $is_allowedToEdit=api_is_course_admin();
if (isset($_SESSION['gradebook'])){ if (isset($_SESSION['gradebook'])){
$gradebook= $_SESSION['gradebook']; $gradebook= $_SESSION['gradebook'];

@ -249,6 +249,7 @@ if (!empty($cancelQuestion)) {
if (!empty($clone_question) && !empty($objExercise->id)) { if (!empty($clone_question) && !empty($objExercise->id)) {
$old_question_obj = Question::read($clone_question, api_get_course_int_id()); $old_question_obj = Question::read($clone_question, api_get_course_int_id());
$old_question_obj->question = $old_question_obj->question.' - '.get_lang('Copy'); $old_question_obj->question = $old_question_obj->question.' - '.get_lang('Copy');
$new_id = $old_question_obj->duplicate(); $new_id = $old_question_obj->duplicate();
@ -333,9 +334,9 @@ function multiple_answer_true_false_onchange(variable) {
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/tag/jquery.fcbkcomplete.js" type="text/javascript" language="javascript"></script>'; $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/tag/jquery.fcbkcomplete.js" type="text/javascript" language="javascript"></script>';
$htmlHeadXtra[] = '<link href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/tag/style.css" rel="stylesheet" type="text/css" />'; $htmlHeadXtra[] = '<link href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/tag/style.css" rel="stylesheet" type="text/css" />';
$htmlHeadXtra[] = "<script type=\"text/javascript\" src=\"../plugin/hotspot/JavaScriptFlashGateway.js\"></script> $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_CODE_PATH).'plugin/hotspot/JavaScriptFlashGateway.js"></script>';
<script src=\"../plugin/hotspot/hotspot.js\" type=\"text/javascript\"></script> $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_CODE_PATH).'plugin/hotspot/hotspot.js"></script>';
<script language=\"JavaScript\" type=\"text/javascript\"> $htmlHeadXtra[] = "<script>
<!-- <!--
// Globals // Globals
// Major version of Flash required // Major version of Flash required

@ -26,7 +26,6 @@ if (isset($_REQUEST["cancel"])) {
} }
} }
//$is_courseAdmin = $_SESSION['is_courseAdmin'];
$newName = (!empty($_REQUEST['newName'])?$_REQUEST['newName']:''); $newName = (!empty($_REQUEST['newName'])?$_REQUEST['newName']:'');
$hotpotatoesName = (!empty($_REQUEST['hotpotatoesName'])?$_REQUEST['hotpotatoesName']:''); $hotpotatoesName = (!empty($_REQUEST['hotpotatoesName'])?$_REQUEST['hotpotatoesName']:'');

@ -463,9 +463,9 @@ class Exercise
$TBL_EXERCICE_QUESTION = Database::get_course_table(TABLE_QUIZ_TEST_QUESTION); $TBL_EXERCICE_QUESTION = Database::get_course_table(TABLE_QUIZ_TEST_QUESTION);
$TBL_QUESTIONS = Database::get_course_table(TABLE_QUIZ_QUESTION); $TBL_QUESTIONS = Database::get_course_table(TABLE_QUIZ_QUESTION);
$sql = "SELECT q.id $sql = "SELECT q.iid
FROM $TBL_EXERCICE_QUESTION e INNER JOIN $TBL_QUESTIONS q FROM $TBL_EXERCICE_QUESTION e INNER JOIN $TBL_QUESTIONS q
ON (e.question_id= q.id AND e.c_id = ".$this->course_id." AND q.c_id = ".$this->course_id.") ON (e.question_id = q.iid AND e.c_id = ".$this->course_id." AND q.c_id = ".$this->course_id.")
WHERE e.exercice_id = '".Database::escape_string($this->id)."' WHERE e.exercice_id = '".Database::escape_string($this->id)."'
ORDER BY question_order"; ORDER BY question_order";
@ -475,13 +475,11 @@ class Exercise
} }
$sql .= $limitCondition; $sql .= $limitCondition;
$columns = array('question', 'type', 'category', 'level', 'score', 'actions');
$result = Database::query($sql); $result = Database::query($sql);
$questions = array(); $questions = array();
if (Database::num_rows($result)) { if (Database::num_rows($result)) {
while ($question = Database::fetch_array($result, 'ASSOC')) { while ($question = Database::fetch_array($result, 'ASSOC')) {
$objQuestionTmp = Question::read($question['id']); $objQuestionTmp = Question::read($question['iid']);
$category_labels = Testcategory::return_category_labels($objQuestionTmp->category_list, $category_list); $category_labels = Testcategory::return_category_labels($objQuestionTmp->category_list, $category_list);
if (empty($category_labels)) { if (empty($category_labels)) {
@ -500,7 +498,7 @@ class Exercise
$questionType = Display::tag('div', Display::return_icon($typeImg, $typeExpl, array(), ICON_SIZE_MEDIUM).$question_media); $questionType = Display::tag('div', Display::return_icon($typeImg, $typeExpl, array(), ICON_SIZE_MEDIUM).$question_media);
$question = array( $question = array(
'id' => $question['id'], 'id' => $question['iid'],
'question' => $objQuestionTmp->selectTitle(), 'question' => $objQuestionTmp->selectTitle(),
'type' => $questionType, 'type' => $questionType,
'category' => Display::tag('div', '<a href="#" style="padding:0px; margin:0px;">'.$category_labels.'</a>'), 'category' => Display::tag('div', '<a href="#" style="padding:0px; margin:0px;">'.$category_labels.'</a>'),
@ -908,7 +906,7 @@ class Exercise
*/ */
function save($type_e = '') function save($type_e = '')
{ {
global $_course; $_course = api_get_course_info();
$TBL_EXERCICES = Database::get_course_table(TABLE_QUIZ_TEST); $TBL_EXERCICES = Database::get_course_table(TABLE_QUIZ_TEST);
$id = $this->id; $id = $this->id;
@ -4231,7 +4229,7 @@ class Exercise
$subject = get_lang('OpenQuestionsAttempted'); $subject = get_lang('OpenQuestionsAttempted');
if (api_get_session_id()) { if (api_get_session_id()) {
$teachers = CourseManager::get_coach_list_from_course_code($coursecode, api_get_session_id()); $teachers = CourseManager::get_coach_list_from_course_code($course_info['real_id'], api_get_session_id());
} else { } else {
$teachers = CourseManager::get_teacher_list_from_course_code($course_info['real_id']); $teachers = CourseManager::get_teacher_list_from_course_code($course_info['real_id']);
} }
@ -4313,7 +4311,7 @@ class Exercise
$subject = get_lang('OralQuestionsAttempted'); $subject = get_lang('OralQuestionsAttempted');
if (api_get_session_id()) { if (api_get_session_id()) {
$teachers = CourseManager::get_coach_list_from_course_code($coursecode, api_get_session_id()); $teachers = CourseManager::get_coach_list_from_course_code($course_info['real_id'], api_get_session_id());
} else { } else {
$teachers = CourseManager::get_teacher_list_from_course_code($course_info['real_id']); $teachers = CourseManager::get_teacher_list_from_course_code($course_info['real_id']);
} }

@ -1541,7 +1541,6 @@ function get_all_exercises($course_info = null, $session_id = 0, $check_publicat
{ {
$TBL_EXERCICES = Database :: get_course_table(TABLE_QUIZ_TEST); $TBL_EXERCICES = Database :: get_course_table(TABLE_QUIZ_TEST);
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
if (!empty($course_info) && !empty($course_info['real_id'])) { if (!empty($course_info) && !empty($course_info['real_id'])) {
$course_id = $course_info['real_id']; $course_id = $course_info['real_id'];
} }
@ -1554,7 +1553,7 @@ function get_all_exercises($course_info = null, $session_id = 0, $check_publicat
$time_conditions = ''; $time_conditions = '';
if ($check_publication_dates) { if ($check_publication_dates) {
$time_conditions = " AND ((start_time <> '0000-00-00 00:00:00' AND start_time < '$now' AND end_time <> '0000-00-00 00:00:00' AND end_time > '$now' ) OR "; //start and end are set $time_conditions = " AND ((start_time <> '0000-00-00 00:00:00' AND start_time < '$now' AND end_time <> '0000-00-00 00:00:00' AND end_time > '$now' ) OR "; //start and end are set
$time_conditions .= " (start_time <> '0000-00-00 00:00:00' AND start_time < '$now' AND end_time = '0000-00-00 00:00:00') OR "; // only start is set $time_conditions .= " (start_time <> '0000-00-00 00:00:00' AND start_time < '$now' AND end_time = '0000-00-00 00:00:00') OR "; // only start is set
$time_conditions .= " (start_time = '0000-00-00 00:00:00' AND end_time <> '0000-00-00 00:00:00' AND end_time > '$now') OR "; // only end is set $time_conditions .= " (start_time = '0000-00-00 00:00:00' AND end_time <> '0000-00-00 00:00:00' AND end_time > '$now') OR "; // only end is set
$time_conditions .= " (start_time = '0000-00-00 00:00:00' AND end_time = '0000-00-00 00:00:00')) "; // nothing is set $time_conditions .= " (start_time = '0000-00-00 00:00:00' AND end_time = '0000-00-00 00:00:00')) "; // nothing is set
@ -1566,7 +1565,8 @@ function get_all_exercises($course_info = null, $session_id = 0, $check_publicat
//All exercises //All exercises
$conditions = array('where' => array('active = ? AND (session_id = 0 OR session_id = ? ) AND c_id = ? '.$time_conditions => array('1', $session_id, $course_id)), 'order' => 'title'); $conditions = array('where' => array('active = ? AND (session_id = 0 OR session_id = ? ) AND c_id = ? '.$time_conditions => array('1', $session_id, $course_id)), 'order' => 'title');
} }
return Database::select('*', $TBL_EXERCICES, $conditions); $result = Database::select('*', $TBL_EXERCICES, $conditions);
return $result;
} }
/** /**
@ -2397,7 +2397,12 @@ function display_question_list_by_attempt($objExercise, $exe_id, $save_user_resu
// No category for this question! // No category for this question!
if ($category_was_added_for_this_test == false) { if ($category_was_added_for_this_test == false) {
$category_list['none'] = array(); if (!isset($category_list['none'])) {
$category_list['none'] = array();
$category_list['none']['score'] = 0;
$category_list['none']['total'] = 0;
}
$category_list['none']['score'] += $my_total_score; $category_list['none']['score'] += $my_total_score;
$category_list['none']['total'] += $my_total_weight; $category_list['none']['total'] += $my_total_weight;
} }

@ -64,7 +64,7 @@ if (empty($id)) {
} }
if (api_is_course_session_coach(api_get_user_id(), api_get_course_id(), api_get_session_id())) { if (api_is_course_session_coach(api_get_user_id(), api_get_course_int_id(), api_get_session_id())) {
if (!api_coach_can_edit_view_results(api_get_course_id(), api_get_session_id())) { if (!api_coach_can_edit_view_results(api_get_course_id(), api_get_session_id())) {
api_not_allowed(true); api_not_allowed(true);
} }
@ -79,7 +79,7 @@ if (empty($track_exercise_info)) {
api_not_allowed(true); api_not_allowed(true);
} }
$exercise_id = $track_exercise_info['id']; $exercise_id = $track_exercise_info['iid'];
$exercise_date = $track_exercise_info['start_date']; $exercise_date = $track_exercise_info['start_date'];
$student_id = $track_exercise_info['exe_user_id']; $student_id = $track_exercise_info['exe_user_id'];
$learnpath_id = $track_exercise_info['orig_lp_id']; $learnpath_id = $track_exercise_info['orig_lp_id'];
@ -222,13 +222,14 @@ $arrans = array();
$user_restriction = $is_allowedToEdit ? '' : "AND user_id=".intval($student_id)." "; $user_restriction = $is_allowedToEdit ? '' : "AND user_id=".intval($student_id)." ";
$query = "SELECT attempts.question_id, answer $query = "SELECT attempts.question_id, answer
FROM ".$TBL_TRACK_ATTEMPT." as attempts FROM ".$TBL_TRACK_ATTEMPT." as attempts
INNER JOIN ".$TBL_TRACK_EXERCICES." AS stats_exercices ON stats_exercices.exe_id=attempts.exe_id INNER JOIN ".$TBL_TRACK_EXERCICES." AS stats_exercices
ON stats_exercices.exe_id=attempts.exe_id
INNER JOIN ".$TBL_EXERCICE_QUESTION." AS quizz_rel_questions INNER JOIN ".$TBL_EXERCICE_QUESTION." AS quizz_rel_questions
ON quizz_rel_questions.exercice_id=stats_exercices.exe_exo_id AND ON quizz_rel_questions.exercice_id=stats_exercices.exe_exo_id AND
quizz_rel_questions.question_id = attempts.question_id AND quizz_rel_questions.question_id = attempts.question_id AND
quizz_rel_questions.c_id=".api_get_course_int_id()." quizz_rel_questions.c_id=".api_get_course_int_id()."
INNER JOIN ".$TBL_QUESTIONS." AS questions INNER JOIN ".$TBL_QUESTIONS." AS questions
ON questions.id=quizz_rel_questions.question_id AND ON questions.iid=quizz_rel_questions.question_id AND
questions.c_id = ".api_get_course_int_id()." questions.c_id = ".api_get_course_int_id()."
WHERE attempts.exe_id='".Database::escape_string($id)."' $user_restriction WHERE attempts.exe_id='".Database::escape_string($id)."' $user_restriction
GROUP BY quizz_rel_questions.question_order, attempts.question_id"; GROUP BY quizz_rel_questions.question_order, attempts.question_id";
@ -588,7 +589,7 @@ foreach ($questionList as $questionId) {
} }
if (isset($objQuestionTmp->category_list) && !empty($objQuestionTmp->category_list)) { if (isset($objQuestionTmp->category_list) && !empty($objQuestionTmp->category_list)) {
foreach($objQuestionTmp->category_list as $category_id) { foreach ($objQuestionTmp->category_list as $category_id) {
$category_list[$category_id]['score'] += $my_total_score; $category_list[$category_id]['score'] += $my_total_score;
$category_list[$category_id]['total'] += $my_total_weight; $category_list[$category_id]['total'] += $my_total_weight;
$category_was_added_for_this_test = true; $category_was_added_for_this_test = true;
@ -597,6 +598,11 @@ foreach ($questionList as $questionId) {
//No category for this question! //No category for this question!
if ($category_was_added_for_this_test == false) { if ($category_was_added_for_this_test == false) {
if (!isset($category_list['none'])) {
$category_list['none'] = array();
$category_list['none']['score'] = 0;
$category_list['none']['total'] = 0;
}
$category_list['none']['score'] += $my_total_score; $category_list['none']['score'] += $my_total_score;
$category_list['none']['total'] += $my_total_weight; $category_list['none']['total'] += $my_total_weight;
} }

@ -1334,6 +1334,7 @@ function render_question_list($objExercise, $questionList, $current_question, $e
//Show questions that belongs to a media //Show questions that belongs to a media
if (!empty($media_question_list)) { if (!empty($media_question_list)) {
foreach ($media_question_list as $my_question_id) { foreach ($media_question_list as $my_question_id) {
$last_question_in_media = false;
if ($counter == $count_of_questions_inside_media) { if ($counter == $count_of_questions_inside_media) {
$last_question_in_media = true; $last_question_in_media = true;
} }

@ -39,7 +39,8 @@ function tempdir($dir, $prefix = 'tmp', $mode = 0777)
function get_and_unzip_uploaded_exercise($baseWorkDir, $uploadPath) function get_and_unzip_uploaded_exercise($baseWorkDir, $uploadPath)
{ {
global $_course, $_user; global $_user;
$_course = api_get_course_info();
//Check if the file is valid (not to big and exists) //Check if the file is valid (not to big and exists)
if (!isset ($_FILES['userFile']) || !is_uploaded_file($_FILES['userFile']['tmp_name'])) { if (!isset ($_FILES['userFile']) || !is_uploaded_file($_FILES['userFile']['tmp_name'])) {
// upload failed // upload failed

@ -18,7 +18,6 @@ $dbTable = Database::get_course_table(TABLE_DOCUMENT); // TODO: This is a global
* @return boolean Always true so far * @return boolean Always true so far
*/ */
function hotpotatoes_init($base_work_dir) { function hotpotatoes_init($base_work_dir) {
//global $_course, $_user;
$document_path = $base_work_dir.'/'; $document_path = $base_work_dir.'/';
if (!is_dir($document_path)) { if (!is_dir($document_path)) {
if (is_file($document_path)) { if (is_file($document_path)) {
@ -132,7 +131,7 @@ function ReadFileCont($full_file_path) {
*/ */
function WriteFileCont($full_file_path, $content) { function WriteFileCont($full_file_path, $content) {
// Check if this is not an attack, trying to get into other directories or something like that. // Check if this is not an attack, trying to get into other directories or something like that.
global $_course; $_course = api_get_course_info();
if (Security::check_abs_path(dirname($full_file_path).'/', api_get_path(SYS_COURSE_PATH).$_course['path'].'/')) { if (Security::check_abs_path(dirname($full_file_path).'/', api_get_path(SYS_COURSE_PATH).$_course['path'].'/')) {
// Check if this is not an attack, trying to upload a php file or something like that. // Check if this is not an attack, trying to upload a php file or something like that.
if (basename($full_file_path) != Security::filter_filename(basename($full_file_path))) { return false; } if (basename($full_file_path) != Security::filter_filename(basename($full_file_path))) { return false; }

@ -281,11 +281,11 @@ if (!empty($session_id) && $session_id != '-1') {
} }
$course_select_list = array(); $course_select_list = array();
foreach ($course_list as $item) { foreach ($course_list as $item) {
$course_select_list[$item['id']] = ""; $course_select_list[$item['real_id']] = "";
if ($item['id'] == api_get_course_int_id()) { if ($item['real_id'] == api_get_course_int_id()) {
$course_select_list[$item['id']] = ">&nbsp;&nbsp;&nbsp;&nbsp;"; $course_select_list[$item['real_id']] = ">&nbsp;&nbsp;&nbsp;&nbsp;";
} }
$course_select_list[$item['id']] .= $item['title']; $course_select_list[$item['real_id']] .= $item['title'];
} }
$select_course_html = Display::select('selected_course', $course_select_list, $selected_course, array('class'=>'chzn-select','onchange'=>'mark_course_id_changed(); submit_form(this);')); $select_course_html = Display::select('selected_course', $course_select_list, $selected_course, array('class'=>'chzn-select','onchange'=>'mark_course_id_changed(); submit_form(this);'));

@ -21,9 +21,9 @@ if (!$result) {
$session_id = api_get_session_id(); $session_id = api_get_session_id();
if (empty($session_id)) { if (empty($session_id)) {
$students = CourseManager :: get_student_list_from_course_code(api_get_course_id(), false); $students = CourseManager :: get_student_list_from_course_code(api_get_course_int_id(), false);
} else { } else {
$students = CourseManager :: get_student_list_from_course_code(api_get_course_id(), true, $session_id); $students = CourseManager :: get_student_list_from_course_code(api_get_course_int_id(), true, $session_id);
} }
$count_students = count($students); $count_students = count($students);

@ -253,7 +253,7 @@ class Testcategory
If in_field=="" Return an array of all category objects in the database If in_field=="" Return an array of all category objects in the database
Otherwise, return an array of all in_field value in the database (in_field = id or name or description) Otherwise, return an array of all in_field value in the database (in_field = id or name or description)
*/ */
public static function getCategoryListInfo($in_field="", $in_courseid="") { public static function getCategoryListInfo($in_field = "", $in_courseid="") {
if (empty($in_courseid) || $in_courseid=="") { if (empty($in_courseid) || $in_courseid=="") {
$in_courseid = api_get_course_int_id(); $in_courseid = api_get_course_int_id();
} }
@ -261,14 +261,17 @@ class Testcategory
$in_field = Database::escape_string($in_field); $in_field = Database::escape_string($in_field);
$tabres = array(); $tabres = array();
if ($in_field=="") { if ($in_field=="") {
$sql = "SELECT * FROM $t_cattable WHERE c_id=$in_courseid ORDER BY title ASC"; $sql = "SELECT * FROM $t_cattable WHERE c_id = $in_courseid ORDER BY title ASC";
$res = Database::query($sql); $res = Database::query($sql);
while ($row = Database::fetch_array($res)) { while ($row = Database::fetch_array($res)) {
$tmpcat = new Testcategory($row['iid'], $row['title'], $row['description'], $row['parent_id']); $tmpcat = new Testcategory($row['iid'], $row['title'], $row['description'], $row['parent_id']);
$tabres[] = $tmpcat; $tabres[] = $tmpcat;
} }
} else { } else {
$sql = "SELECT $in_field FROM $t_cattable WHERE c_id=$in_courseid ORDER BY $in_field ASC"; $sql = "SELECT $in_field
FROM $t_cattable WHERE c_id=$in_courseid
ORDER BY $in_field ASC";
$res = Database::query($sql); $res = Database::query($sql);
while ($row = Database::fetch_array($res)) { while ($row = Database::fetch_array($res)) {
$tabres[] = $row[$in_field]; $tabres[] = $row[$in_field];
@ -681,7 +684,7 @@ class Testcategory
$category_list = self::getCategoryListInfo(null, $course_id); $category_list = self::getCategoryListInfo(null, $course_id);
$category_name_list = array(); $category_name_list = array();
if (!empty($category_list)) { if (!empty($category_list)) {
foreach($category_list as $category) { foreach ($category_list as $category) {
$category_name_list[$category->id] = $category->name; $category_name_list[$category->id] = $category->name;
} }
} }

@ -105,7 +105,9 @@ function lp_upload_quiz_main() {
*/ */
function lp_upload_quiz_action_handling() function lp_upload_quiz_action_handling()
{ {
global $_course, $debug; global $debug;
$_course = api_get_course_info();
if (!isset($_POST['submit_upload_quiz'])) { if (!isset($_POST['submit_upload_quiz'])) {
return; return;
} }

@ -197,7 +197,7 @@ function show_add_forumcategory_form($inputvalues = array(), $lp_id)
*/ */
function show_add_forum_form($inputvalues = array(), $lp_id) function show_add_forum_form($inputvalues = array(), $lp_id)
{ {
global $_course; $_course = api_get_course_info();
$gradebook = Security::remove_XSS($_GET['gradebook']); $gradebook = Security::remove_XSS($_GET['gradebook']);
// Initialize the object. // Initialize the object.
@ -480,7 +480,7 @@ function show_edit_forumcategory_form($inputvalues = array())
*/ */
function store_forumcategory($values) function store_forumcategory($values)
{ {
global $_course; $_course = api_get_course_info();
global $_user; global $_user;
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
@ -546,7 +546,7 @@ function store_forumcategory($values)
*/ */
function store_forum($values) function store_forum($values)
{ {
global $_course; $_course = api_get_course_info();
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
$session_id = api_get_session_id(); $session_id = api_get_session_id();
@ -735,7 +735,7 @@ function store_forum($values)
*/ */
function delete_forum_forumcategory_thread($content, $id) function delete_forum_forumcategory_thread($content, $id)
{ {
global $_course; $_course = api_get_course_info();
$table_forums = Database::get_course_table(TABLE_FORUM); $table_forums = Database::get_course_table(TABLE_FORUM);
$table_forums_post = Database::get_course_table(TABLE_FORUM_POST); $table_forums_post = Database::get_course_table(TABLE_FORUM_POST);
@ -1057,7 +1057,7 @@ function display_up_down_icon($content, $id, $list)
*/ */
function change_visibility($content, $id, $target_visibility) function change_visibility($content, $id, $target_visibility)
{ {
global $_course; $_course = api_get_course_info();
$constants = array('forumcategory' => TOOL_FORUM_CATEGORY, 'forum' => TOOL_FORUM, 'thread' => TOOL_FORUM_THREAD); $constants = array('forumcategory' => TOOL_FORUM_CATEGORY, 'forum' => TOOL_FORUM, 'thread' => TOOL_FORUM_THREAD);
api_item_property_update( api_item_property_update(
$_course, $_course,
@ -2091,7 +2091,7 @@ function count_number_of_forums_in_category($cat_id)
function store_thread($values) function store_thread($values)
{ {
global $_user; global $_user;
global $_course; $_course = api_get_course_info();
global $current_forum; global $current_forum;
global $origin; global $origin;
@ -2704,7 +2704,7 @@ function current_qualify_of_thread($thread_id, $session_id)
*/ */
function store_reply($values) function store_reply($values)
{ {
global $_course; $_course = api_get_course_info();
global $current_forum; global $current_forum;
global $origin; global $origin;
@ -3272,7 +3272,7 @@ function forum_not_allowed_here()
function get_whats_new() function get_whats_new()
{ {
global $_user; global $_user;
global $_course; $_course = api_get_course_info();
$table_posts = Database :: get_course_table(TABLE_FORUM_POST); $table_posts = Database :: get_course_table(TABLE_FORUM_POST);
$tracking_last_tool_access = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LASTACCESS); $tracking_last_tool_access = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LASTACCESS);
@ -3288,11 +3288,7 @@ function get_whats_new()
if (!$_SESSION['last_forum_access']) { if (!$_SESSION['last_forum_access']) {
$sql = "SELECT * FROM ".$tracking_last_tool_access." $sql = "SELECT * FROM ".$tracking_last_tool_access."
WHERE access_user_id='".Database::escape_string( WHERE access_user_id='".Database::escape_string($_user['user_id'])."' AND c_id='".$course_id."' AND access_tool='".Database::escape_string($tool)."'";
$_user['user_id']
)."' AND access_cours_code='".Database::escape_string(
$_course['sysCode']
)."' AND access_tool='".Database::escape_string($tool)."'";
$result = Database::query($sql); $result = Database::query($sql);
$row = Database::fetch_array($result); $row = Database::fetch_array($result);
$_SESSION['last_forum_access'] = $row['access_date']; $_SESSION['last_forum_access'] = $row['access_date'];
@ -3615,7 +3611,7 @@ function handle_mail_cue($content, $id)
*/ */
function send_mail($user_info = array(), $thread_information = array()) function send_mail($user_info = array(), $thread_information = array())
{ {
global $_course; $_course = api_get_course_info();
$user_id = api_get_user_id(); $user_id = api_get_user_id();
$subject = get_lang('NewForumPost').' - '.$_course['official_code']; $subject = get_lang('NewForumPost').' - '.$_course['official_code'];
if (isset($thread_information) && is_array($thread_information)) { if (isset($thread_information) && is_array($thread_information)) {
@ -3770,7 +3766,7 @@ function move_post_form()
*/ */
function store_move_post($values) function store_move_post($values)
{ {
global $_course; $_course = api_get_course_info();
$table_forums = Database :: get_course_table(TABLE_FORUM); $table_forums = Database :: get_course_table(TABLE_FORUM);
$table_threads = Database :: get_course_table(TABLE_FORUM_THREAD); $table_threads = Database :: get_course_table(TABLE_FORUM_THREAD);
@ -3899,7 +3895,7 @@ function store_move_post($values)
*/ */
function store_move_thread($values) function store_move_thread($values)
{ {
global $_course; $_course = api_get_course_info();
$table_forums = Database :: get_course_table(TABLE_FORUM); $table_forums = Database :: get_course_table(TABLE_FORUM);
$table_threads = Database :: get_course_table(TABLE_FORUM_THREAD); $table_threads = Database :: get_course_table(TABLE_FORUM_THREAD);
@ -4144,7 +4140,7 @@ function search_link()
*/ */
function add_forum_attachment_file($file_comment, $last_id) function add_forum_attachment_file($file_comment, $last_id)
{ {
global $_course; $_course = api_get_course_info();
$agenda_forum_attachment = Database::get_course_table(TABLE_FORUM_ATTACHMENT); $agenda_forum_attachment = Database::get_course_table(TABLE_FORUM_ATTACHMENT);
@ -4208,7 +4204,7 @@ function add_forum_attachment_file($file_comment, $last_id)
*/ */
function edit_forum_attachment_file($file_comment, $post_id, $id_attach) function edit_forum_attachment_file($file_comment, $post_id, $id_attach)
{ {
global $_course; $_course = api_get_course_info();
$table_forum_attachment = Database::get_course_table(TABLE_FORUM_ATTACHMENT); $table_forum_attachment = Database::get_course_table(TABLE_FORUM_ATTACHMENT);
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
@ -4293,7 +4289,7 @@ function get_attachment($post_id)
*/ */
function delete_attachment($post_id, $id_attach = 0) function delete_attachment($post_id, $id_attach = 0)
{ {
global $_course; $_course = api_get_course_info();
$forum_table_attachment = Database::get_course_table(TABLE_FORUM_ATTACHMENT); $forum_table_attachment = Database::get_course_table(TABLE_FORUM_ATTACHMENT);
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
@ -4563,7 +4559,8 @@ function get_notifications($content, $id)
*/ */
function send_notifications($forum_id = 0, $thread_id = 0, $post_id = 0) function send_notifications($forum_id = 0, $thread_id = 0, $post_id = 0)
{ {
global $_course, $_user; global $_user;
$_course = api_get_course_info();
// The content of the mail // The content of the mail
$thread_link = api_get_path(WEB_CODE_PATH).'forum/viewthread.php?'.api_get_cidreq( $thread_link = api_get_path(WEB_CODE_PATH).'forum/viewthread.php?'.api_get_cidreq(

@ -19,7 +19,7 @@ api_block_anonymous_users();
block_students(); block_students();
$select_cat=isset($_GET['selectcat']) ? Security::remove_XSS($_GET['selectcat']) : ''; $select_cat=isset($_GET['selectcat']) ? Security::remove_XSS($_GET['selectcat']) : '';
$is_allowedToEdit = $is_courseAdmin; $is_allowedToEdit = api_is_course_admin();
$evaladd = new Evaluation(); $evaladd = new Evaluation();
$evaladd->set_user_id($_user['user_id']); $evaladd->set_user_id($_user['user_id']);
if (isset ($_GET['selectcat']) && (!empty ($_GET['selectcat']))) { if (isset ($_GET['selectcat']) && (!empty ($_GET['selectcat']))) {
@ -38,24 +38,24 @@ if ($form->validate()) {
$eval->set_name($values['name']); $eval->set_name($values['name']);
$eval->set_description($values['description']); $eval->set_description($values['description']);
$eval->set_user_id($values['hid_user_id']); $eval->set_user_id($values['hid_user_id']);
if (!empty ($values['hid_course_code'])) { if (!empty ($values['hid_course_code'])) {
$eval->set_course_code($values['hid_course_code']); $eval->set_course_code($values['hid_course_code']);
} }
//Always add the gradebook to the course //Always add the gradebook to the course
$eval->set_course_code(api_get_course_id()); $eval->set_course_code(api_get_course_id());
$eval->set_category_id($values['hid_category_id']); $eval->set_category_id($values['hid_category_id']);
$parent_cat = Category :: load($values['hid_category_id']); $parent_cat = Category :: load($values['hid_category_id']);
$global_weight = $cat[0]->get_weight(); $global_weight = $cat[0]->get_weight();
//$values['weight'] = $values['weight_mask']/$global_weight*$parent_cat[0]->get_weight(); //$values['weight'] = $values['weight_mask']/$global_weight*$parent_cat[0]->get_weight();
$values['weight'] = $values['weight_mask']; $values['weight'] = $values['weight_mask'];
$eval->set_weight($values['weight']); $eval->set_weight($values['weight']);
$eval->set_max($values['max']); $eval->set_max($values['max']);
if (empty ($values['visible'])) { if (empty ($values['visible'])) {
$visible = 0; $visible = 0;
} else { } else {
@ -94,18 +94,18 @@ $htmlHeadXtra[] = '<script type="text/javascript">
$(document).ready( function() { $(document).ready( function() {
$("#hid_category_id").change(function(){ $("#hid_category_id").change(function(){
$("#hid_category_id option:selected").each(function () { $("#hid_category_id option:selected").each(function () {
var cat_id = $(this).val(); var cat_id = $(this).val();
$.ajax({ $.ajax({
url: "'.api_get_path(WEB_AJAX_PATH).'gradebook.ajax.php?a=get_gradebook_weight", url: "'.api_get_path(WEB_AJAX_PATH).'gradebook.ajax.php?a=get_gradebook_weight",
data: "cat_id="+cat_id, data: "cat_id="+cat_id,
success: function(return_value) { success: function(return_value) {
if (return_value != 0 ) { if (return_value != 0 ) {
$("#max_weight").html(return_value); $("#max_weight").html(return_value);
} }
}, },
}); });
}); });
}); });
}); });

@ -277,7 +277,7 @@ class GradeBookResult
* @return boolean False on error * @return boolean False on error
*/ */
public function exportCompleteReportDOC($data) { public function exportCompleteReportDOC($data) {
global $_course; $_course = api_get_course_info();
$filename = 'gb_results_'.$_course['code'].'_'.gmdate('YmdGis'); $filename = 'gb_results_'.$_course['code'].'_'.gmdate('YmdGis');
$filepath = api_get_path(SYS_ARCHIVE_PATH).$filename; $filepath = api_get_path(SYS_ARCHIVE_PATH).$filename;
//build the results //build the results

@ -90,8 +90,9 @@ class Result
if ($info_verified_if_exist_evaluation != 0 ) { if ($info_verified_if_exist_evaluation != 0 ) {
if (api_get_session_id()) { if (api_get_session_id()) {
$sql_course_rel_user = 'SELECT course_code, id_user as user_id, status FROM '.$tbl_session_rel_course_user.' $sql_course_rel_user = 'SELECT course_code, id_user as user_id, status
WHERE status=0 AND course_code="'.api_get_course_id().'" AND id_session='.api_get_session_id(); FROM '.$tbl_session_rel_course_user.'
WHERE status=0 AND c_id="'.api_get_course_int_id().'" AND id_session='.api_get_session_id();
} else { } else {
$sql_course_rel_user = 'SELECT course_code, user_id, status $sql_course_rel_user = 'SELECT course_code, user_id, status
FROM '.$tbl_course_rel_course.' FROM '.$tbl_course_rel_course.'

@ -17,7 +17,7 @@ require_once dirname(__FILE__).'/../gradebook_functions.inc.php';
* @package chamilo.gradebook * @package chamilo.gradebook
*/ */
$htmlHeadXtra[] = '<script type="text/javascript"> $htmlHeadXtra[] = '<script>
function setFocus(){ function setFocus(){
$("#evaluation_title").focus(); $("#evaluation_title").focus();
} }
@ -246,8 +246,8 @@ class EvalForm extends FormValidator
</table> </table>
</form>' </form>'
); );
$courseInfo = api_get_course_info($this->evaluation_object->get_course_code());
$tblusers = get_users_in_course($this->evaluation_object->get_course_code()); $tblusers = get_users_in_course($courseInfo['real_id']);
$nr_users = 0; $nr_users = 0;
//extra field for check on maxvalue //extra field for check on maxvalue
$this->addElement('hidden', 'maxvalue', $this->evaluation_object->get_max()); $this->addElement('hidden', 'maxvalue', $this->evaluation_object->get_max());

@ -9,7 +9,7 @@
* returns users within a course given by param * returns users within a course given by param
* @param $course_id * @param $course_id
*/ */
function get_users_in_course($course_id) { function get_users_in_course($courseId) {
$tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_user = Database :: get_main_table(TABLE_MAIN_USER); $tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
@ -17,28 +17,27 @@ function get_users_in_course($course_id) {
$order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname ASC' : ' ORDER BY lastname, firstname ASC'; $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname ASC' : ' ORDER BY lastname, firstname ASC';
$current_session = api_get_session_id(); $current_session = api_get_session_id();
$course_id = Database::escape_string($course_id); $courseId = Database::escape_string($courseId);
$courseInfo = api_get_course_info($course_id);
if (!empty($current_session)) { if (!empty($current_session)) {
$sql = "SELECT user.user_id, user.username, lastname, firstname, official_code $sql = "SELECT user.user_id, user.username, lastname, firstname, official_code
FROM $tbl_session_course_user as scru, $tbl_user as user FROM $tbl_session_course_user as scru, $tbl_user as user
WHERE scru.id_user=user.user_id WHERE scru.id_user=user.user_id
AND scru.status=0 AND scru.status=0
AND scru.course_code='$course_id' AND id_session = '$current_session' $order_clause "; AND scru.c_id ='$courseId' AND id_session = '$current_session'
$order_clause ";
} else { } else {
$sql = 'SELECT user.user_id, user.username, lastname, firstname, official_code $sql = 'SELECT user.user_id, user.username, lastname, firstname, official_code
FROM '.$tbl_course_user.' as course_rel_user, '.$tbl_user.' as user FROM '.$tbl_course_user.' as course_rel_user, '.$tbl_user.' as user
WHERE course_rel_user.user_id=user.user_id AND WHERE course_rel_user.user_id=user.user_id AND
course_rel_user.status='.STUDENT.' AND course_rel_user.status='.STUDENT.' AND
course_rel_user.c_id = '.$courseInfo['real_id'].' course_rel_user.c_id = '.$courseId.'
'.$order_clause; '.$order_clause;
} }
$result = Database::query($sql); $result = Database::query($sql);
return get_user_array_from_sql_result($result); return get_user_array_from_sql_result($result);
} }
function get_user_array_from_sql_result($result) { function get_user_array_from_sql_result($result) {
$a_students = array(); $a_students = array();
while ($user = Database::fetch_array($result)) { while ($user = Database::fetch_array($result)) {
@ -61,11 +60,12 @@ function get_all_users ($evals = array(), $links = array()) {
foreach ($evals as $eval) { foreach ($evals as $eval) {
$coursecode = $eval->get_course_code(); $coursecode = $eval->get_course_code();
$courseInfo = api_get_course_info($coursecode);
// evaluation in course // evaluation in course
if (isset($coursecode) && !empty($coursecode)) { if (isset($coursecode) && !empty($coursecode)) {
if (!array_key_exists($coursecode,$coursecodes)) { if (!array_key_exists($coursecode,$coursecodes)) {
$coursecodes[$coursecode] = '1'; $coursecodes[$coursecode] = '1';
$users = array_merge($users, get_users_in_course($coursecode)); $users = array_merge($users, get_users_in_course($courseInfo['real_id']));
} }
} else {// course independent evaluation } else {// course independent evaluation
$tbl_user = Database :: get_main_table(TABLE_MAIN_USER); $tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
@ -73,8 +73,7 @@ function get_all_users ($evals = array(), $links = array()) {
$sql = 'SELECT user.user_id,lastname, firstname, user.official_code $sql = 'SELECT user.user_id,lastname, firstname, user.official_code
FROM '.$tbl_res.' as res, '.$tbl_user.' as user FROM '.$tbl_res.' as res, '.$tbl_user.' as user
WHERE res.evaluation_id = '.intval($eval->get_id()) WHERE res.evaluation_id = '.intval($eval->get_id()).' AND res.user_id = user.user_id';
.' AND res.user_id = user.user_id';
$result = Database::query($sql); $result = Database::query($sql);
$users = array_merge($users, get_user_array_from_sql_result($result)); $users = array_merge($users, get_user_array_from_sql_result($result));
} }
@ -83,9 +82,10 @@ function get_all_users ($evals = array(), $links = array()) {
foreach ($links as $link) { foreach ($links as $link) {
// links are always in a course // links are always in a course
$coursecode = $link->get_course_code(); $coursecode = $link->get_course_code();
$courseInfo = api_get_course_info($coursecode);
if (!array_key_exists($coursecode,$coursecodes)) { if (!array_key_exists($coursecode,$coursecodes)) {
$coursecodes[$coursecode] = '1'; $coursecodes[$coursecode] = '1';
$users = array_merge($users, get_users_in_course($coursecode)); $users = array_merge($users, get_users_in_course($courseInfo['real_id']));
} }
} }
unset ($coursecodes); unset ($coursecodes);

@ -115,7 +115,7 @@ if (isset($_GET['action'])) {
/* Main Display Area */ /* Main Display Area */
$course_code = $_course['sysCode']; $course_code = $_course['sysCode'];
$is_course_member = CourseManager :: is_user_subscribed_in_real_or_linked_course(api_get_user_id(), $course_code); $is_course_member = CourseManager :: is_user_subscribed_in_real_or_linked_course(api_get_user_id(), api_get_course_int_id());
/* /*
* Edit the group * Edit the group

@ -149,7 +149,7 @@ switch ($action) {
foreach($flat_list as $lp_id => $lp_item) { foreach($flat_list as $lp_id => $lp_item) {
$temp[$count]['id']= $lp_id; $temp[$count]['id']= $lp_id;
$lp_url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view'; $lp_url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view';
$last_date = Tracking::get_last_connection_date_on_the_course(api_get_user_id(),$item['code'], $session_id, false); $last_date = Tracking::get_last_connection_date_on_the_course(api_get_user_id(), $item['id'], $session_id, false);
if ($lp_item['modified_on'] == '0000-00-00 00:00:00' || empty($lp_item['modified_on'])) { if ($lp_item['modified_on'] == '0000-00-00 00:00:00' || empty($lp_item['modified_on'])) {
$lp_date = api_get_local_time($lp_item['created_on']); $lp_date = api_get_local_time($lp_item['created_on']);
$image = 'new.gif'; $image = 'new.gif';
@ -271,7 +271,7 @@ switch ($action) {
$temp[$count]['id']= $lp_id; $temp[$count]['id']= $lp_id;
$lp_url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view'; $lp_url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view';
$last_date = Tracking::get_last_connection_date_on_the_course(api_get_user_id(),$item['code'], $session_id, false); $last_date = Tracking::get_last_connection_date_on_the_course(api_get_user_id(),$item['id'], $session_id, false);
if ($lp_item['modified_on'] == '0000-00-00 00:00:00' || empty($lp_item['modified_on'])) { if ($lp_item['modified_on'] == '0000-00-00 00:00:00' || empty($lp_item['modified_on'])) {
$lp_date = api_get_local_time($lp_item['created_on']); $lp_date = api_get_local_time($lp_item['created_on']);
$image = 'new.gif'; $image = 'new.gif';
@ -396,7 +396,7 @@ switch ($action) {
foreach($flat_list as $lp_id => $lp_item) { foreach($flat_list as $lp_id => $lp_item) {
$temp[$count]['id']= $lp_id; $temp[$count]['id']= $lp_id;
$lp_url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view'; $lp_url = api_get_path(WEB_CODE_PATH).'newscorm/lp_controller.php?cidReq='.$item['code'].'&id_session='.$session_id.'&lp_id='.$lp_id.'&action=view';
$last_date = Tracking::get_last_connection_date_on_the_course(api_get_user_id(),$item['code'], $session_id, false); $last_date = Tracking::get_last_connection_date_on_the_course(api_get_user_id(),$item['id'], $session_id, false);
if ($lp_item['modified_on'] == '0000-00-00 00:00:00' || empty($lp_item['modified_on'])) { if ($lp_item['modified_on'] == '0000-00-00 00:00:00' || empty($lp_item['modified_on'])) {
$lp_date = api_get_local_time($lp_item['created_on']); $lp_date = api_get_local_time($lp_item['created_on']);
$image = 'new.gif'; $image = 'new.gif';

@ -15,36 +15,36 @@ require_once api_get_path(SYS_CODE_PATH).'mySpace/myspace.lib.php';
switch ($action) { switch ($action) {
case 'access_detail': case 'access_detail':
$user_id = intval($_REQUEST['student']); $user_id = intval($_REQUEST['student']);
$course_code = Security::remove_XSS($_REQUEST['course']); $courseId = Security::remove_XSS($_REQUEST['course']);
$type = Security::remove_XSS($_REQUEST['type']); $type = Security::remove_XSS($_REQUEST['type']);
$range = Security::remove_XSS($_REQUEST['range']); $range = Security::remove_XSS($_REQUEST['range']);
if ($range == 1){ if ($range == 1){
$start_date = Security::remove_XSS($_REQUEST['sd']); $start_date = Security::remove_XSS($_REQUEST['sd']);
$end_date = Security::remove_XSS($_REQUEST['ed']); $end_date = Security::remove_XSS($_REQUEST['ed']);
$sql_result = get_connections_to_course_by_date($user_id, $course_code, $start_date, $end_date); $sql_result = get_connections_to_course_by_date($user_id, $courseId, $start_date, $end_date);
} else { } else {
$sql_result = MySpace::get_connections_to_course($user_id, $course_code); $sql_result = MySpace::get_connections_to_course($user_id, $courseId);
} }
$foo_print = grapher($sql_result, $start_date, $end_date, $type); $foo_print = grapher($sql_result, $start_date, $end_date, $type);
echo $foo_print; echo $foo_print;
break; break;
case 'access_detail_by_date': case 'access_detail_by_date':
$db = array('is_empty'=>true); $db = array('is_empty'=>true);
$start_date = isset($_REQUEST['startDate'])?$_REQUEST['startDate']:""; $start_date = isset($_REQUEST['startDate'])?$_REQUEST['startDate']:"";
$end_date = isset($_REQUEST['endDate'])?$_REQUEST['endDate']:""; $end_date = isset($_REQUEST['endDate'])?$_REQUEST['endDate']:"";
$user_id = isset($_REQUEST['student'])?$_REQUEST['student']:""; $user_id = isset($_REQUEST['student'])?$_REQUEST['student']:"";
$course_code = isset($_REQUEST['course'])?$_REQUEST['course']:""; $courseId = isset($_REQUEST['course'])?$_REQUEST['course']:"";
$sql_result = get_connections_to_course_by_date($user_id, $course_code, $start_date, $end_date); $sql_result = get_connections_to_course_by_date($user_id, $courseId, $start_date, $end_date);
if (is_array($sql_result) && count($sql_result) > 0) { if (is_array($sql_result) && count($sql_result) > 0) {
$db['is_empty'] = false; $db['is_empty'] = false;
$db['result'] = convert_to_string($sql_result); $db['result'] = convert_to_string($sql_result);
$rst = get_stats($user_id, $course_code, $start_date, $end_date); $rst = get_stats($user_id, $courseId, $start_date, $end_date);
$foo_stats = '<strong>'.get_lang('Total').': </strong>'.$rst['total'].'<br />'; $foo_stats = '<strong>'.get_lang('Total').': </strong>'.$rst['total'].'<br />';
$foo_stats .= '<strong>'.get_lang('Average').': </strong>'.$rst['avg'].'<br />'; $foo_stats .= '<strong>'.get_lang('Average').': </strong>'.$rst['avg'].'<br />';
$foo_stats .= '<strong>'.get_lang('Quantity').' : </strong>'.$rst['times'].'<br />'; $foo_stats .= '<strong>'.get_lang('Quantity').' : </strong>'.$rst['times'].'<br />';
@ -54,10 +54,10 @@ switch ($action) {
$db['result'] = Display::return_message(get_lang('NoDataAvailable'), 'warning'); $db['result'] = Display::return_message(get_lang('NoDataAvailable'), 'warning');
$db['graph_result'] = Display::return_message(get_lang('NoDataAvailable'), 'warning'); $db['graph_result'] = Display::return_message(get_lang('NoDataAvailable'), 'warning');
$db['stats'] = Display::return_message(get_lang('NoDataAvailable'), 'warning'); $db['stats'] = Display::return_message(get_lang('NoDataAvailable'), 'warning');
} }
header('Cache-Control: no-cache'); header('Cache-Control: no-cache');
echo json_encode($db); // requires: PHP >= 5.2.0, PECL json >= 1.2.0 echo json_encode($db); // requires: PHP >= 5.2.0, PECL json >= 1.2.0
break; break;
} }
exit; exit;

@ -313,7 +313,7 @@ class AnnouncementManager
$file_comment = null, $file_comment = null,
$end_date = null $end_date = null
) { ) {
global $_course; $_course = api_get_course_info();
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT); $tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
// filter data // filter data
@ -408,7 +408,7 @@ class AnnouncementManager
$file = array(), $file = array(),
$file_comment = '' $file_comment = ''
) { ) {
global $_course; $_course = api_get_course_info();
// database definitions // database definitions
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT); $tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
@ -497,7 +497,7 @@ class AnnouncementManager
*/ */
public static function edit_announcement($id, $emailTitle, $newContent, $to, $file = array(), $file_comment = '') public static function edit_announcement($id, $emailTitle, $newContent, $to, $file = array(), $file_comment = '')
{ {
global $_course; $_course = api_get_course_info();
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
$tbl_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY); $tbl_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY);
@ -1216,7 +1216,7 @@ class AnnouncementManager
*/ */
public static function add_announcement_attachment_file($announcement_id, $file_comment, $file) public static function add_announcement_attachment_file($announcement_id, $file_comment, $file)
{ {
global $_course; $_course = api_get_course_info();
$tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT); $tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT);
$return = 0; $return = 0;
$announcement_id = intval($announcement_id); $announcement_id = intval($announcement_id);
@ -1264,7 +1264,7 @@ class AnnouncementManager
*/ */
public static function edit_announcement_attachment_file($id_attach, $file, $file_comment) public static function edit_announcement_attachment_file($id_attach, $file, $file_comment)
{ {
global $_course; $_course = api_get_course_info();
$tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT); $tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT);
$return = 0; $return = 0;
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();

@ -306,7 +306,7 @@ class Attendance
* @return int last id * @return int last id
*/ */
public function attendance_edit($attendance_id, $link_to_gradebook = false) { public function attendance_edit($attendance_id, $link_to_gradebook = false) {
global $_course; $_course = api_get_course_info();
$tbl_attendance = Database :: get_course_table(TABLE_ATTENDANCE); $tbl_attendance = Database :: get_course_table(TABLE_ATTENDANCE);
$table_link = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK); $table_link = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
$session_id = api_get_session_id(); $session_id = api_get_session_id();
@ -446,6 +446,9 @@ class Attendance
*/ */
public function get_users_rel_course($attendance_id = 0) { public function get_users_rel_course($attendance_id = 0) {
$current_course_id = $this->get_course_id(); $current_course_id = $this->get_course_id();
$courseInfo = api_get_course_info($current_course_id);
$courseId = $courseInfo['real_id'];
$current_session_id = $this->get_session_id(); $current_session_id = $this->get_session_id();
if (!empty($current_session_id)) { if (!empty($current_session_id)) {
@ -465,9 +468,9 @@ class Attendance
$user_status_in_course = null; $user_status_in_course = null;
if ($current_session_id) { if ($current_session_id) {
$user_status_in_session = SessionManager::get_user_status_in_course_session($uid, $current_course_id, $current_session_id); $user_status_in_session = SessionManager::get_user_status_in_course_session($uid, $courseId, $current_session_id);
} else { } else {
$user_status_in_course = CourseManager::get_user_in_course_status($uid, $current_course_id); $user_status_in_course = CourseManager::get_user_in_course_status($uid, $courseId);
} }
//Not taking into account DRH or COURSEMANAGER //Not taking into account DRH or COURSEMANAGER

@ -343,28 +343,26 @@ class AuthLib {
* @param string Course code * @param string Course code
* @return bool True if it success * @return bool True if it success
*/ */
public function remove_user_from_course($course_code) public function remove_user_from_course($courseId)
{ {
$tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); $tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$course_info = api_get_course_info($course_code);
$course_id = $course_info['real_id'];
// protect variables // protect variables
$current_user_id = api_get_user_id(); $current_user_id = api_get_user_id();
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
$result = true; $result = true;
// we check (once again) if the user is not course administrator // we check (once again) if the user is not course administrator
// because the course administrator cannot unsubscribe himself // because the course administrator cannot unsubscribe himself
// (s)he can only delete the course // (s)he can only delete the course
$sql_check = "SELECT * FROM $tbl_course_user WHERE user_id='" . $current_user_id . "' AND c_id ='" . $course_id . "' AND status='1' "; $sql_check = "SELECT * FROM $tbl_course_user WHERE user_id='" . $current_user_id . "' AND c_id ='" . $courseId . "' AND status='1' ";
$result_check = Database::query($sql_check); $result_check = Database::query($sql_check);
$number_of_rows = Database::num_rows($result_check); $number_of_rows = Database::num_rows($result_check);
if ($number_of_rows > 0) { if ($number_of_rows > 0) {
$result = false; $result = false;
} }
CourseManager::unsubscribe_user($current_user_id, $course_code); CourseManager::unsubscribe_user($current_user_id, $courseId);
return $result; return $result;
} }
@ -555,7 +553,7 @@ class AuthLib {
while ($row = Database::fetch_array($result)) { while ($row = Database::fetch_array($result)) {
$row['registration_code'] = !empty($row['registration_code']); $row['registration_code'] = !empty($row['registration_code']);
$count_users = CourseManager::get_users_count_in_course($row['code']); $count_users = CourseManager::get_users_count_in_course($row['code']);
$count_connections_last_month = Tracking::get_course_connections_count($row['code'], 0, api_get_utc_datetime(time() - (30 * 86400))); $count_connections_last_month = Tracking::get_course_connections_count($row['id'], 0, api_get_utc_datetime(time() - (30 * 86400)));
if ($row['tutor_name'] == '0') { if ($row['tutor_name'] == '0') {
$row['tutor_name'] = get_lang('NoManager'); $row['tutor_name'] = get_lang('NoManager');
@ -626,7 +624,7 @@ class AuthLib {
while ($row = Database::fetch_array($result_find)) { while ($row = Database::fetch_array($result_find)) {
$row['registration_code'] = !empty($row['registration_code']); $row['registration_code'] = !empty($row['registration_code']);
$count_users = count(CourseManager::get_user_list_from_course_code($row['code'])); $count_users = count(CourseManager::get_user_list_from_course_code($row['code']));
$count_connections_last_month = Tracking::get_course_connections_count($row['code'], 0, api_get_utc_datetime(time() - (30 * 86400))); $count_connections_last_month = Tracking::get_course_connections_count($row['id'], 0, api_get_utc_datetime(time() - (30 * 86400)));
$courses[] = array( $courses[] = array(
'code' => $row['code'], 'code' => $row['code'],
@ -663,8 +661,7 @@ class AuthLib {
} else { } else {
$status_user_in_new_course = null; $status_user_in_new_course = null;
} }
$courseInfo = api_get_course_info($course_code); if (CourseManager::add_user_to_course($user_id, $all_course_information['real_id'], $status_user_in_new_course)) {
if (CourseManager::add_user_to_course($user_id, $courseInfo['real_id'], $status_user_in_new_course)) {
$send = api_get_course_setting('email_alert_to_teacher_on_new_user_in_course', $course_code); $send = api_get_course_setting('email_alert_to_teacher_on_new_user_in_course', $course_code);
if ($send == 1) { if ($send == 1) {
CourseManager::email_to_tutor($user_id, $course_code, $send_to_tutor_also = false); CourseManager::email_to_tutor($user_id, $course_code, $send_to_tutor_also = false);

@ -273,7 +273,7 @@ class Blog
public static function create_post($title, $full_text, $file_comment, $blog_id) public static function create_post($title, $full_text, $file_comment, $blog_id)
{ {
global $_user; global $_user;
global $_course; $_course = api_get_course_info();
$blog_table_attachment = Database::get_course_table(TABLE_BLOGS_ATTACHMENT); $blog_table_attachment = Database::get_course_table(TABLE_BLOGS_ATTACHMENT);
$upload_ok = true; $upload_ok = true;
@ -413,7 +413,7 @@ class Blog
$task_id = 'NULL' $task_id = 'NULL'
) { ) {
global $_user; global $_user;
global $_course; $_course = api_get_course_info();
global $blog_table_attachment; global $blog_table_attachment;
$upload_ok = true; $upload_ok = true;
@ -2375,7 +2375,7 @@ class Blog
public static function display_form_user_subscribe($blog_id) public static function display_form_user_subscribe($blog_id)
{ {
// Init // Init
global $_course; $_course = api_get_course_info();
$is_western_name_order = api_is_western_name_order(); $is_western_name_order = api_is_western_name_order();
$currentCourse = $_course['sysCode']; $currentCourse = $_course['sysCode'];
$tbl_users = Database::get_main_table(TABLE_MAIN_USER); $tbl_users = Database::get_main_table(TABLE_MAIN_USER);
@ -2415,7 +2415,7 @@ class Blog
$session_id = 0; $session_id = 0;
} }
$student_list = CourseManager :: get_student_list_from_course_code($currentCourse, false, $session_id); $student_list = CourseManager :: get_student_list_from_course_code(api_get_course_int_id(), false, $session_id);
$user_data = array(); $user_data = array();
// Add users that are not in this blog to the list. // Add users that are not in this blog to the list.
@ -3053,8 +3053,7 @@ function get_blog_attachment($blog_id, $post_id = null, $comment_id = null)
function delete_all_blog_attachment($blog_id, $post_id = null, $comment_id = null) function delete_all_blog_attachment($blog_id, $post_id = null, $comment_id = null)
{ {
$_course = api_get_course_info();
global $_course;
$blog_table_attachment = Database::get_course_table(TABLE_BLOGS_ATTACHMENT); $blog_table_attachment = Database::get_course_table(TABLE_BLOGS_ATTACHMENT);
$blog_id = Database::escape_string($blog_id); $blog_id = Database::escape_string($blog_id);
$comment_id = Database::escape_string($comment_id); $comment_id = Database::escape_string($comment_id);

@ -17,7 +17,7 @@ class Course
/** /**
* *
* @param string $where * @param string $where
* @return \ResultSet * @return \ResultSet
*/ */
public static function query($where) public static function query($where)
{ {
@ -58,12 +58,12 @@ class Course
} }
/** /**
* *
* @return \Model\Course|null * @return \Model\Course|null
*/ */
public static function current() public static function current()
{ {
global $_course; $_course = api_get_course_info();
/** /**
* Note that $_course = -1 when not set. * Note that $_course = -1 when not set.
*/ */

@ -353,7 +353,8 @@ class CourseManager
* @return mixed False on user ID not found, void otherwise * @return mixed False on user ID not found, void otherwise
* @assert () === false * @assert () === false
*/ */
public static function unsubscribe_user($user_id, $courseId, $session_id = 0) { public static function unsubscribe_user($user_id, $courseId, $session_id = 0)
{
if (!isset($user_id)) { return false; } if (!isset($user_id)) { return false; }
if (!is_array($user_id)) { if (!is_array($user_id)) {
$user_id = array($user_id); $user_id = array($user_id);
@ -418,7 +419,6 @@ class CourseManager
$sql_delete_mail_queue = "DELETE FROM ".Database::get_course_table(TABLE_FORUM_MAIL_QUEUE)." WHERE c_id = $courseId AND user_id IN (".$user_ids.")"; $sql_delete_mail_queue = "DELETE FROM ".Database::get_course_table(TABLE_FORUM_MAIL_QUEUE)." WHERE c_id = $courseId AND user_id IN (".$user_ids.")";
Database::query($sql_delete_mail_queue); Database::query($sql_delete_mail_queue);
$item_property_lp_subscription = "DELETE FROM ".Database::get_course_table(TABLE_ITEM_PROPERTY)." $item_property_lp_subscription = "DELETE FROM ".Database::get_course_table(TABLE_ITEM_PROPERTY)."
WHERE lastedit_type = 'LearnpathSubscription' AND tool = 'learnpath' AND c_id = $courseId AND to_user_id IN (".$user_ids.")"; WHERE lastedit_type = 'LearnpathSubscription' AND tool = 'learnpath' AND c_id = $courseId AND to_user_id IN (".$user_ids.")";
Database::query($item_property_lp_subscription); Database::query($item_property_lp_subscription);
@ -427,7 +427,7 @@ class CourseManager
if (!empty($session_id)) { if (!empty($session_id)) {
// Delete in table session_rel_course_rel_user // Delete in table session_rel_course_rel_user
Database::query("DELETE FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." Database::query("DELETE FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)."
WHERE id_session ='".$session_id."' AND course_code = '".Database::escape_string($courseCode)."' AND id_user IN ($user_ids)"); WHERE id_session ='".$session_id."' AND c_id = '".$courseId."' AND id_user IN ($user_ids)");
foreach ($user_id as $uid) { foreach ($user_id as $uid) {
// check if a user is register in the session with other course // check if a user is register in the session with other course
@ -448,9 +448,10 @@ class CourseManager
WHERE id = '".$session_id."'"); WHERE id = '".$session_id."'");
// Update the table session_rel_course // Update the table session_rel_course
$row = Database::fetch_array(@Database::query("SELECT COUNT(*) FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." WHERE id_session = '$session_id' AND course_code = '$courseCode' AND status<>2" )); $row = Database::fetch_array(@Database::query("SELECT COUNT(*) FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)."
WHERE id_session = '$session_id' AND c_id = '$courseId' AND status<>2" ));
$count = $row[0]; // number of users by session and course $count = $row[0]; // number of users by session and course
$result = @Database::query("UPDATE ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE)." SET nbr_users = '$count' WHERE id_session = '$session_id' AND course_code = '$courseCode' "); $result = @Database::query("UPDATE ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE)." SET nbr_users = '$count' WHERE id_session = '$session_id' AND c_id = '$courseId' ");
} else { } else {
Database::query("DELETE FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)." Database::query("DELETE FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
@ -483,6 +484,7 @@ class CourseManager
} }
$course_code = Database::escape_string($course_code); $course_code = Database::escape_string($course_code);
$courseInfo = api_get_course_info($course_code); $courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['real_id'];
if (empty($user_id) || empty ($course_code)) { if (empty($user_id) || empty ($course_code)) {
return false; return false;
@ -506,7 +508,7 @@ class CourseManager
// Check whether the user has not been already subscribed to the course. // Check whether the user has not been already subscribed to the course.
if (empty($session_id)) { if (empty($session_id)) {
if (Database::num_rows(@Database::query("SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)." if (Database::num_rows(@Database::query("SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
WHERE user_id = '$user_id' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." AND c_id = ".$courseInfo['real_id'])) > 0) { WHERE user_id = '$user_id' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." AND c_id = ".$courseId)) > 0) {
return false; // The user has been already subscribed to the course. return false; // The user has been already subscribed to the course.
} }
} }
@ -515,7 +517,7 @@ class CourseManager
// Check whether the user has not already been stored in the session_rel_course_user table // Check whether the user has not already been stored in the session_rel_course_user table
if (Database::num_rows(@Database::query("SELECT * FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." if (Database::num_rows(@Database::query("SELECT * FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)."
WHERE course_code = '".$course_code."' WHERE c_id = '".$courseId."'
AND id_session ='".$session_id."' AND id_session ='".$session_id."'
AND id_user = '".$user_id."'")) > 0) { AND id_user = '".$user_id."'")) > 0) {
return false; return false;
@ -535,29 +537,30 @@ class CourseManager
// Add him/her in the table session_rel_course_rel_user // Add him/her in the table session_rel_course_rel_user
@Database::query("INSERT INTO ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." @Database::query("INSERT INTO ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)."
SET id_session ='".$session_id."', SET id_session ='".$session_id."',
course_code = '".$_SESSION['_course']['id']."', c_id = '".$courseId."',
id_user = '".$user_id."'"); id_user = '".$user_id."'");
// Add him/her in the table session_rel_user // Add him/her in the table session_rel_user
@Database::query("INSERT INTO ".Database::get_main_table(TABLE_MAIN_SESSION_USER)."SET id_session ='".$session_id."', id_user = '".$user_id."'"); @Database::query("INSERT INTO ".Database::get_main_table(TABLE_MAIN_SESSION_USER)."SET id_session ='".$session_id."', id_user = '".$user_id."'");
// Update the table session // Update the table session
$row = Database::fetch_array(@Database::query("SELECT COUNT(*) FROM ".Database::get_main_table(TABLE_MAIN_SESSION_USER)." WHERE id_session = '".$session_id."' AND relation_type<>".SESSION_RELATION_TYPE_RRHH."")); $row = Database::fetch_array(@Database::query("SELECT COUNT(*) FROM ".Database::get_main_table(TABLE_MAIN_SESSION_USER)."
WHERE id_session = '".$session_id."' AND relation_type<>".SESSION_RELATION_TYPE_RRHH.""));
$count = $row[0]; // number of users by session $count = $row[0]; // number of users by session
$result = @Database::query("UPDATE ".Database::get_main_table(TABLE_MAIN_SESSION)." SET nbr_users = '$count' WHERE id = '".$session_id."'"); $result = @Database::query("UPDATE ".Database::get_main_table(TABLE_MAIN_SESSION)." SET nbr_users = '$count' WHERE id = '".$session_id."'");
// Update the table session_rel_course // Update the table session_rel_course
$row = Database::fetch_array(@Database::query("SELECT COUNT(*) FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." WHERE id_session = '".$session_id."' AND course_code = '$course_code' AND status<>2" )); $row = Database::fetch_array(@Database::query("SELECT COUNT(*) FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)."
WHERE id_session = '".$session_id."' AND c_id = ".$courseId." AND status <> 2" ));
$count = $row[0]; // number of users by session $count = $row[0]; // number of users by session
$result = @Database::query("UPDATE ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE)." SET nbr_users = '$count' WHERE id_session = '".$session_id."' AND course_code = '$course_code' "); $result = @Database::query("UPDATE ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE)." SET nbr_users = '$count'
WHERE id_session = '".$session_id."' AND c_id = '$courseId' ");
} else { } else {
$course_sort = self::userCourseSort($user_id, $course_code); $course_sort = self::userCourseSort($user_id, $courseId);
$course_info = api_get_course_info($course_code);
$result = @Database::query("INSERT INTO ".Database::get_main_table(TABLE_MAIN_COURSE_USER)." $result = @Database::query("INSERT INTO ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
SET SET
c_id = ".$course_info['real_id'].", c_id = ".$courseId.",
course_code = '$course_code',
user_id = '$user_id', user_id = '$user_id',
status = '".$status."', status = '".$status."',
sort = '". ($course_sort)."'"); sort = '". ($course_sort)."'");
@ -703,7 +706,7 @@ class CourseManager
if (!empty($courses_temp)) { if (!empty($courses_temp)) {
foreach($courses_temp as $course_item) { foreach($courses_temp as $course_item) {
$courses_as_admin[0][$course_item['course_code']] = $course_item['course_code']; $courses_as_admin[0][$course_item['real_id']] = $course_item['real_id'];
} }
} }
@ -788,21 +791,24 @@ class CourseManager
$user_id = intval($user_id); $user_id = intval($user_id);
$data = array(); $data = array();
$sql_nb_cours = "SELECT course_rel_user.course_code, course.title, course.id, course.db_name, course.id as real_id $sql_nb_cours = "SELECT course_rel_user.c_id,
FROM $tbl_course_user as course_rel_user course.title, course.id,
INNER JOIN $tbl_course as course course.db_name,
ON course.id = course_rel_user.c_id course.id as real_id
WHERE course_rel_user.user_id='$user_id' AND course_rel_user.status='1' FROM $tbl_course_user as course_rel_user
ORDER BY course.title"; INNER JOIN $tbl_course as course
ON course.id = course_rel_user.c_id
WHERE course_rel_user.user_id='$user_id' AND course_rel_user.status='1'
ORDER BY course.title";
if (api_get_multiple_access_url()) { if (api_get_multiple_access_url()) {
$tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE); $tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id(); $access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1) { if ($access_url_id != -1) {
$sql_nb_cours = " SELECT course_rel_user.course_code, course.title, course.id, course.db_name, course.id as real_id $sql_nb_cours = " SELECT course_rel_user.c_id, course.title, course.id, course.db_name, course.id as real_id
FROM $tbl_course_user as course_rel_user FROM $tbl_course_user as course_rel_user
INNER JOIN $tbl_course as course INNER JOIN $tbl_course as course
ON course.c_id = course_rel_user.c_id ON course.id = course_rel_user.c_id
INNER JOIN $tbl_course_rel_access_url course_rel_url INNER JOIN $tbl_course_rel_access_url course_rel_url
ON (course_rel_url.c_id = course.id) ON (course_rel_url.c_id = course.id)
WHERE access_url_id = $access_url_id AND course_rel_user.user_id='$user_id' AND course_rel_user.status='1' WHERE access_url_id = $access_url_id AND course_rel_user.user_id='$user_id' AND course_rel_user.status='1'
@ -813,7 +819,7 @@ class CourseManager
$result_nb_cours = Database::query($sql_nb_cours); $result_nb_cours = Database::query($sql_nb_cours);
if (Database::num_rows($result_nb_cours) > 0) { if (Database::num_rows($result_nb_cours) > 0) {
while ($row = Database::fetch_array($result_nb_cours,'ASSOC')) { while ($row = Database::fetch_array($result_nb_cours,'ASSOC')) {
$data[$row['course_code']] = $row; $data[$row['c_id']] = $row;
} }
} }
return $data; return $data;
@ -826,7 +832,7 @@ class CourseManager
* @param bool True for checking inside sessions too, by default is not checked * @param bool True for checking inside sessions too, by default is not checked
* @return bool true if the user is registered in the course, false otherwise * @return bool true if the user is registered in the course, false otherwise
*/ */
public static function is_user_subscribed_in_course($user_id, $course_code = null, $in_a_session = false, $session_id = null) { public static function is_user_subscribed_in_course($user_id, $courseId = null, $in_a_session = false, $session_id = null) {
$user_id = intval($user_id); $user_id = intval($user_id);
@ -836,14 +842,10 @@ class CourseManager
$session_id = intval($session_id); $session_id = intval($session_id);
} }
$condition_course = '';
$condition_course_id = null; $condition_course_id = null;
if (isset($course_code)) { if (isset($courseId)) {
$course_code = Database::escape_string($course_code); $courseId = intval($courseId);
$condition_course = ' AND course_code = "'.$course_code.'" '; $condition_course_id = ' AND c_id = "'.$courseId.'" ';
$courseInfo = api_get_course_info($course_code);
$condition_course_id = ' AND c_id = "'.$courseInfo['real_id'].'" ';
} }
$sql = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)." $sql = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
@ -860,12 +862,12 @@ class CourseManager
} }
if (Database::num_rows(Database::query('SELECT 1 FROM '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER). if (Database::num_rows(Database::query('SELECT 1 FROM '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER).
' WHERE id_user = '.$user_id.' '.$condition_course.' ')) > 0) { ' WHERE id_user = '.$user_id.' '.$condition_course_id.' ')) > 0) {
return true; return true;
} }
if (Database::num_rows(Database::query('SELECT 1 FROM '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER). if (Database::num_rows(Database::query('SELECT 1 FROM '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER).
' WHERE id_user = '.$user_id.' AND status=2 '.$condition_course.' ')) > 0) { ' WHERE id_user = '.$user_id.' AND status=2 '.$condition_course_id.' ')) > 0) {
return true; return true;
} }
@ -904,13 +906,15 @@ class CourseManager
* *
* @return true if the user is registered in the real course or linked courses, false otherwise * @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 = '') { public static function is_user_subscribed_in_real_or_linked_course ($user_id, $courseId, $session_id = '') {
if ($user_id != strval(intval($user_id))) { if ($user_id != strval(intval($user_id))) {
return false; return false;
} }
$course_code = Database::escape_string($course_code); $session_id = intval($session_id);
$courseId = Database::escape_string($courseId);
if ($session_id == '') { if ($session_id == '') {
$result = Database::fetch_array(Database::query("SELECT * $result = Database::fetch_array(Database::query("SELECT *
@ -919,7 +923,7 @@ class CourseManager
ON course.id = course_user.c_id ON course.id = course_user.c_id
WHERE course_user.user_id = '$user_id' AND WHERE course_user.user_id = '$user_id' AND
course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND
( course.code = '$course_code' OR target_course_code = '$course_code')")); course.id = '$courseId'"));
return !empty($result); return !empty($result);
} }
@ -930,7 +934,7 @@ class CourseManager
// A user? // A user?
if (Database::num_rows(Database::query("SELECT id_user if (Database::num_rows(Database::query("SELECT id_user
FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)."
WHERE id_session='".$_SESSION['id_session']."' WHERE id_session='".$session_id."'
AND id_user='$user_id'"))) { AND id_user='$user_id'"))) {
return true; return true;
} }
@ -938,16 +942,16 @@ class CourseManager
// A course coach? // A course coach?
if (Database::num_rows(Database::query("SELECT id_user if (Database::num_rows(Database::query("SELECT id_user
FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)."
WHERE id_session='".$_SESSION['id_session']."' WHERE id_session='".$session_id."'
AND id_user = '$user_id' AND status = 2 AND id_user = '$user_id' AND status = 2
AND course_code='$course_code'"))) { AND c_id ='$courseId'"))) {
return true; return true;
} }
// A session coach? // A session coach?
if (Database::num_rows(Database::query("SELECT id_coach if (Database::num_rows(Database::query("SELECT id_coach
FROM ".Database::get_main_table(TABLE_MAIN_SESSION)." AS session FROM ".Database::get_main_table(TABLE_MAIN_SESSION)." AS session
WHERE session.id='".$_SESSION['id_session']."' WHERE session.id='".$session_id."'
AND id_coach='$user_id'"))) { AND id_coach='$user_id'"))) {
return true; return true;
} }
@ -983,6 +987,7 @@ class CourseManager
} }
$courseInfo = api_get_course_info($course_code); $courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['real_id'];
$filter_by_status_condition = null; $filter_by_status_condition = null;
@ -991,7 +996,7 @@ class CourseManager
$sql .= ' FROM '.Database::get_main_table(TABLE_MAIN_USER).' as user '; $sql .= ' FROM '.Database::get_main_table(TABLE_MAIN_USER).' as user ';
$sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER).' as session_course_user $sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER).' as session_course_user
ON user.user_id = session_course_user.id_user ON user.user_id = session_course_user.id_user
AND session_course_user.course_code="'.$course_code.'" AND session_course_user.c_id="'.$courseId.'"
AND session_course_user.id_session = '.$session_id; AND session_course_user.id_session = '.$session_id;
$where[] = ' session_course_user.course_code IS NOT NULL '; $where[] = ' session_course_user.course_code IS NOT NULL ';
@ -1014,17 +1019,18 @@ class CourseManager
$sql = 'SELECT DISTINCT course_rel_user.status as status_rel, user.user_id, course_rel_user.role, course_rel_user.tutor_id, user.* '; $sql = 'SELECT DISTINCT course_rel_user.status as status_rel, user.user_id, course_rel_user.role, course_rel_user.tutor_id, user.* ';
} }
} }
$sql .= ' FROM '.Database::get_main_table(TABLE_MAIN_USER).' as user '; $sql .= ' FROM '.Database::get_main_table(TABLE_MAIN_USER).' as user ';
$sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_COURSE_USER).' as course_rel_user $sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_COURSE_USER).' as course_rel_user
ON user.user_id = course_rel_user.user_id AND ON user.user_id = course_rel_user.user_id AND
course_rel_user.relation_type <> '.COURSE_RELATION_TYPE_RRHH; course_rel_user.relation_type <> '.COURSE_RELATION_TYPE_RRHH;
if (!empty($course_code)) { if (!empty($course_code)) {
$sql .= " AND course_rel_user.c_id = ".$courseInfo['real_id']; $sql .= " AND course_rel_user.c_id = ".$courseId;
} else { } else {
$course_table = Database::get_main_table(TABLE_MAIN_COURSE); $course_table = Database::get_main_table(TABLE_MAIN_COURSE);
$sql .= " INNER JOIN $course_table course ON course_rel_user.c_id = course.id"; $sql .= " INNER JOIN $course_table course ON course_rel_user.c_id = course.id";
} }
$where[] = ' course_rel_user.course_code IS NOT NULL '; $where[] = ' course_rel_user.c_id IS NOT NULL ';
if (isset($filter_by_status) && $filter_by_status != '') { if (isset($filter_by_status) && $filter_by_status != '') {
$filter_by_status = intval($filter_by_status); $filter_by_status = intval($filter_by_status);
@ -1103,7 +1109,7 @@ class CourseManager
} }
$users[$row_key]['extra_'.$extra['1']] = $name; $users[$row_key]['extra_'.$extra['1']] = $name;
$users[$row_key]['training_hours'] += Tracking::get_time_spent_on_the_course($user['user_id'], $course_code, 0); $users[$row_key]['training_hours'] += Tracking::get_time_spent_on_the_course($user['user_id'], $courseId, 0);
$users[$row_key]['count_users'] += $counter; $users[$row_key]['count_users'] += $counter;
$registered_users_with_extra_field = 0; $registered_users_with_extra_field = 0;
@ -1130,7 +1136,7 @@ class CourseManager
} else { } else {
$report_info['course'] = $user['title']; $report_info['course'] = $user['title'];
$report_info['user'] = api_get_person_name($user['firstname'], $user['lastname']); $report_info['user'] = api_get_person_name($user['firstname'], $user['lastname']);
$report_info['time'] = api_time_to_hms(Tracking::get_time_spent_on_the_course($user['user_id'], $course_code, 0)); $report_info['time'] = api_time_to_hms(Tracking::get_time_spent_on_the_course($user['user_id'], $courseId, 0));
$category = Category :: load (null, null, $course_code); $category = Category :: load (null, null, $course_code);
@ -1138,9 +1144,9 @@ class CourseManager
if (isset($category[0]) && $category[0]->is_certificate_available($user['user_id'])) { if (isset($category[0]) && $category[0]->is_certificate_available($user['user_id'])) {
$report_info['certificate'] = Display::label(get_lang('Yes'), 'success'); $report_info['certificate'] = Display::label(get_lang('Yes'), 'success');
} }
//$report_info['score'] = Tracking::get_avg_student_score($user['user_id'], $course_code, array(), 0); //$report_info['score'] = Tracking::get_avg_student_score($user['user_id'], $courseId, array(), 0);
$progress = intval(Tracking::get_avg_student_progress($user['user_id'], $course_code, array(), 0)); $progress = intval(Tracking::get_avg_student_progress($user['user_id'], $courseId, array(), 0));
$report_info['progress_100'] = $progress == 100 ? Display::label(get_lang('Yes'), 'success') : Display::label(get_lang('No')); $report_info['progress_100'] = $progress == 100 ? Display::label(get_lang('Yes'), 'success') : Display::label(get_lang('No'));
$report_info['progress'] = $progress."%"; $report_info['progress'] = $progress."%";
@ -1176,13 +1182,14 @@ class CourseManager
$course_code = Database::escape_string($course_code); $course_code = Database::escape_string($course_code);
$courseInfo = api_get_course_info($course_code); $courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['real_id'];
$sql = 'SELECT DISTINCT count(*) as count FROM '.Database::get_main_table(TABLE_MAIN_USER).' as user '; $sql = 'SELECT DISTINCT count(*) as count FROM '.Database::get_main_table(TABLE_MAIN_USER).' as user ';
$where = array(); $where = array();
if (!empty($session_id)) { if (!empty($session_id)) {
$sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER).' as session_course_user $sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER).' as session_course_user
ON user.user_id = session_course_user.id_user ON user.user_id = session_course_user.id_user
AND session_course_user.course_code = "'.$course_code.'" AND session_course_user.c_id = "'.$courseId.'"
AND session_course_user.id_session = '.$session_id.' AND session_course_user.id_session = '.$session_id.'
INNER JOIN '.Database::get_main_table(TABLE_MAIN_SESSION_USER).' as su INNER JOIN '.Database::get_main_table(TABLE_MAIN_SESSION_USER).' as su
ON ( su.id_session = session_course_user.id_session AND ON ( su.id_session = session_course_user.id_session AND
@ -1191,12 +1198,12 @@ class CourseManager
su.moved_status <> '.SessionManager::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION.' su.moved_status <> '.SessionManager::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION.'
)'; )';
$where[] = ' session_course_user.course_code IS NOT NULL '; $where[] = ' session_course_user.c_id IS NOT NULL ';
} else { } else {
$sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_COURSE_USER).' as course_rel_user $sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_COURSE_USER).' as course_rel_user
ON user.user_id = course_rel_user.user_id AND course_rel_user.relation_type<>'.COURSE_RELATION_TYPE_RRHH.' ON user.user_id = course_rel_user.user_id AND course_rel_user.relation_type<>'.COURSE_RELATION_TYPE_RRHH.'
AND course_rel_user.c_id ="'.$courseInfo['real_id'].'"'; AND course_rel_user.c_id ="'.$courseId.'"';
$where[] = ' course_rel_user.course_code IS NOT NULL '; $where[] = ' course_rel_user.c_id IS NOT NULL ';
} }
$multiple_access_url = api_get_multiple_access_url(); $multiple_access_url = api_get_multiple_access_url();
@ -1225,19 +1232,19 @@ class CourseManager
* @param int Session ID * @param int Session ID
* @return array List of users * @return array List of users
*/ */
public static function get_coach_list_from_course_code($course_code, $session_id) { public static function get_coach_list_from_course_code($courseId, $session_id) {
if ($session_id != strval(intval($session_id))) { if ($session_id != strval(intval($session_id))) {
return array(); return array();
} }
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
$users = array(); $users = array();
// We get the coach for the given course in a given session. // We get the coach for the given course in a given session.
$rs = Database::query('SELECT id_user FROM '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER). $rs = Database::query('SELECT id_user FROM '.Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER).
' WHERE id_session="'.$session_id.'" AND course_code="'.$course_code.'" AND status = 2'); ' WHERE id_session="'.$session_id.'" AND c_id="'.$courseId.'" AND status = 2');
while ($user = Database::fetch_array($rs)) { while ($user = Database::fetch_array($rs)) {
$user_info = api_get_user_info($user['id_user']); $user_info = api_get_user_info($user['id_user']);
$user_info['status'] = $user['status']; $user_info['status'] = $user['status'];
@ -1268,11 +1275,9 @@ class CourseManager
* @param boolean $full list to true if we want sessions students too * @param boolean $full list to true if we want sessions students too
* @return array with user id * @return array with user id
*/ */
public static function get_student_list_from_course_code($course_code, $with_session = false, $session_id = 0, $group_id = 0) { public static function get_student_list_from_course_code($courseId, $with_session = false, $session_id = 0, $group_id = 0) {
$session_id = intval($session_id); $session_id = intval($session_id);
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
$courseInfo = api_get_course_info($course_code);
$students = array(); $students = array();
@ -1280,14 +1285,13 @@ class CourseManager
if (empty($group_id)) { if (empty($group_id)) {
// students directly subscribed to the course // students directly subscribed to the course
$sql = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)." $sql = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
WHERE c_id = ".$courseInfo['real_id']." AND status = ".STUDENT; WHERE c_id = ".$courseId." AND status = ".STUDENT;
$rs = Database::query($sql); $rs = Database::query($sql);
while ($student = Database::fetch_array($rs)) { while ($student = Database::fetch_array($rs)) {
$students[$student['user_id']] = $student; $students[$student['user_id']] = $student;
} }
} else { } else {
$course_info = api_get_course_info($course_code); $students = GroupManager::get_users($group_id, false, $courseId);
$students = GroupManager::get_users($group_id, false, $course_info['real_id']);
$students = array_flip($students); $students = array_flip($students);
} }
} }
@ -1296,7 +1300,7 @@ class CourseManager
if ($with_session) { if ($with_session) {
$sql_query = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." $sql_query = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)."
WHERE course_code = '$course_code' AND status <> 2"; WHERE c_id = '$courseId' AND status <> 2";
if ($session_id != 0) { if ($session_id != 0) {
$sql_query .= ' AND id_session = '.$session_id; $sql_query .= ' AND id_session = '.$session_id;
} }
@ -1364,7 +1368,7 @@ class CourseManager
* @return array - array containing user_id, lastname, firstname, username * @return array - array containing user_id, lastname, firstname, username
* *
*/ */
public static function get_coachs_from_course($session_id=0, $course_code='') { public static function get_coachs_from_course($session_id = 0, $courseId = null) {
if (!empty($session_id)) { if (!empty($session_id)) {
$session_id = intval($session_id); $session_id = intval($session_id);
@ -1372,10 +1376,10 @@ class CourseManager
$session_id = api_get_session_id(); $session_id = api_get_session_id();
} }
if (!empty($course_code)) { if (!empty($courseId)) {
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
} else { } else {
$course_code = api_get_course_id(); $courseId = api_get_course_int_id();
} }
$tbl_user = Database :: get_main_table(TABLE_MAIN_USER); $tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
@ -1384,7 +1388,7 @@ class CourseManager
$sql = "SELECT DISTINCT u.user_id, u.lastname, u.firstname, u.username $sql = "SELECT DISTINCT u.user_id, u.lastname, u.firstname, u.username
FROM $tbl_user u, $tbl_session_course_user scu FROM $tbl_user u, $tbl_session_course_user scu
WHERE u.user_id = scu.id_user AND scu.id_session = '$session_id' AND scu.course_code = '$course_code' AND scu.status = 2"; WHERE u.user_id = scu.id_user AND scu.id_session = '$session_id' AND scu.c_id = $courseId AND scu.status = 2";
$rs = Database::query($sql); $rs = Database::query($sql);
if (Database::num_rows($rs) > 0) { if (Database::num_rows($rs) > 0) {
@ -1397,8 +1401,8 @@ class CourseManager
} }
} }
public static function get_coachs_from_course_to_string($session_id = 0, $course_code = null, $separator = self::USER_SEPARATOR, $add_link_to_profile = false) { public static function get_coachs_from_course_to_string($session_id = 0, $courseId = null, $separator = self::USER_SEPARATOR, $add_link_to_profile = false) {
$coachs_course = self::get_coachs_from_course($session_id, $course_code); $coachs_course = self::get_coachs_from_course($session_id, $courseId);
$course_coachs = array(); $course_coachs = array();
if (is_array($coachs_course)) { if (is_array($coachs_course)) {
@ -1418,10 +1422,10 @@ class CourseManager
return $coaches_to_string; return $coaches_to_string;
} }
public static function get_coach_list_from_course_code_to_string($course_code, $session_id) { public static function get_coach_list_from_course_code_to_string($courseId, $session_id) {
$tutor_data = ''; $tutor_data = '';
if ($session_id != 0) { if ($session_id != 0) {
$coaches = self::get_email_of_tutor_to_session($session_id, $course_code); $coaches = self::get_email_of_tutor_to_session($session_id, $courseId);
$coach_list = array(); $coach_list = array();
foreach ($coaches as $coach) { foreach ($coaches as $coach) {
$coach_list[] = $coach['complete_name']; $coach_list[] = $coach['complete_name'];
@ -1536,19 +1540,19 @@ class CourseManager
$table_stats_uploads = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_UPLOADS); $table_stats_uploads = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_UPLOADS);
$courseInfo = api_get_course_info($code); $courseInfo = api_get_course_info($code);
$code = Database::escape_string($code); $code = Database::escape_string($code);
$courseId = $courseInfo['real_id'];
// Unsubscribe all classes from the course // Unsubscribe all classes from the course
$sql = "DELETE FROM $table_course_class WHERE course_code='".$code."'"; $sql = "DELETE FROM $table_course_class WHERE course_code='".$code."'";
Database::query($sql); Database::query($sql);
// Unsubscribe all users from the course // Unsubscribe all users from the course
$sql = "DELETE FROM $table_course_user WHERE c_id ='".$courseInfo['real_id']."'"; $sql = "DELETE FROM $table_course_user WHERE c_id ='".$courseId."'";
Database::query($sql); Database::query($sql);
// Delete the course from the sessions tables // Delete the course from the sessions tables
$sql = "DELETE FROM $table_session_course WHERE course_code='".$code."'"; $sql = "DELETE FROM $table_session_course WHERE c_id='".$courseId."'";
Database::query($sql); Database::query($sql);
$sql = "DELETE FROM $table_session_course_user WHERE course_code='".$code."'"; $sql = "DELETE FROM $table_session_course_user WHERE c_id='".$courseId."'";
Database::query($sql); Database::query($sql);
$sql = 'SELECT survey_id FROM '.$table_course_survey.' WHERE course_code="'.$code.'"'; $sql = 'SELECT survey_id FROM '.$table_course_survey.' WHERE course_code="'.$code.'"';
@ -1565,25 +1569,25 @@ class CourseManager
// Delete the course from the stats tables // Delete the course from the stats tables
$sql = "DELETE FROM $table_stats_hotpots WHERE c_id = '".$courseInfo['real_id']."'"; $sql = "DELETE FROM $table_stats_hotpots WHERE c_id = '".$courseId."'";
Database::query($sql); Database::query($sql);
$sql = "DELETE FROM $table_stats_attempt WHERE c_id = '".$courseInfo['real_id']."'"; $sql = "DELETE FROM $table_stats_attempt WHERE c_id = '".$courseId."'";
Database::query($sql); Database::query($sql);
$sql = "DELETE FROM $table_stats_exercises WHERE c_id = '".$courseInfo['real_id']."'"; $sql = "DELETE FROM $table_stats_exercises WHERE c_id = '".$courseId."'";
Database::query($sql); Database::query($sql);
$sql = "DELETE FROM $table_stats_access WHERE access_cours_code = '".$code."'"; $sql = "DELETE FROM $table_stats_access WHERE c_id = '".$courseId."'";
Database::query($sql); Database::query($sql);
$sql = "DELETE FROM $table_stats_lastaccess WHERE access_cours_code = '".$code."'"; $sql = "DELETE FROM $table_stats_lastaccess WHERE c_id = '".$courseId."'";
Database::query($sql); Database::query($sql);
$sql = "DELETE FROM $table_stats_course_access WHERE course_code = '".$code."'"; $sql = "DELETE FROM $table_stats_course_access WHERE c_id = '".$courseId."'";
Database::query($sql); Database::query($sql);
$sql = "DELETE FROM $table_stats_online WHERE course = '".$code."'"; $sql = "DELETE FROM $table_stats_online WHERE course = '".$code."'";
Database::query($sql); Database::query($sql);
$sql = "DELETE FROM $table_stats_default WHERE default_cours_code = '".$code."'"; $sql = "DELETE FROM $table_stats_default WHERE default_cours_code = '".$code."'";
Database::query($sql); Database::query($sql);
$sql = "DELETE FROM $table_stats_downloads WHERE down_cours_id = '".$code."'"; $sql = "DELETE FROM $table_stats_downloads WHERE c_id = '".$courseId."'";
Database::query($sql); Database::query($sql);
$sql = "DELETE FROM $table_stats_links WHERE links_cours_id = '".$code."'"; $sql = "DELETE FROM $table_stats_links WHERE c_id = '".$courseId."'";
Database::query($sql); Database::query($sql);
$sql = "DELETE FROM $table_stats_uploads WHERE upload_cours_id = '".$code."'"; $sql = "DELETE FROM $table_stats_uploads WHERE upload_cours_id = '".$code."'";
Database::query($sql); Database::query($sql);
@ -1593,11 +1597,11 @@ class CourseManager
if (api_get_current_access_url_id() != -1) { if (api_get_current_access_url_id() != -1) {
$url_id = api_get_current_access_url_id(); $url_id = api_get_current_access_url_id();
} }
UrlManager::delete_url_rel_course($courseInfo['real_id'], $url_id); UrlManager::delete_url_rel_course($courseId, $url_id);
} }
// Delete the course from the database // Delete the course from the database
$sql = "DELETE FROM $table_course WHERE code='".$code."'"; $sql = "DELETE FROM $table_course WHERE id = '".$courseId."'";
Database::query($sql); Database::query($sql);
// delete extra course fields // delete extra course fields
@ -1640,7 +1644,6 @@ class CourseManager
// Add event to system log // Add event to system log
$user_id = api_get_user_id(); $user_id = api_get_user_id();
event_system(LOG_COURSE_DELETE, LOG_COURSE_CODE, $code, api_get_utc_datetime(), $user_id, $code); event_system(LOG_COURSE_DELETE, LOG_COURSE_CODE, $code, api_get_utc_datetime(), $user_id, $code);
} }
/** /**
@ -1696,17 +1699,17 @@ class CourseManager
* @return int Minimum course order * @return int Minimum course order
* @todo Review documentation * @todo Review documentation
*/ */
public static function userCourseSort($user_id, $course_code) { public static function userCourseSort($user_id, $courseId) {
if ($user_id != strval(intval($user_id))) { if ($user_id != strval(intval($user_id))) {
return false; return false;
} }
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
$TABLECOURSE = Database::get_main_table(TABLE_MAIN_COURSE); $TABLECOURSE = Database::get_main_table(TABLE_MAIN_COURSE);
$TABLECOURSUSER = Database::get_main_table(TABLE_MAIN_COURSE_USER); $TABLECOURSUSER = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$course_title = Database::result(Database::query('SELECT title FROM '.$TABLECOURSE.' WHERE code="'.$course_code.'"'), 0, 0); $course_title = Database::result(Database::query('SELECT title FROM '.$TABLECOURSE.' WHERE id = "'.$courseId.'"'), 0, 0);
$sql = 'SELECT course.code as code, course.title as title, cu.sort as sort $sql = 'SELECT course.code as code, course.title as title, cu.sort as sort
FROM '.$TABLECOURSUSER.' as cu, '.$TABLECOURSE.' as course FROM '.$TABLECOURSUSER.' as cu, '.$TABLECOURSE.' as course
@ -1912,7 +1915,6 @@ class CourseManager
$special_course_list = self::get_special_course_list(); $special_course_list = self::get_special_course_list();
$with_special_courses = $without_special_courses = ''; $with_special_courses = $without_special_courses = '';
if (!empty($special_course_list)) { if (!empty($special_course_list)) {
$sc_string = '"'.implode('","',$special_course_list).'"'; $sc_string = '"'.implode('","',$special_course_list).'"';
@ -1959,7 +1961,7 @@ class CourseManager
if ($include_sessions === true) { if ($include_sessions === true) {
$sql = "SELECT DISTINCT(c.code), c.id as real_id $sql = "SELECT DISTINCT(c.code), c.id as real_id
FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." s, ".Database::get_main_table(TABLE_MAIN_COURSE)." c FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." s, ".Database::get_main_table(TABLE_MAIN_COURSE)." c
WHERE id_user = $user_id AND s.course_code=c.code"; WHERE id_user = $user_id AND s.c_id =c.id";
$r = Database::query($sql); $r = Database::query($sql);
while ($row = Database::fetch_array($r, 'ASSOC')) { while ($row = Database::fetch_array($r, 'ASSOC')) {
if (!in_array($row['real_id'], $codes)) { if (!in_array($row['real_id'], $codes)) {
@ -2030,11 +2032,11 @@ class CourseManager
/** /**
* Get coachs' emails by session * Get coachs' emails by session
* @param int session id * @param int session id
* @param string course code * @param int course id
* @return array array(email => name_tutor) by coach * @return array array(email => name_tutor) by coach
* @author Carlos Vargas <carlos.vargas@dokeos.com> * @author Carlos Vargas <carlos.vargas@dokeos.com>
*/ */
public static function get_email_of_tutor_to_session($session_id, $course_code) { public static function get_email_of_tutor_to_session($session_id, $courseId) {
$tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
@ -2043,7 +2045,7 @@ class CourseManager
$course_code = Database::escape_string($course_code); $course_code = Database::escape_string($course_code);
$session_id = intval($session_id); $session_id = intval($session_id);
$sql = "SELECT id_user FROM $tbl_session_course_user WHERE id_session='$session_id' AND course_code='$course_code' AND status =2"; $sql = "SELECT id_user FROM $tbl_session_course_user WHERE id_session='$session_id' AND c_id ='$courseId' AND status =2";
$rs = Database::query($sql); $rs = Database::query($sql);
if (Database::num_rows($rs) > 0) { if (Database::num_rows($rs) > 0) {
@ -2057,7 +2059,6 @@ class CourseManager
$rs_user = Database::query($sql); $rs_user = Database::query($sql);
while ($row_emails = Database::fetch_array($rs_user)) { while ($row_emails = Database::fetch_array($rs_user)) {
//$name_tutor = api_get_person_name($row_emails['firstname'], $row_emails['lastname'], null, PERSON_NAME_EMAIL_ADDRESS);
$mail_tutor = array('email' => $row_emails['email'], 'complete_name' => api_get_person_name($row_emails['firstname'], $row_emails['lastname'])); $mail_tutor = array('email' => $row_emails['email'], 'complete_name' => api_get_person_name($row_emails['firstname'], $row_emails['lastname']));
$coachs_emails[] = $mail_tutor; $coachs_emails[] = $mail_tutor;
} }
@ -3283,7 +3284,7 @@ class CourseManager
if (api_get_setting('display_teacher_in_courselist') == 'true') { if (api_get_setting('display_teacher_in_courselist') == 'true') {
$teacher_list = CourseManager::get_teacher_list_from_course_code_to_string($course_info['real_id'], self::USER_SEPARATOR, true); $teacher_list = CourseManager::get_teacher_list_from_course_code_to_string($course_info['real_id'], self::USER_SEPARATOR, true);
$course_coachs = CourseManager::get_coachs_from_course_to_string($course_info['id_session'], $course['code'], self::USER_SEPARATOR, true); $course_coachs = CourseManager::get_coachs_from_course_to_string($course_info['id_session'], $course_info['real_id'], self::USER_SEPARATOR, true);
$params['teachers'] = $teacher_list; $params['teachers'] = $teacher_list;
$params['coaches'] = $course_coachs; $params['coaches'] = $course_coachs;
} }
@ -3403,7 +3404,7 @@ class CourseManager
if (empty($session_id)) { if (empty($session_id)) {
$table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT legal_agreement FROM $table $sql = "SELECT legal_agreement FROM $table
WHERE user_id = $user_id AND course_code ='$course_code' "; WHERE user_id = $user_id AND c_id = '$course_id' ";
$result = Database::query($sql); $result = Database::query($sql);
if (Database::num_rows($result) > 0 ) { if (Database::num_rows($result) > 0 ) {
$result = Database::fetch_array($result); $result = Database::fetch_array($result);
@ -3450,7 +3451,7 @@ class CourseManager
} else { } else {
$table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sql = "UPDATE $table SET legal_agreement = '1' $sql = "UPDATE $table SET legal_agreement = '1'
WHERE id_user = $user_id AND course_code = '$course_code' AND id_session = $session_id"; WHERE id_user = $user_id AND c_id = '$course_id' AND id_session = $session_id";
$result = Database::query($sql); $result = Database::query($sql);
} }
} }
@ -3699,18 +3700,14 @@ class CourseManager
$today_diff = api_get_utc_datetime($today_diff); $today_diff = api_get_utc_datetime($today_diff);
* */ * */
//WHERE login_course_date <= '$today' AND login_course_date >= '$today_diff' $sql = "SELECT COUNT(course_access_id) course_count, a.c_id, visibility ".
//$table_course_access table uses the now() and interval ...
$sql = "SELECT COUNT(course_access_id) course_count, a.course_code, visibility ".
"FROM $table_course c INNER JOIN $table_course_access a ". "FROM $table_course c INNER JOIN $table_course_access a ".
" ON (c.code = a.course_code) INNER JOIN $table_course_url u ON u.c_id = c.id ". " ON (c.id = a.c_id) INNER JOIN $table_course_url u ON u.c_id = c.id ".
" WHERE u.access_url_id = ".$urlId." AND". " WHERE u.access_url_id = ".$urlId." AND".
" login_course_date <= now() AND ". " login_course_date <= now() AND ".
" login_course_date > DATE_SUB(now(), INTERVAL $days DAY) AND". " login_course_date > DATE_SUB(now(), INTERVAL $days DAY) AND".
" visibility <> '".COURSE_VISIBILITY_CLOSED."'". " visibility <> '".COURSE_VISIBILITY_CLOSED."'".
" GROUP BY course_code". " GROUP BY a.c_id".
" ORDER BY course_count DESC". " ORDER BY course_count DESC".
" LIMIT $limit"; " LIMIT $limit";
@ -3727,7 +3724,7 @@ class CourseManager
$ajax_url = api_get_path(WEB_AJAX_PATH).'course.ajax.php?a=add_course_vote'; $ajax_url = api_get_path(WEB_AJAX_PATH).'course.ajax.php?a=add_course_vote';
foreach ($courses as &$my_course) { foreach ($courses as &$my_course) {
$course_info = api_get_course_info($my_course['course_code']); $course_info = api_get_course_info_by_id($my_course['c_id']);
$my_course['extra_info'] = $course_info; $my_course['extra_info'] = $course_info;
$my_course['extra_info']['go_to_course_button'] = ''; $my_course['extra_info']['go_to_course_button'] = '';
$my_course['extra_info']['register_button'] = ''; $my_course['extra_info']['register_button'] = '';

@ -479,12 +479,10 @@ class CourseHome {
} }
} }
$i = 0;
// Grabbing all the links that have the property on_homepage set to 1 // Grabbing all the links that have the property on_homepage set to 1
$course_link_table = Database::get_course_table(TABLE_LINK); $course_link_table = Database::get_course_table(TABLE_LINK);
$course_item_property_table = Database::get_course_table(TABLE_ITEM_PROPERTY); $course_item_property_table = Database::get_course_table(TABLE_ITEM_PROPERTY);
switch ($course_tool_category) { switch ($course_tool_category) {
case TOOL_AUTHORING: case TOOL_AUTHORING:
$sql_links = "SELECT tl.*, tip.visibility $sql_links = "SELECT tl.*, tip.visibility

@ -14,7 +14,7 @@ class CurrentCourse
/** /**
* *
* @return CurrentCourse * @return CurrentCourse
*/ */
public static function instance() public static function instance()
{ {
@ -29,7 +29,7 @@ class CurrentCourse
{ {
; ;
} }
public function is_empty() public function is_empty()
{ {
$id = $this->real_id(); $id = $this->real_id();
@ -38,7 +38,7 @@ class CurrentCourse
public function data() public function data()
{ {
global $_course; $_course = api_get_course_info();
if ($_course == '-1') { if ($_course == '-1') {
$_course = array(); $_course = array();
} }
@ -82,8 +82,8 @@ class CurrentCourse
/** /**
* not needed in Chamilo 1.9 * not needed in Chamilo 1.9
* *
* @return type * @return type
*/ */
public function db_name() public function db_name()
{ {
@ -144,11 +144,11 @@ class CurrentCourse
{ {
return $this->get('extLink'); return $this->get('extLink');
} }
/** /**
* Returns the current user (logged in user) relationship with the course. * Returns the current user (logged in user) relationship with the course.
* I.e his role * I.e his role
* *
* @return array * @return array
*/ */
public function user() public function user()

@ -1194,8 +1194,8 @@ class Display
$course_info['id_session'] = intval($course_info['id_session']); $course_info['id_session'] = intval($course_info['id_session']);
// Get the user's last access dates to all tools of this course // Get the user's last access dates to all tools of this course
$sqlLastTrackInCourse = "SELECT * FROM $t_track_e_access USE INDEX (access_cours_code, access_user_id) $sqlLastTrackInCourse = "SELECT * FROM $t_track_e_access USE INDEX (c_id, access_user_id)
WHERE access_cours_code = '".$course_code."' AND WHERE c_id = ".$course_id." AND
access_user_id = '$user_id' AND access_user_id = '$user_id' AND
access_session_id ='".$course_info['id_session']."'"; access_session_id ='".$course_info['id_session']."'";
$resLastTrackInCourse = Database::query($sqlLastTrackInCourse); $resLastTrackInCourse = Database::query($sqlLastTrackInCourse);

@ -1336,7 +1336,7 @@ class DocumentManager
//3. Checking if user exist in course/session //3. Checking if user exist in course/session
if ($session_id == 0) { if ($session_id == 0) {
if (CourseManager::is_user_subscribed_in_course($user_id, $course_info['code']) || api_is_platform_admin() if (CourseManager::is_user_subscribed_in_course($user_id, $course_info['real_id']) || api_is_platform_admin()
) { ) {
$user_in_course = true; $user_in_course = true;
} }
@ -1347,7 +1347,7 @@ class DocumentManager
} else { } else {
$user_status = SessionManager::get_user_status_in_course_session( $user_status = SessionManager::get_user_status_in_course_session(
$user_id, $user_id,
$course_info['code'], $course_info['real_id'],
$session_id $session_id
); );
if (in_array($user_status, array('0', '2', '6'))) { if (in_array($user_status, array('0', '2', '6'))) {
@ -2966,7 +2966,7 @@ class DocumentManager
if (!$user_in_course) { if (!$user_in_course) {
if (empty($session_id)) { if (empty($session_id)) {
if (CourseManager::is_user_subscribed_in_course($user_id, $course_info['code'])) { if (CourseManager::is_user_subscribed_in_course($user_id, $course_info['real_id'])) {
$user_in_course = true; $user_in_course = true;
} }
//Check if course is open then we can consider that the student is regitered to the course //Check if course is open then we can consider that the student is regitered to the course
@ -2976,7 +2976,7 @@ class DocumentManager
} else { } else {
$user_status = SessionManager::get_user_status_in_course_session( $user_status = SessionManager::get_user_status_in_course_session(
$user_id, $user_id,
$course_info['code'], $course_info['real_id'],
$session_id $session_id
); );
//is true if is an student, course session teacher or coach //is true if is an student, course session teacher or coach

@ -16,10 +16,9 @@
$TABLETRACK_LOGIN = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LOGIN); $TABLETRACK_LOGIN = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LOGIN);
$TABLETRACK_OPEN = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_OPEN); $TABLETRACK_OPEN = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_OPEN);
$TABLETRACK_ACCESS = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ACCESS); $TABLETRACK_ACCESS = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ACCESS);
$course_tracking_table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
$TABLETRACK_DOWNLOADS = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_DOWNLOADS);
$TABLETRACK_UPLOADS = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_UPLOADS); $TABLETRACK_UPLOADS = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_UPLOADS);
$TABLETRACK_LINKS = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LINKS);
$TABLETRACK_EXERCICES = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES); $TABLETRACK_EXERCICES = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$TABLETRACK_LASTACCESS = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LASTACCESS); //for "what's new" notification $TABLETRACK_LASTACCESS = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LASTACCESS); //for "what's new" notification
$TABLETRACK_DEFAULT = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_DEFAULT); $TABLETRACK_DEFAULT = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_DEFAULT);
@ -111,7 +110,7 @@ function event_access_course()
$id_session = api_get_session_id(); $id_session = api_get_session_id();
$now = api_get_utc_datetime(); $now = api_get_utc_datetime();
$_cid = api_get_course_id(); $courseId = api_get_course_int_id();
$user_id = api_get_user_id(); $user_id = api_get_user_id();
if ($user_id) { if ($user_id) {
@ -119,19 +118,19 @@ function event_access_course()
} else { } else {
$user_id = "0"; // no one $user_id = "0"; // no one
} }
$sql = "INSERT INTO ".$TABLETRACK_ACCESS." (access_user_id, access_cours_code, access_date, access_session_id) VALUES $sql = "INSERT INTO ".$TABLETRACK_ACCESS." (access_user_id, c_id, access_date, access_session_id) VALUES
(".$user_id.", '".$_cid."', '".$now."','".$id_session."')"; (".$user_id.", '".$courseId."', '".$now."','".$id_session."')";
$res = Database::query($sql); Database::query($sql);
// added for "what's new" notification // added for "what's new" notification
$sql = "UPDATE $TABLETRACK_LASTACCESS SET access_date = '$now' $sql = "UPDATE $TABLETRACK_LASTACCESS SET access_date = '$now'
WHERE access_user_id = $user_id AND access_cours_code = '$_cid' AND access_tool IS NULL AND access_session_id=".$id_session; WHERE access_user_id = $user_id AND c_id = '$courseId' AND access_tool IS NULL AND access_session_id=".$id_session;
$res = Database::query($sql); Database::query($sql);
if (Database::affected_rows() == 0) { if (Database::affected_rows() == 0) {
$sql = "INSERT INTO $TABLETRACK_LASTACCESS (access_user_id, access_cours_code, access_date, access_session_id) $sql = "INSERT INTO $TABLETRACK_LASTACCESS (access_user_id, c_id, access_date, access_session_id)
VALUES (".$user_id.", '".$_cid."', '$now', '".$id_session."')"; VALUES (".$user_id.", '".$courseId."', '$now', '".$id_session."')";
$res = Database::query($sql); Database::query($sql);
} }
// end "what's new" notification // end "what's new" notification
return 1; return 1;
@ -155,11 +154,12 @@ function event_access_tool($tool, $id_session = 0)
{ {
global $_configuration; global $_configuration;
global $_user; global $_user;
global $_cid;
global $TABLETRACK_ACCESS; global $TABLETRACK_ACCESS;
global $_course; $_course = api_get_course_info();
global $TABLETRACK_LASTACCESS; //for "what's new" notification global $TABLETRACK_LASTACCESS; //for "what's new" notification
$courseId = api_get_course_int_id();
$id_session = api_get_session_id(); $id_session = api_get_session_id();
$tool = Database::escape_string($tool); $tool = Database::escape_string($tool);
$reallyNow = api_get_utc_datetime(); $reallyNow = api_get_utc_datetime();
@ -176,28 +176,28 @@ function event_access_tool($tool, $id_session = 0)
if ($pos !== false || $pos2 !== false) { if ($pos !== false || $pos2 !== false) {
$sql = "INSERT INTO ".$TABLETRACK_ACCESS." $sql = "INSERT INTO ".$TABLETRACK_ACCESS."
(access_user_id, (access_user_id,
access_cours_code, c_id,
access_tool, access_tool,
access_date, access_date,
access_session_id access_session_id
) )
VALUES VALUES
(".$user_id.",".// Don't add ' ' around value, it's already done. (".$user_id.",".// Don't add ' ' around value, it's already done.
"'".$_cid."' , "'".$courseId."' ,
'".$tool."', '".$tool."',
'".$reallyNow."', '".$reallyNow."',
'".$id_session."')"; '".$id_session."')";
$res = Database::query($sql); Database::query($sql);
} }
// "what's new" notification // "what's new" notification
$sql = "UPDATE $TABLETRACK_LASTACCESS $sql = "UPDATE $TABLETRACK_LASTACCESS
SET access_date = '$reallyNow' SET access_date = '$reallyNow'
WHERE access_user_id = ".$user_id." AND access_cours_code = '".$_cid."' AND access_tool = '".$tool."' AND access_session_id=".$id_session; WHERE access_user_id = ".$user_id." AND c_id = '".$courseId."' AND access_tool = '".$tool."' AND access_session_id=".$id_session;
$res = Database::query($sql); Database::query($sql);
if (Database::affected_rows() == 0) { if (Database::affected_rows() == 0) {
$sql = "INSERT INTO $TABLETRACK_LASTACCESS (access_user_id,access_cours_code,access_tool, access_date, access_session_id) $sql = "INSERT INTO $TABLETRACK_LASTACCESS (access_user_id, c_id, access_tool, access_date, access_session_id)
VALUES (".$user_id.", '".$_cid."' , '$tool', '$reallyNow', $id_session)"; VALUES (".$user_id.", '".$courseId."' , '$tool', '$reallyNow', $id_session)";
$res = Database::query($sql); Database::query($sql);
} }
return 1; return 1;
} }
@ -222,11 +222,11 @@ function event_download($doc_url)
$reallyNow = api_get_utc_datetime(); $reallyNow = api_get_utc_datetime();
$user_id = "'".api_get_user_id()."'"; $user_id = "'".api_get_user_id()."'";
$_cid = api_get_course_id(); $_cid = api_get_course_int_id();
$sql = "INSERT INTO $tbl_stats_downloads ( $sql = "INSERT INTO $tbl_stats_downloads (
down_user_id, down_user_id,
down_cours_id, c_id,
down_doc_path, down_doc_path,
down_date, down_date,
down_session_id down_session_id
@ -287,7 +287,9 @@ function event_upload($doc_id)
*/ */
function event_link($link_id) function event_link($link_id)
{ {
global $_user, $TABLETRACK_LINKS; global $_user;
$TABLETRACK_LINKS = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LINKS);
$reallyNow = api_get_utc_datetime(); $reallyNow = api_get_utc_datetime();
if (isset($_user['user_id']) && $_user['user_id'] != '') { if (isset($_user['user_id']) && $_user['user_id'] != '') {
$user_id = "'".Database::escape_string($_user['user_id'])."'"; $user_id = "'".Database::escape_string($_user['user_id'])."'";
@ -297,18 +299,18 @@ function event_link($link_id)
} }
$sql = "INSERT INTO ".$TABLETRACK_LINKS." $sql = "INSERT INTO ".$TABLETRACK_LINKS."
( links_user_id, ( links_user_id,
links_cours_id, c_id,
links_link_id, links_link_id,
links_date, links_date,
links_session_id links_session_id
) VALUES ( ) VALUES (
".$user_id.", ".$user_id.",
'".api_get_course_id()."', '".api_get_course_int_id()."',
'".Database::escape_string($link_id)."', '".Database::escape_string($link_id)."',
'".$reallyNow."', '".$reallyNow."',
'".api_get_session_id()."' '".api_get_session_id()."'
)"; )";
$res = Database::query($sql); Database::query($sql);
return 1; return 1;
} }
@ -1602,17 +1604,17 @@ function get_answered_questions_from_attempt($exe_id, $objExercise) {
* @param $user_id * @param $user_id
* @param $session_id * @param $session_id
*/ */
function event_course_login($course_code, $user_id, $session_id) function event_course_login($courseId, $user_id, $session_id)
{ {
global $course_tracking_table; $course_tracking_table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
$time = api_get_datetime(); $time = api_get_datetime();
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
$user_id = Database::escape_string($user_id); $user_id = Database::escape_string($user_id);
$session_id = Database::escape_string($session_id); $session_id = Database::escape_string($session_id);
$sql = "INSERT INTO $course_tracking_table(course_code, user_id, login_course_date, logout_course_date, counter, session_id) $sql = "INSERT INTO $course_tracking_table(c_id, user_id, login_course_date, logout_course_date, counter, session_id)
VALUES('".$course_code."', '".$user_id."', '$time', '$time', '1', '".$session_id."')"; VALUES('".$courseId."', '".$user_id."', '$time', '$time', '1', '".$session_id."')";
Database::query($sql); Database::query($sql);
//Course catalog stats modifications see #4191 //Course catalog stats modifications see #4191

@ -289,7 +289,8 @@ function FileUpload($resourceType, $currentFolder, $sCommand)
if ($sErrorNumber == '0') { if ($sErrorNumber == '0') {
// While we are in a course: Registering the newly uploaded file in the course's database. // While we are in a course: Registering the newly uploaded file in the course's database.
if (api_is_in_course()) { if (api_is_in_course()) {
global $_course, $_user; global $_user;
$_course = api_get_course_info();
$repository_path = api_get_path(REL_COURSE_PATH).api_get_course_path().'/document/'; $repository_path = api_get_path(REL_COURSE_PATH).api_get_course_path().'/document/';
$to_group_id = 0; $to_group_id = 0;

@ -135,7 +135,8 @@ function CreateServerFolder($folderPath, $lastFolder = null)
// While we are in a course: Registering the newly created folder in the course's database. // While we are in a course: Registering the newly created folder in the course's database.
if (api_is_in_course()) { if (api_is_in_course()) {
global $_course, $_user; global $_user;
$_course = api_get_course_info();
$repository_path = api_get_path(REL_COURSE_PATH).api_get_course_path().'/document/'; $repository_path = api_get_path(REL_COURSE_PATH).api_get_course_path().'/document/';
$to_group_id = 0; $to_group_id = 0;

@ -138,7 +138,7 @@ class ImageManager
) { ) {
continue; continue;
} }
global $_course; $_course = api_get_course_info();
if (!empty($_course)) { if (!empty($_course)) {
$base_dir = substr($fullpath, 0, strpos($fullpath, '/document/') + 9); // $base_dir = substr($fullpath, 0, strpos($fullpath, '/document/') + 9); //
$new_dir = substr($fullpath, strlen($base_dir), -1); // $new_dir = substr($fullpath, strlen($base_dir), -1); //
@ -251,7 +251,7 @@ class ImageManager
} }
if ($is_dir && !$this->isThumbDir($entry)) { if ($is_dir && !$this->isThumbDir($entry)) {
global $_course; $_course = api_get_course_info();
if (isset($_course) && !empty($_course) && isset($_course['code'])) { if (isset($_course) && !empty($_course) && isset($_course['code'])) {
//checking visibility //checking visibility
$base_dir = substr($dir_entry, 0, strpos($dir_entry, '/document/') + 9); $base_dir = substr($dir_entry, 0, strpos($dir_entry, '/document/') + 9);
@ -274,7 +274,7 @@ class ImageManager
if (is_file($fullpath.$entry) && !$this->isThumb($entry) && !$this->isTmpFile($entry)) { if (is_file($fullpath.$entry) && !$this->isThumb($entry) && !$this->isTmpFile($entry)) {
$img = $this->getImageInfo($fullpath.$entry); $img = $this->getImageInfo($fullpath.$entry);
if (!(!is_array($img) && $this->config['validate_images'])) { if (!(!is_array($img) && $this->config['validate_images'])) {
global $_course; $_course = api_get_course_info();
if (!empty($_course) && isset($_course['code'])) { if (!empty($_course) && isset($_course['code'])) {
//checking visibility //checking visibility
@ -528,7 +528,7 @@ class ImageManager
*/ */
function _processFiles($relative, $file) function _processFiles($relative, $file)
{ {
global $_course; $_course = api_get_course_info();
if ($file['error'] != 0) { if ($file['error'] != 0) {
return false; return false;
} }
@ -788,7 +788,7 @@ class ImageManager
if (Files::delFile($fullpath)) { if (Files::delFile($fullpath)) {
//deleting from the DB //deleting from the DB
global $_course; $_course = api_get_course_info();
if (isset($_course) && !empty($_course) && isset($_course['code'])) { if (isset($_course) && !empty($_course) && isset($_course['code'])) {
$document_path = substr( $document_path = substr(
$fullpath, $fullpath,
@ -817,7 +817,7 @@ class ImageManager
//if($this->countFiles($fullpath) <= 0) { //if($this->countFiles($fullpath) <= 0) {
// now we use the default delete_document function // now we use the default delete_document function
//return Files::delFolder($fullpath,true); //delete recursively. //return Files::delFolder($fullpath,true); //delete recursively.
global $_course; $_course = api_get_course_info();
if (isset($_course) && !empty($_course) && isset($_course['code'])) { if (isset($_course) && !empty($_course) && isset($_course['code'])) {
$path_dir = substr($fullpath, strpos($fullpath, '/document/') + 9, -1); // $path_dir = substr($fullpath, strpos($fullpath, '/document/') + 9, -1); //
$base_dir = substr($fullpath, 0, strlen($fullpath) - strlen($path_dir)); // $base_dir = substr($fullpath, 0, strlen($fullpath) - strlen($path_dir)); //
@ -859,8 +859,7 @@ class ImageManager
//adding to the DB //adding to the DB
// now the FileManager::create_unexisting_directory will create the folder // now the FileManager::create_unexisting_directory will create the folder
//$result = Files::createFolder($fullpath); //$result = Files::createFolder($fullpath);
$_course = api_get_course_info();
global $_course;
if (isset($_course) && !empty($_course) && isset($_course['code'])) { if (isset($_course) && !empty($_course) && isset($_course['code'])) {
//@todo make this str to functions //@todo make this str to functions
$base_dir = substr($path, 0, strpos($path, '/document/') + 9); // $base_dir = substr($path, 0, strpos($path, '/document/') + 9); //

@ -19,6 +19,7 @@ if (!isset($manager)) {
//$_GET = $_POST; //$_GET = $_POST;
include_once dirname(__FILE__).DIRECTORY_SEPARATOR."inc".DIRECTORY_SEPARATOR."config.php"; include_once dirname(__FILE__).DIRECTORY_SEPARATOR."inc".DIRECTORY_SEPARATOR."config.php";
include_once CLASS_PAGINATION; include_once CLASS_PAGINATION;
$pagination = new pagination(false); $pagination = new pagination(false);
$search_folder = null; $search_folder = null;
if (isset($_GET['search_folder'])) { if (isset($_GET['search_folder'])) {

@ -28,12 +28,14 @@ class Search
function __construct($rootFolder) function __construct($rootFolder)
{ {
$this->rootFolder = $rootFolder; $this->rootFolder = $rootFolder;
$this->sessionAction = new SessionAction(); $this->sessionAction = new SessionAction();
$objRootFolder = new file($this->rootFolder); $objRootFolder = new file($this->rootFolder);
$tem = $objRootFolder->getFileInfo(); $tem = $objRootFolder->getFileInfo();
$obj = new manager($this->rootFolder, false); $obj = new manager($this->rootFolder, false);
$obj->setSessionAction($this->sessionAction); $obj->setSessionAction($this->sessionAction);
$selectedDocuments = $this->sessionAction->get(); $selectedDocuments = $this->sessionAction->get();
$fileType = $obj->getFolderInfo($this->rootFolder); $fileType = $obj->getFolderInfo($this->rootFolder);
foreach ($fileType as $k => $v) { foreach ($fileType as $k => $v) {
@ -108,6 +110,7 @@ class Search
$dirHandler = @opendir($baseFolderPath); $dirHandler = @opendir($baseFolderPath);
if ($dirHandler) { if ($dirHandler) {
while (false !== ($file = readdir($dirHandler))) { while (false !== ($file = readdir($dirHandler))) {
if ($file != '.' && $file != '..') { if ($file != '.' && $file != '..') {
$path = $baseFolderPath.$file; $path = $baseFolderPath.$file;
if (is_file($path)) { if (is_file($path)) {

@ -97,15 +97,18 @@ if (isset($_course['path']) && !empty($_course['path'])) {
$PathChamiloAjaxFileManager = '../../../../../../../data/default_platform_document/'; $PathChamiloAjaxFileManager = '../../../../../../../data/default_platform_document/';
} else { } else {
//my profile //my profile
$my_path = UserManager::get_user_picture_path_by_id(api_get_user_id(),'none'); $my_path = UserManager::get_user_picture_path_by_id(api_get_user_id(), 'system');
$dir = api_get_path(SYS_CODE_PATH).$my_path['dir']; $my_path_none = UserManager::get_user_picture_path_by_id(api_get_user_id(), 'none');
if (!is_dir($dir)) {
mkdir($dir);
} if (!is_dir($my_path['dir'])) {
if (!is_dir($dir.'my_files')) { mkdir($my_path['dir']);
mkdir($dir.'my_files'); }
}
$PathChamiloAjaxFileManager = '../../../../../../../main/'.$my_path['dir'].'my_files/'; if (!is_dir($my_path['dir'].'my_files')) {
mkdir($my_path['dir'].'my_files');
}
$PathChamiloAjaxFileManager = '../../../../../../../data/'.$my_path_none['dir'].'my_files/';
} }
} }

@ -188,7 +188,7 @@ function load_platform_templates() {
* @since Dokeos 1.8.6 The code already existed but not in a function and a lot less performant. * @since Dokeos 1.8.6 The code already existed but not in a function and a lot less performant.
*/ */
function load_personal_templates($user_id = 0) { function load_personal_templates($user_id = 0) {
global $_course; $_course = api_get_course_info();
// the templates that the user has defined are only available inside the course itself // the templates that the user has defined are only available inside the course itself
if (empty($_course)) { if (empty($_course)) {

@ -1421,7 +1421,7 @@ class FileManager
$output = true, $output = true,
$to_group_id = 0 $to_group_id = 0
) { ) {
global $_course; $_course = api_get_course_info();
global $_user; global $_user;
global $to_user_id; global $to_user_id;
global $to_group_id; global $to_group_id;

@ -186,7 +186,7 @@ class GroupManager
*/ */
public static function create_group($name, $category_id, $tutor, $places) public static function create_group($name, $category_id, $tutor, $places)
{ {
global $_course; $_course = api_get_course_info();
$table_group = Database :: get_course_table(TABLE_GROUP); $table_group = Database :: get_course_table(TABLE_GROUP);
$session_id = api_get_session_id(); $session_id = api_get_session_id();
@ -327,7 +327,7 @@ class GroupManager
*/ */
public static function create_class_groups($category_id) public static function create_class_groups($category_id)
{ {
global $_course; $_course = api_get_course_info();
$options['where'] = array(" usergroup.course_id = ? " => api_get_real_course_id()); $options['where'] = array(" usergroup.course_id = ? " => api_get_real_course_id());
$obj = new UserGroup(); $obj = new UserGroup();
$classes = $obj->get_usergroup_in_course($options); $classes = $obj->get_usergroup_in_course($options);
@ -916,7 +916,7 @@ class GroupManager
*/ */
public static function fill_groups($group_ids) public static function fill_groups($group_ids)
{ {
global $_course; $_course = api_get_course_info();
$group_ids = is_array($group_ids) ? $group_ids : array($group_ids); $group_ids = is_array($group_ids) ? $group_ids : array($group_ids);
$group_ids = array_map('intval', $group_ids); $group_ids = array_map('intval', $group_ids);
@ -1162,10 +1162,7 @@ class GroupManager
*/ */
public static function can_user_subscribe($user_id, $group_id) public static function can_user_subscribe($user_id, $group_id)
{ {
global $_course;
$course_code = $_course['sysCode'];
$category = self :: get_category_from_group($group_id); $category = self :: get_category_from_group($group_id);
$result = CourseManager :: is_user_subscribed_in_real_or_linked_course($user_id, $course_code);
$result = !self :: is_subscribed($user_id, $group_id); $result = !self :: is_subscribed($user_id, $group_id);
$result &= (self :: number_of_students($group_id) < self :: maximum_number_of_students($group_id)); $result &= (self :: number_of_students($group_id) < self :: maximum_number_of_students($group_id));
if ($category['groups_per_user'] == self::GROUP_PER_MEMBER_NO_LIMIT) { if ($category['groups_per_user'] == self::GROUP_PER_MEMBER_NO_LIMIT) {
@ -1279,7 +1276,7 @@ class GroupManager
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
$table_group_user = Database :: get_course_table(TABLE_GROUP_USER); $table_group_user = Database :: get_course_table(TABLE_GROUP_USER);
if (!empty($user_ids)) { if (!empty($user_ids)) {
foreach ($user_ids as $index => $user_id) { foreach ($user_ids as $user_id) {
$user_id = Database::escape_string($user_id); $user_id = Database::escape_string($user_id);
$group_id = Database::escape_string($group_id); $group_id = Database::escape_string($group_id);
$sql = "INSERT INTO ".$table_group_user." (c_id, user_id, group_id) VALUES ('$course_id', '".$user_id."', '".$group_id."')"; $sql = "INSERT INTO ".$table_group_user." (c_id, user_id, group_id) VALUES ('$course_id', '".$user_id."', '".$group_id."')";
@ -1407,7 +1404,7 @@ class GroupManager
*/ */
public static function is_tutor_of_group($user_id, $group_id) public static function is_tutor_of_group($user_id, $group_id)
{ {
global $_course; $_course = api_get_course_info();
$table_group_tutor = Database :: get_course_table(TABLE_GROUP_TUTOR); $table_group_tutor = Database :: get_course_table(TABLE_GROUP_TUTOR);
$user_id = Database::escape_string($user_id); $user_id = Database::escape_string($user_id);
@ -1722,7 +1719,7 @@ class GroupManager
} }
} }
global $_course; $_course = api_get_course_info();
$category = self :: get_category_from_group($group_ids[0]); $category = self :: get_category_from_group($group_ids[0]);
$groups_per_user = $category['groups_per_user']; $groups_per_user = $category['groups_per_user'];

@ -226,7 +226,7 @@ function addlinkcategory($type) {
// "WHAT'S NEW" notification : update last tool Edit. // "WHAT'S NEW" notification : update last tool Edit.
if ($type == 'link') { if ($type == 'link') {
global $_user; global $_user;
global $_course; $_course = api_get_course_info();
global $nameTools; global $nameTools;
api_item_property_update($_course, TOOL_LINK, $link_id, 'LinkAdded', $_user['user_id']); api_item_property_update($_course, TOOL_LINK, $link_id, 'LinkAdded', $_user['user_id']);
} }
@ -239,7 +239,7 @@ function addlinkcategory($type) {
*/ */
function deletelinkcategory($type) { function deletelinkcategory($type) {
global $catlinkstatus; global $catlinkstatus;
global $_course; $_course = api_get_course_info();
$tbl_link = Database :: get_course_table(TABLE_LINK); $tbl_link = Database :: get_course_table(TABLE_LINK);
$tbl_categories = Database :: get_course_table(TABLE_LINK_CATEGORY); $tbl_categories = Database :: get_course_table(TABLE_LINK_CATEGORY);
$TABLE_ITEM_PROPERTY = Database :: get_course_table(TABLE_ITEM_PROPERTY); $TABLE_ITEM_PROPERTY = Database :: get_course_table(TABLE_ITEM_PROPERTY);
@ -342,7 +342,7 @@ function editlinkcategory($type) {
global $submit_link; global $submit_link;
global $submit_category; global $submit_category;
global $_user; global $_user;
global $_course; $_course = api_get_course_info();
global $nameTools; global $nameTools;
global $urllink; global $urllink;
global $title; global $title;
@ -578,7 +578,8 @@ function makedefaultviewcode($locatie) {
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University * @author Patrick Cool <patrick.cool@UGent.be>, Ghent University
*/ */
function change_visibility($id, $scope) { function change_visibility($id, $scope) {
global $_course, $_user; global $_user;
$_course = api_get_course_info();
if ($scope == 'link') { if ($scope == 'link') {
api_item_property_update($_course, TOOL_LINK, $id, $_GET['action'], $_user['user_id']); api_item_property_update($_course, TOOL_LINK, $id, $_GET['action'], $_user['user_id']);
Display :: display_confirmation_message(get_lang('VisibilityChanged')); Display :: display_confirmation_message(get_lang('VisibilityChanged'));
@ -856,7 +857,8 @@ function put_link($url, $cat, $title, $description, $on_homepage, $hidden) {
$ipu = 'LinkAdded'; $ipu = 'LinkAdded';
$rv = 2; // 2 = new $rv = 2; // 2 = new
} }
global $_course, $nameTools, $_user; global $nameTools, $_user;
$_course = api_get_course_info();
api_item_property_update($_course, TOOL_LINK, $id, $ipu, $_user['user_id']); api_item_property_update($_course, TOOL_LINK, $id, $ipu, $_user['user_id']);
if ($hidden && $ipu == 'LinkAdded') { if ($hidden && $ipu == 'LinkAdded') {

@ -323,7 +323,7 @@ class Login
global $_user; global $_user;
global $_cid; global $_cid;
global $_course; $_course = api_get_course_info();
global $_real_cid; global $_real_cid;
global $_courseUser; global $_courseUser;
@ -386,8 +386,6 @@ class Login
// Database Table Definitions // Database Table Definitions
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
if (!empty($_GET['id_session'])) { if (!empty($_GET['id_session'])) {
$_SESSION['id_session'] = intval($_GET['id_session']); $_SESSION['id_session'] = intval($_GET['id_session']);
@ -402,7 +400,7 @@ class Login
if (!isset($_SESSION['login_as'])) { if (!isset($_SESSION['login_as'])) {
//Course login //Course login
if (isset($_user['user_id'])) { if (isset($_user['user_id'])) {
event_course_login($_course['sysCode'], $_user['user_id'], api_get_session_id()); event_course_login($_real_cid, $_user['user_id'], api_get_session_id());
} }
} }
} else { } else {
@ -486,10 +484,10 @@ class Login
//But only if the login date is < than now + max_life_time //But only if the login date is < than now + max_life_time
$sql = "SELECT course_access_id FROM $course_tracking_table $sql = "SELECT course_access_id FROM $course_tracking_table
WHERE user_id = " . intval($_user ['user_id']) . " AND WHERE user_id = " . intval($_user ['user_id']) . " AND
course_code = '$course_code' AND c_id = '$_real_cid' AND
session_id = " . api_get_session_id() . " AND session_id = " . api_get_session_id() . " AND
login_course_date > now() - INTERVAL $session_lifetime SECOND login_course_date > now() - INTERVAL $session_lifetime SECOND
ORDER BY login_course_date DESC LIMIT 0,1"; ORDER BY login_course_date DESC LIMIT 0,1";
$result = Database::query($sql); $result = Database::query($sql);
if (Database::num_rows($result) > 0) { if (Database::num_rows($result) > 0) {
@ -500,8 +498,8 @@ class Login
//error_log($sql); //error_log($sql);
Database::query($sql); Database::query($sql);
} else { } else {
$sql = "INSERT INTO $course_tracking_table (course_code, user_id, login_course_date, logout_course_date, counter, session_id)" . $sql = "INSERT INTO $course_tracking_table (c_id, user_id, login_course_date, logout_course_date, counter, session_id)" .
"VALUES('" . $course_code . "', '" . $_user['user_id'] . "', '$time', '$time', '1','" . api_get_session_id() . "')"; "VALUES('" . $_real_cid . "', '" . $_user['user_id'] . "', '$time', '$time', '1','" . api_get_session_id() . "')";
//error_log($sql); //error_log($sql);
Database::query($sql); Database::query($sql);
} }
@ -561,14 +559,13 @@ class Login
// The user is subscribed in a session? The user is a Session coach a Session admin ? // The user is subscribed in a session? The user is a Session coach a Session admin ?
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
$tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
//Session coach, session admin, course coach admin //Session coach, session admin, course coach admin
$sql = "SELECT session.id_coach, session_admin_id, session_rcru.id_user $sql = "SELECT session.id_coach, session_admin_id, session_rcru.id_user
FROM $tbl_session session, $tbl_session_course_user session_rcru FROM $tbl_session session, $tbl_session_course_user session_rcru
WHERE session_rcru.id_session = session.id AND WHERE session_rcru.id_session = session.id AND
session_rcru.course_code = '$_cid' AND session_rcru.c_id = ".$_course['real_id']." AND
session_rcru.id_user = '$user_id' AND session_rcru.id_user = '$user_id' AND
session_rcru.id_session = $session_id AND session_rcru.id_session = $session_id AND
session_rcru.status = 2"; session_rcru.status = 2";
@ -734,7 +731,7 @@ class Login
static function init_group($group_id, $reset) static function init_group($group_id, $reset)
{ {
global $_cid; global $_cid;
global $_course; $_course = api_get_course_info();
global $_gid; global $_gid;
if ($reset) { // session data refresh requested if ($reset) { // session data refresh requested

@ -1520,8 +1520,7 @@ function api_get_course_info_by_id($id = null, $add_extra_values = false) {
} }
return $_course; return $_course;
} }
//global $_course; $_course = Session::read('_course');
global $_course;
if ($_course == '-1') $_course = array(); if ($_course == '-1') $_course = array();
return $_course; return $_course;
} }
@ -2087,45 +2086,6 @@ function api_get_session_condition($session_id, $and = true, $with_base_content
return $condition_session; return $condition_session;
} }
/**
* This function returns information about coachs from a course in session
* @param int - optional, session id
* @param string - optional, course code
* @return array - array containing user_id, lastname, firstname, username
* @deprecated use CourseManager::get_coaches_from_course
*/
function api_get_coachs_from_course($session_id=0,$course_code='') {
if (!empty($session_id)) {
$session_id = intval($session_id);
} else {
$session_id = api_get_session_id();
}
if (!empty($course_code)) {
$course_code = Database::escape_string($course_code);
} else {
$course_code = api_get_course_id();
}
$tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$coaches = array();
$sql = "SELECT u.user_id,u.lastname,u.firstname,u.username FROM $tbl_user u,$tbl_session_course_user scu
WHERE u.user_id = scu.id_user AND scu.id_session = '$session_id' AND scu.course_code = '$course_code' AND scu.status = 2";
$rs = Database::query($sql);
if (Database::num_rows($rs) > 0) {
while ($row = Database::fetch_array($rs)) {
$coaches[] = $row;
}
return $coaches;
} else {
return false;
}
}
/** /**
* Returns the value of a setting from the web-adjustable admin config settings. * Returns the value of a setting from the web-adjustable admin config settings.
* *
@ -2335,7 +2295,7 @@ function api_get_user_platform_status($user_id = false) {
if ($session_id && $course_id) { if ($session_id && $course_id) {
$session_status = array(); $session_status = array();
$session_status = array('id' => $session_id, 'course_id' => $course_id); $session_status = array('id' => $session_id, 'course_id' => $course_id);
$session_user_status = SessionManager::get_user_status_in_course_session($user_id, $course_code, $session_id); $session_user_status = SessionManager::get_user_status_in_course_session($user_id, $course_id, $session_id);
switch ($session_user_status) { switch ($session_user_status) {
case 0: case 0:
$session_status['status'] = 'student'; $session_status['status'] = 'student';
@ -2379,19 +2339,19 @@ function api_get_user_platform_status($user_id = false) {
return $status; return $status;
} }
function api_is_course_session_coach($user_id, $course_code, $session_id) { function api_is_course_session_coach($user_id, $courseId, $session_id) {
$session_table = Database::get_main_table(TABLE_MAIN_SESSION); $session_table = Database::get_main_table(TABLE_MAIN_SESSION);
$session_rel_course_rel_user_table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $session_rel_course_rel_user_table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$user_id = intval($user_id); $user_id = intval($user_id);
$session_id = intval($session_id); $session_id = intval($session_id);
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
$sql = "SELECT DISTINCT id $sql = "SELECT DISTINCT id
FROM $session_table INNER JOIN $session_rel_course_rel_user_table session_rc_ru FROM $session_table INNER JOIN $session_rel_course_rel_user_table session_rc_ru
ON session.id = session_rc_ru.id_session ON session.id = session_rc_ru.id_session
WHERE session_rc_ru.id_user = '".$user_id."' AND WHERE session_rc_ru.id_user = '".$user_id."' AND
session_rc_ru.course_code = '$course_code' AND session_rc_ru.c_id = '$courseId' AND
session_rc_ru.status = 2 AND session_rc_ru.status = 2 AND
session_rc_ru.id_session = '$session_id'"; session_rc_ru.id_session = '$session_id'";
$result = Database::query($sql); $result = Database::query($sql);
@ -2404,17 +2364,17 @@ function api_is_course_session_coach($user_id, $course_code, $session_id) {
* @param string - optional, course code * @param string - optional, course code
* @return boolean True if current user is a course or session coach * @return boolean True if current user is a course or session coach
*/ */
function api_is_coach($session_id = 0, $course_code = null) { function api_is_coach($session_id = 0, $courseId = null) {
if (!empty($session_id)) { if (!empty($session_id)) {
$session_id = intval($session_id); $session_id = intval($session_id);
} else { } else {
$session_id = api_get_session_id(); $session_id = api_get_session_id();
} }
if (!empty($course_code)) { if (!empty($courseId)) {
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
} else { } else {
$course_code = api_get_course_id(); $courseId = api_get_course_int_id();
} }
$user_id = api_get_user_id(); $user_id = api_get_user_id();
@ -2428,7 +2388,7 @@ function api_is_coach($session_id = 0, $course_code = null) {
FROM $session_table INNER JOIN $session_rel_course_rel_user_table session_rc_ru FROM $session_table INNER JOIN $session_rel_course_rel_user_table session_rc_ru
ON session.id = session_rc_ru.id_session ON session.id = session_rc_ru.id_session
WHERE session_rc_ru.id_user = '".$user_id."' AND WHERE session_rc_ru.id_user = '".$user_id."' AND
session_rc_ru.course_code = '$course_code' AND session_rc_ru.c_id = '$courseId' AND
session_rc_ru.status = 2 AND session_rc_ru.status = 2 AND
session_rc_ru.id_session = '$session_id'"; session_rc_ru.id_session = '$session_id'";
$result = Database::query($sql); $result = Database::query($sql);
@ -2807,7 +2767,7 @@ function api_is_allowed_to_session_edit($tutor = false, $coach = false) {
* @version 1.0 * @version 1.0
*/ */
function api_is_allowed($tool, $action, $task_id = 0) { function api_is_allowed($tool, $action, $task_id = 0) {
global $_course; $_course = api_get_course_info();
global $_user; global $_user;
if (api_is_course_admin()) { if (api_is_course_admin()) {
@ -3569,7 +3529,7 @@ function api_get_language_id($language) {
**/ **/
function api_get_language_from_type($lang_type){ function api_get_language_from_type($lang_type){
global $_user; global $_user;
global $_course; $_course = api_get_course_info();
$toreturn = false; $toreturn = false;
switch ($lang_type) { switch ($lang_type) {
case 'platform_lang' : case 'platform_lang' :
@ -4767,6 +4727,7 @@ function api_is_course_visible_for_user($userid = null, $cid = null) {
} }
$cid = Database::escape_string($cid); $cid = Database::escape_string($cid);
$courseInfo = api_get_course_info($cid); $courseInfo = api_get_course_info($cid);
$courseId = $courseInfo['real_id'];
global $is_platformAdmin; global $is_platformAdmin;
$course_table = Database::get_main_table(TABLE_MAIN_COURSE); $course_table = Database::get_main_table(TABLE_MAIN_COURSE);
@ -4807,7 +4768,7 @@ function api_is_course_visible_for_user($userid = null, $cid = null) {
AND AND
relation_type <> '".COURSE_RELATION_TYPE_RRHH."' relation_type <> '".COURSE_RELATION_TYPE_RRHH."'
AND AND
course_code = ".$courseInfo['real_id']." course_code = ".$courseId."
LIMIT 1"; LIMIT 1";
$result = Database::query($sql); $result = Database::query($sql);
@ -4834,7 +4795,7 @@ function api_is_course_visible_for_user($userid = null, $cid = null) {
$tbl_session as session $tbl_session as session
INNER JOIN $tbl_session_course INNER JOIN $tbl_session_course
ON session_rel_course.id_session = session.id ON session_rel_course.id_session = session.id
AND session_rel_course.course_code = '$cid' AND session_rel_course.c_id = '$courseId'
LIMIT 1"; LIMIT 1";
$result = Database::query($sql); $result = Database::query($sql);
@ -4860,7 +4821,7 @@ function api_is_course_visible_for_user($userid = null, $cid = null) {
// Check if the current user is the course coach. // Check if the current user is the course coach.
$sql = "SELECT 1 $sql = "SELECT 1
FROM $tbl_session_course FROM $tbl_session_course
WHERE session_rel_course.course_code = '$cid' WHERE session_rel_course.c_id = '$courseId'
AND session_rel_course.id_coach = '$userid' AND session_rel_course.id_coach = '$userid'
LIMIT 1"; LIMIT 1";
@ -4891,7 +4852,7 @@ function api_is_course_visible_for_user($userid = null, $cid = null) {
$sql = "SELECT id $sql = "SELECT id
FROM $tbl_session_course_user FROM $tbl_session_course_user
WHERE id_user = '$userid' WHERE id_user = '$userid'
AND course_code = '$cid' AND c_id = '$courseId'
LIMIT 1"; LIMIT 1";
if (Database::num_rows($result) > 0) { if (Database::num_rows($result) > 0) {
@ -6328,13 +6289,11 @@ function api_get_datetime_picker_js($htmlHeadXtra) {
} }
function api_detect_user_roles($user_id, $course_code, $session_id = 0) { function api_detect_user_roles($user_id, $courseId, $session_id = 0) {
$user_roles = array(); $user_roles = array();
/*$user_info = api_get_user_info($user_id); /*$user_info = api_get_user_info($user_id);
$user_roles[] = $user_info['status'];*/ $user_roles[] = $user_info['status'];*/
$courseInfo = api_get_course_info($course_code);
$url_id = api_get_current_access_url_id(); $url_id = api_get_current_access_url_id();
if (api_is_platform_admin_by_id($user_id, $url_id)) { if (api_is_platform_admin_by_id($user_id, $url_id)) {
$user_roles[] = PLATFORM_ADMIN; $user_roles[] = PLATFORM_ADMIN;
@ -6352,18 +6311,18 @@ function api_detect_user_roles($user_id, $course_code, $session_id = 0) {
if (!empty($course_code)) { if (!empty($course_code)) {
if (empty($session_id)) { if (empty($session_id)) {
if (CourseManager::is_course_teacher($user_id, $courseInfo['real_id'])) { if (CourseManager::is_course_teacher($user_id, $courseId)) {
$user_roles[] = COURSEMANAGER; $user_roles[] = COURSEMANAGER;
} }
if (CourseManager::get_tutor_in_course_status($user_id, $courseInfo['real_id'])) { if (CourseManager::get_tutor_in_course_status($user_id, $courseId)) {
$user_roles[] = COURSE_TUTOR; $user_roles[] = COURSE_TUTOR;
} }
if (CourseManager::is_user_subscribed_in_course($user_id, $course_code)) { if (CourseManager::is_user_subscribed_in_course($user_id, $courseId)) {
$user_roles[] = COURSE_STUDENT; $user_roles[] = COURSE_STUDENT;
} }
} else { } else {
$user_status_in_session = SessionManager::get_user_status_in_course_session($user_id, $course_code, $session_id); $user_status_in_session = SessionManager::get_user_status_in_course_session($user_id, $courseId, $session_id);
if (!empty($user_status_in_session)) { if (!empty($user_status_in_session)) {
if ($user_status_in_session == 0) { if ($user_status_in_session == 0) {
@ -6374,9 +6333,6 @@ function api_detect_user_roles($user_id, $course_code, $session_id = 0) {
} }
} }
/*if (api_is_course_session_coach($user_id, $course_code, $session_id)) {
$user_roles[] = SESSION_COURSE_COACH;
}*/
} }
} }
return $user_roles; return $user_roles;
@ -6412,11 +6368,11 @@ function role_actions() {
); );
} }
function api_coach_can_edit_view_results($course_code = null, $session_id = null) { function api_coach_can_edit_view_results($courseId = null, $session_id = null) {
$user_id = api_get_user_id(); $user_id = api_get_user_id();
if (empty($course_code)) { if (empty($courseId)) {
$course_code = api_get_course_id(); $courseId = api_get_course_int_id();
} }
if (empty($session_id)) { if (empty($session_id)) {
@ -6427,7 +6383,7 @@ function api_coach_can_edit_view_results($course_code = null, $session_id = null
return true; return true;
} }
$roles = api_detect_user_roles($user_id, $course_code, $session_id); $roles = api_detect_user_roles($user_id, $courseId, $session_id);
if (in_array(SESSION_COURSE_COACH, $roles)) { if (in_array(SESSION_COURSE_COACH, $roles)) {
return api_get_setting('session_tutor_reports_visibility') == 'true'; return api_get_setting('session_tutor_reports_visibility') == 'true';

@ -27,7 +27,7 @@ class Online {
*/ */
static function loginCheck($uid) static function loginCheck($uid)
{ {
global $_course; $_course = api_get_course_info();
$uid = (int) $uid; $uid = (int) $uid;
$online_table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ONLINE); $online_table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ONLINE);
if (!empty($uid)) { if (!empty($uid)) {

@ -12,8 +12,8 @@
* groups). * groups).
* @package chamilo.library.session * @package chamilo.library.session
*/ */
class SessionManager { class SessionManager
{
//See BT#4871 //See BT#4871
CONST SESSION_CHANGE_USER_REASON_SCHEDULE = 1; CONST SESSION_CHANGE_USER_REASON_SCHEDULE = 1;
CONST SESSION_CHANGE_USER_REASON_CLASSROOM = 2; CONST SESSION_CHANGE_USER_REASON_CLASSROOM = 2;
@ -102,7 +102,9 @@ class SessionManager {
event_system(LOG_SESSION_CREATE, LOG_SESSION_ID, $session_id, api_get_utc_datetime(), api_get_user_id()); event_system(LOG_SESSION_CREATE, LOG_SESSION_ID, $session_id, api_get_utc_datetime(), api_get_user_id());
if (isset($params['course_code'])) { if (isset($params['course_code'])) {
self::add_courses_to_session($session_id, array($params['course_code'])); $courseInfo = api_get_course_info($params['course_code']);
self::add_courses_to_session($session_id, array($courseInfo['real_id']));
//Update default course gradebook to the session if exists //Update default course gradebook to the session if exists
$create_gradebook_evaluation = isset($params['create_gradebook_evaluation']) ? $params['create_gradebook_evaluation'] : false; $create_gradebook_evaluation = isset($params['create_gradebook_evaluation']) ? $params['create_gradebook_evaluation'] : false;
@ -564,7 +566,7 @@ class SessionManager {
LEFT JOIN $tbl_session_field_values fv ON (fv.session_id = s.id) LEFT JOIN $tbl_session_field_values fv ON (fv.session_id = s.id)
INNER JOIN $tbl_session_field_options fvo ON (fv.field_id = fvo.field_id) INNER JOIN $tbl_session_field_options fvo ON (fv.field_id = fvo.field_id)
LEFT JOIN $tbl_session_rel_course src ON (src.id_session = s.id) LEFT JOIN $tbl_session_rel_course src ON (src.id_session = s.id)
LEFT JOIN $tbl_course c ON (src.course_code = c.code) LEFT JOIN $tbl_course c ON (src.c_id = c.id)
LEFT JOIN $tbl_session_category sc ON (s.session_category_id = sc.id) LEFT JOIN $tbl_session_category sc ON (s.session_category_id = sc.id)
INNER JOIN $tbl_user u ON (s.id_coach = u.user_id) ". INNER JOIN $tbl_user u ON (s.id_coach = u.user_id) ".
$where; $where;
@ -578,7 +580,7 @@ class SessionManager {
FROM $tbl_session s FROM $tbl_session s
LEFT JOIN $tbl_session_field_values fv ON (fv.session_id = s.id) LEFT JOIN $tbl_session_field_values fv ON (fv.session_id = s.id)
LEFT JOIN $tbl_session_rel_course src ON (src.id_session = s.id) LEFT JOIN $tbl_session_rel_course src ON (src.id_session = s.id)
LEFT JOIN $tbl_course c ON (src.course_code = c.code) LEFT JOIN $tbl_course c ON (src.c_id = c.id)
LEFT JOIN $tbl_session_category sc ON (s.session_category_id = sc.id) LEFT JOIN $tbl_session_category sc ON (s.session_category_id = sc.id)
INNER JOIN $tbl_user u ON (s.id_coach = u.user_id) INNER JOIN $tbl_user u ON (s.id_coach = u.user_id)
INNER JOIN $table_access_url_rel_session ar ON (ar.session_id = s.id) INNER JOIN $table_access_url_rel_session ar ON (ar.session_id = s.id)
@ -731,109 +733,7 @@ class SessionManager {
} }
return $session_name; return $session_name;
} }
/**
* Edit a session
* @author Carlos Vargas from existing code
* @param integer id
* @param string name
* @param integer year_start
* @param integer month_start
* @param integer day_start
* @param integer year_end
* @param integer month_end
* @param integer day_end
* @param integer nb_days_acess_before
* @param integer nb_days_acess_after
* @param integer nolimit
* @param integer id_coach
* @param integer id_session_category
* @return $id;
* The parameter id is a primary key
**/
/*
public static function edit_session ($id,$name,$year_start,$month_start,$day_start,$year_end,$month_end,$day_end,$nb_days_acess_before,$nb_days_acess_after,$nolimit,$id_coach, $id_session_category, $id_visibility, $start_limit = true, $end_limit = true) {
global $_user;
$name=trim(stripslashes($name));
$year_start=intval($year_start);
$month_start=intval($month_start);
$day_start=intval($day_start);
$year_end=intval($year_end);
$month_end=intval($month_end);
$day_end=intval($day_end);
$id_coach= intval($id_coach);
$nb_days_acess_before= intval($nb_days_acess_before);
$nb_days_acess_after = intval($nb_days_acess_after);
$id_session_category = intval($id_session_category);
$id_visibility = intval($id_visibility);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
if (empty($nolimit)) {
$date_start = "$year_start-".(($month_start < 10)?"0$month_start":$month_start)."-".(($day_start < 10)?"0$day_start":$day_start);
$date_end = "$year_end-".(($month_end < 10)?"0$month_end":$month_end)."-".(($day_end < 10)?"0$day_end":$day_end);
} else {
$date_start = "0000-00-00";
$date_end = "0000-00-00";
$id_visibility = 1;//force read only
}
if (!empty($no_end_limit)) {
$date_end = "0000-00-00";
}
if (empty($end_limit)) {
$date_end ="0000-00-00";
$id_visibility = 1;//force read only
}
if (empty($start_limit)) {
$date_start ="0000-00-00";
}
if (empty($name)) {
$msg=get_lang('SessionNameIsRequired');
return $msg;
} elseif (empty($id_coach)) {
$msg=get_lang('CoachIsRequired');
return $msg;
} elseif (!empty($start_limit) && empty($nolimit) && (!$month_start || !$day_start || !$year_start || !checkdate($month_start,$day_start,$year_start))) {
$msg=get_lang('InvalidStartDate');
return $msg;
} elseif (!empty($end_limit) && empty($nolimit) && (!$month_end || !$day_end || !$year_end || !checkdate($month_end,$day_end,$year_end))) {
$msg=get_lang('InvalidEndDate');
return $msg;
} elseif (!empty($start_limit) && !empty($end_limit) && empty($nolimit) && $date_start >= $date_end) {
$msg=get_lang('StartDateShouldBeBeforeEndDate');
return $msg;
} else {
$rs = Database::query("SELECT id FROM $tbl_session WHERE name='".Database::escape_string($name)."'");
$exists = false;
while ($row = Database::fetch_array($rs)) {
if($row['id']!=$id)
$exists = true;
}
if ($exists) {
$msg=get_lang('SessionNameAlreadyExists');
return $msg;
} else {
$sql="UPDATE $tbl_session " .
"SET name='".Database::escape_string($name)."',
date_start='".$date_start."',
date_end='".$date_end."',
id_coach='".$id_coach."',
nb_days_access_before_beginning = ".$nb_days_acess_before.",
nb_days_access_after_end = ".$nb_days_acess_after.",
session_category_id = ".$id_session_category." ,
visibility= ".$id_visibility."
WHERE id='$id'";
Database::query($sql);
return $id;
}
}
}
*/
/** /**
* Delete session * Delete session
* @author Carlos Vargas from existing code * @author Carlos Vargas from existing code
@ -844,7 +744,7 @@ class SessionManager {
**/ **/
public static function delete_session ($id_checked, $from_ws = false) { public static function delete_session ($id_checked, $from_ws = false) {
$tbl_session= Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session= Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_rel_course= Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_course_rel_user= Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user= Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session_rel_user= Database::get_main_table(TABLE_MAIN_SESSION_USER); $tbl_session_rel_user= Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_url_session = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION); $tbl_url_session = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
@ -983,11 +883,11 @@ class SessionManager {
$existingUsers[] = $row['id_user']; $existingUsers[] = $row['id_user'];
} }
$sql = "SELECT course_code FROM $tbl_session_rel_course WHERE id_session = '$id_session'"; $sql = "SELECT c_id FROM $tbl_session_rel_course WHERE id_session = '$id_session'";
$result = Database::query($sql); $result = Database::query($sql);
$course_list = array(); $course_list = array();
while ($row = Database::fetch_array($result)) { while ($row = Database::fetch_array($result)) {
$course_list[] = $row['course_code']; $course_list[] = $row['c_id'];
} }
if ($send_email) { if ($send_email) {
@ -1004,15 +904,15 @@ class SessionManager {
} }
} }
foreach ($course_list as $enreg_course) { foreach ($course_list as $courseId) {
// for each course in the session // for each course in the session
$nbr_users = 0; $nbr_users = 0;
$enreg_course = Database::escape_string($enreg_course); $courseId = Database::escape_string($courseId);
// delete existing users // delete existing users
if ($empty_users) { if ($empty_users) {
foreach ($existingUsers as $existing_user) { foreach ($existingUsers as $existing_user) {
if (!in_array($existing_user, $user_list)) { if (!in_array($existing_user, $user_list)) {
$sql = "DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND course_code='$enreg_course' AND id_user='$existing_user' AND status = 0"; $sql = "DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND c_id ='$courseId' AND id_user='$existing_user' AND status = 0";
Database::query($sql); Database::query($sql);
if (Database::affected_rows()) { if (Database::affected_rows()) {
$nbr_users--; $nbr_users--;
@ -1027,7 +927,7 @@ class SessionManager {
foreach ($user_list as $enreg_user) { foreach ($user_list as $enreg_user) {
if(!in_array($enreg_user, $existingUsers)) { if(!in_array($enreg_user, $existingUsers)) {
$enreg_user = Database::escape_string($enreg_user); $enreg_user = Database::escape_string($enreg_user);
$insert_sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session, course_code, id_user, visibility, status) VALUES('$id_session','$enreg_course','$enreg_user','$session_visibility', '0')"; $insert_sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session, c_id, id_user, visibility, status) VALUES('$id_session','$courseId','$enreg_user','$session_visibility', '0')";
Database::query($insert_sql); Database::query($insert_sql);
if(Database::affected_rows()) { if(Database::affected_rows()) {
@ -1036,11 +936,11 @@ class SessionManager {
} }
} }
// count users in this session-course relation // count users in this session-course relation
$sql = "SELECT COUNT(id_user) as nbUsers FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND course_code='$enreg_course' AND status<>2"; $sql = "SELECT COUNT(id_user) as nbUsers FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND c_id ='$courseId' AND status<>2";
$rs = Database::query($sql); $rs = Database::query($sql);
list($nbr_users) = Database::fetch_array($rs); list($nbr_users) = Database::fetch_array($rs);
// update the session-course relation to add the users total // update the session-course relation to add the users total
$update_sql = "UPDATE $tbl_session_rel_course SET nbr_users = $nbr_users WHERE id_session='$id_session' AND course_code='$enreg_course'"; $update_sql = "UPDATE $tbl_session_rel_course SET nbr_users = $nbr_users WHERE id_session='$id_session' AND c_id ='$courseId'";
Database::query($update_sql); Database::query($update_sql);
} }
@ -1075,7 +975,14 @@ class SessionManager {
} }
} }
static function subscribe_users_to_session_course($user_list, $session_id, $course_code, $session_visibility = SESSION_VISIBLE_READ_ONLY ) { /**
* @param $user_list
* @param $session_id
* @param $courseId
* @param int $session_visibility
* @return bool
*/
static function subscribe_users_to_session_course($user_list, $session_id, $courseId, $session_visibility = SESSION_VISIBLE_READ_ONLY ) {
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
@ -1084,15 +991,15 @@ class SessionManager {
} }
$session_id = intval($session_id); $session_id = intval($session_id);
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
$session_visibility = intval($session_visibility); $session_visibility = intval($session_visibility);
$nbr_users = 0; $nbr_users = 0;
foreach ($user_list as $enreg_user) { foreach ($user_list as $enreg_user) {
//if (!in_array($enreg_user, $existingUsers)) { //if (!in_array($enreg_user, $existingUsers)) {
$enreg_user = intval($enreg_user); $enreg_user = intval($enreg_user);
$insert_sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session, course_code, id_user, visibility) $insert_sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session, c_id, id_user, visibility)
VALUES ('$session_id','$course_code','$enreg_user','$session_visibility')"; VALUES ('$session_id','$courseId','$enreg_user','$session_visibility')";
Database::query($insert_sql); Database::query($insert_sql);
if (Database::affected_rows()) { if (Database::affected_rows()) {
$nbr_users++; $nbr_users++;
@ -1100,11 +1007,11 @@ class SessionManager {
//} //}
} }
// count users in this session-course relation // count users in this session-course relation
$sql = "SELECT COUNT(id_user) as nbUsers FROM $tbl_session_rel_course_rel_user WHERE id_session='$session_id' AND course_code='$course_code' AND status<>2"; $sql = "SELECT COUNT(id_user) as nbUsers FROM $tbl_session_rel_course_rel_user WHERE id_session='$session_id' AND c_id = '$courseId' AND status<>2";
$rs = Database::query($sql); $rs = Database::query($sql);
list($nbr_users) = Database::fetch_array($rs); list($nbr_users) = Database::fetch_array($rs);
// update the session-course relation to add the users total // update the session-course relation to add the users total
$update_sql = "UPDATE $tbl_session_rel_course SET nbr_users = $nbr_users WHERE id_session='$session_id' AND course_code='$course_code'"; $update_sql = "UPDATE $tbl_session_rel_course SET nbr_users = $nbr_users WHERE id_session='$session_id' AND c_id = '$courseId'";
Database::query($update_sql); Database::query($update_sql);
} }
@ -1146,13 +1053,13 @@ class SessionManager {
if (!empty($course_list)) { if (!empty($course_list)) {
foreach($course_list as $course) { foreach($course_list as $course) {
$course_code = $course['code']; $courseId = $course['id'];
// Delete user from course // Delete user from course
Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$session_id' AND course_code='$course_code' AND id_user='$user_id'"); Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$session_id' AND c_id='$courseId' AND id_user='$user_id'");
if(Database::affected_rows()) { if (Database::affected_rows()) {
// Update number of users in this relation // Update number of users in this relation
Database::query("UPDATE $tbl_session_rel_course SET nbr_users=nbr_users - 1 WHERE id_session='$session_id' AND course_code='$course_code'"); Database::query("UPDATE $tbl_session_rel_course SET nbr_users=nbr_users - 1 WHERE id_session='$session_id' AND c_id ='$courseId'");
} }
} }
} }
@ -1163,9 +1070,9 @@ class SessionManager {
* *
* @param int $session_id * @param int $session_id
* @param array user id list * @param array user id list
* @param string $course_code * @param int $courseId
*/ */
static function unsubscribe_user_from_course_session($session_id, $user_list, $course_code) { static function unsubscribe_user_from_course_session($session_id, $user_list, $courseId) {
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
@ -1174,12 +1081,12 @@ class SessionManager {
$user_list = implode(',', $user_list); $user_list = implode(',', $user_list);
} }
$session_id = intval($session_id); $session_id = intval($session_id);
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
if (!empty($user_list)) { if (!empty($user_list)) {
Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$session_id' AND course_code='".$course_code."' AND id_user IN($user_list)"); Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$session_id' AND c_id='".$courseId."' AND id_user IN($user_list)");
$nbr_affected_rows = Database::affected_rows(); $nbr_affected_rows = Database::affected_rows();
Database::query("UPDATE $tbl_session_rel_course SET nbr_users=nbr_users-$nbr_affected_rows WHERE id_session='$session_id' AND course_code='".$course_code."'"); Database::query("UPDATE $tbl_session_rel_course SET nbr_users=nbr_users-$nbr_affected_rows WHERE id_session='$session_id' AND c_id='".$courseId."'");
} }
} }
@ -1205,7 +1112,7 @@ class SessionManager {
$id_coach = Database::fetch_array($id_coach); $id_coach = Database::fetch_array($id_coach);
$id_coach = $id_coach[0]; $id_coach = $id_coach[0];
// get list of courses subscribed to this session // get list of courses subscribed to this session
$rs = Database::query("SELECT course_code FROM $tbl_session_rel_course WHERE id_session=$id_session"); $rs = Database::query("SELECT c_id FROM $tbl_session_rel_course WHERE id_session=$id_session");
$existingCourses = Database::store_result($rs); $existingCourses = Database::store_result($rs);
$nbr_courses=count($existingCourses); $nbr_courses=count($existingCourses);
// get list of users subscribed to this session // get list of users subscribed to this session
@ -1218,9 +1125,9 @@ class SessionManager {
// Remove existing courses from the session // Remove existing courses from the session
if ($empty_courses===true) { if ($empty_courses===true) {
foreach ($existingCourses as $existingCourse) { foreach ($existingCourses as $existingCourse) {
if (!in_array($existingCourse['course_code'], $course_list)){ if (!in_array($existingCourse['c_id'], $course_list)){
Database::query("DELETE FROM $tbl_session_rel_course WHERE course_code='".$existingCourse['course_code']."' AND id_session=$id_session"); Database::query("DELETE FROM $tbl_session_rel_course WHERE c_id='".$existingCourse['c_id']."' AND id_session=$id_session");
Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE course_code='".$existingCourse['course_code']."' AND id_session=$id_session"); Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE c_id='".$existingCourse['c_id']."' AND id_session=$id_session");
} }
} }
$nbr_courses=0; $nbr_courses=0;
@ -1232,16 +1139,14 @@ class SessionManager {
$exists = false; $exists = false;
// check if the course we want to add is already subscribed // check if the course we want to add is already subscribed
foreach ($existingCourses as $existingCourse) { foreach ($existingCourses as $existingCourse) {
if ($enreg_course == $existingCourse['course_code']) { if ($enreg_course == $existingCourse['c_id']) {
$exists=true; $exists=true;
} }
} }
if (!$exists) { if (!$exists) {
$courseInfo = api_get_course_info($enreg_course);
$courseId = $courseInfo['real_id'];
//if the course isn't subscribed yet //if the course isn't subscribed yet
$sql_insert_rel_course= "INSERT INTO $tbl_session_rel_course (id_session, course_code, course_id) VALUES ('$id_session','$enreg_course', $courseId)"; $sql_insert_rel_course= "INSERT INTO $tbl_session_rel_course (id_session, c_id, course_id) VALUES ('$id_session','$enreg_course', $courseId)";
Database::query($sql_insert_rel_course); Database::query($sql_insert_rel_course);
//We add the current course in the existing courses array, to avoid adding another time the current course //We add the current course in the existing courses array, to avoid adding another time the current course
$existingCourses[]=array('course_code'=>$enreg_course); $existingCourses[]=array('course_code'=>$enreg_course);
@ -1251,13 +1156,13 @@ class SessionManager {
$nbr_users=0; $nbr_users=0;
foreach ($user_list as $enreg_user) { foreach ($user_list as $enreg_user) {
$enreg_user_id = Database::escape_string($enreg_user['id_user']); $enreg_user_id = Database::escape_string($enreg_user['id_user']);
$sql_insert = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user (id_session,course_code,id_user) VALUES ('$id_session','$enreg_course','$enreg_user_id')"; $sql_insert = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user (id_session, c_id, id_user) VALUES ('$id_session','$enreg_course','$enreg_user_id')";
Database::query($sql_insert); Database::query($sql_insert);
if (Database::affected_rows()) { if (Database::affected_rows()) {
$nbr_users++; $nbr_users++;
} }
} }
Database::query("UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users WHERE id_session='$id_session' AND course_code='$enreg_course'"); Database::query("UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users WHERE id_session='$id_session' AND c_id = '$enreg_course'");
} }
} }
Database::query("UPDATE $tbl_session SET nbr_courses=$nbr_courses WHERE id='$id_session'"); Database::query("UPDATE $tbl_session SET nbr_courses=$nbr_courses WHERE id='$id_session'");
@ -1278,17 +1183,11 @@ class SessionManager {
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
// Get course code
$course_code = CourseManager::get_course_code_from_course_id($course_id);
if($course_code == 0) {
return false;
}
// Unsubscribe course // Unsubscribe course
Database::query("DELETE FROM $tbl_session_rel_course WHERE course_code='$course_code' AND id_session='$session_id'"); Database::query("DELETE FROM $tbl_session_rel_course WHERE c_id ='$course_id' AND id_session='$session_id'");
$nb_affected = Database::affected_rows(); $nb_affected = Database::affected_rows();
Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE course_code='$course_code' AND id_session='$session_id'"); Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE c_id ='$course_id' AND id_session='$session_id'");
if($nb_affected > 0) { if($nb_affected > 0) {
// Update number of courses in the session // Update number of courses in the session
Database::query("UPDATE $tbl_session SET nbr_courses= nbr_courses + $nb_affected WHERE id='$session_id' "); Database::query("UPDATE $tbl_session SET nbr_courses= nbr_courses + $nb_affected WHERE id='$session_id' ");
@ -1402,10 +1301,11 @@ class SessionManager {
* @param int $course_id * @param int $course_id
* @return bool Returns TRUE if the session and the course are related, FALSE otherwise. * @return bool Returns TRUE if the session and the course are related, FALSE otherwise.
* */ * */
public static function relation_session_course_exist ($session_id, $course_id) { public static function relation_session_course_exist ($session_id, $courseId) {
$tbl_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$return_value = false; $return_value = false;
$sql= "SELECT course_code FROM $tbl_session_course WHERE id_session = ".Database::escape_string($session_id)." AND course_code = '".Database::escape_string($course_id)."'"; $sql= "SELECT c_id FROM $tbl_session_course
WHERE id_session = ".Database::escape_string($session_id)." AND c_id = '".Database::escape_string($courseId)."'";
$result = Database::query($sql); $result = Database::query($sql);
$num = Database::num_rows($result); $num = Database::num_rows($result);
if ($num>0) { if ($num>0) {
@ -1691,11 +1591,11 @@ class SessionManager {
* Assign a coach to course in session with status = 2 * Assign a coach to course in session with status = 2
* @param int - user id * @param int - user id
* @param int - session id * @param int - session id
* @param string - course code * @param int - course id
* @param bool - optional, if is true the user don't be a coach now, otherwise it'll assign a coach * @param bool - optional, if is true the user don't be a coach now, otherwise it'll assign a coach
* @return bool true if there are affected rows, otherwise false * @return bool true if there are affected rows, otherwise false
*/ */
public static function set_coach_to_course_session($user_id, $session_id = 0, $course_code = '',$nocoach = false) { public static function set_coach_to_course_session($user_id, $session_id = 0, $courseId = '',$nocoach = false) {
// Definition of variables // Definition of variables
$user_id = intval($user_id); $user_id = intval($user_id);
@ -1706,10 +1606,10 @@ class SessionManager {
$session_id = api_get_session_id(); $session_id = api_get_session_id();
} }
if (!empty($course_code)) { if (!empty($courseId)) {
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
} else { } else {
$course_code = api_get_course_id(); $courseId = api_get_course_int_id();
} }
// definitios of tables // definitios of tables
@ -1732,13 +1632,13 @@ class SessionManager {
if (Database::num_rows($res) > 0) { if (Database::num_rows($res) > 0) {
// The user don't be a coach now // The user don't be a coach now
$sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 0 WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' "; $sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 0 WHERE id_session = '$session_id' AND c_id = '$courseId' AND id_user = '$user_id' ";
$rs_update = Database::query($sql); $rs_update = Database::query($sql);
if (Database::affected_rows() > 0) return true; if (Database::affected_rows() > 0) return true;
else return false; else return false;
} else { } else {
// The user don't be a coach now // The user don't be a coach now
$sql = "DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' "; $sql = "DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session = '$session_id' AND c_id = '$courseId' AND id_user = '$user_id' ";
$rs_delete = Database::query($sql); $rs_delete = Database::query($sql);
if (Database::affected_rows() > 0) return true; if (Database::affected_rows() > 0) return true;
else return false; else return false;
@ -1747,17 +1647,17 @@ class SessionManager {
} else { } else {
// Assign user like a coach to course // Assign user like a coach to course
// First check if the user is registered in the course // First check if the user is registered in the course
$sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id'"; $sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user WHERE id_session = '$session_id' AND c_id = '$courseId' AND id_user = '$user_id'";
$rs_check = Database::query($sql); $rs_check = Database::query($sql);
//Then update or insert //Then update or insert
if (Database::num_rows($rs_check) > 0) { if (Database::num_rows($rs_check) > 0) {
$sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 2 WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' "; $sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 2 WHERE id_session = '$session_id' AND c_id = '$courseId' AND id_user = '$user_id' ";
$rs_update = Database::query($sql); $rs_update = Database::query($sql);
if (Database::affected_rows() > 0) return true; if (Database::affected_rows() > 0) return true;
else return false; else return false;
} else { } else {
$sql = " INSERT INTO $tbl_session_rel_course_rel_user(id_session, course_code, id_user, status) VALUES('$session_id', '$course_code', '$user_id', 2)"; $sql = " INSERT INTO $tbl_session_rel_course_rel_user(id_session, c_id, id_user, status) VALUES('$session_id', '$courseId', '$user_id', 2)";
$rs_insert = Database::query($sql); $rs_insert = Database::query($sql);
if (Database::affected_rows() > 0) return true; if (Database::affected_rows() > 0) return true;
else return false; else return false;
@ -1786,8 +1686,9 @@ class SessionManager {
$affected_rows = 0; $affected_rows = 0;
//Deleting assigned sessions to hrm_id //Deleting assigned sessions to hrm_id
if ($_configuration['multiple_access_urls']) { if (api_is_multiple_url_enabled()) {
$sql = "SELECT id_session FROM $tbl_session_rel_user s INNER JOIN $tbl_session_rel_access_url a ON (a.session_id = s.id_session) WHERE id_user = $hr_manager_id AND relation_type=".SESSION_RELATION_TYPE_RRHH." AND access_url_id = ".api_get_current_access_url_id().""; $sql = "SELECT id_session FROM $tbl_session_rel_user s INNER JOIN $tbl_session_rel_access_url a ON (a.session_id = s.id_session)
WHERE id_user = $hr_manager_id AND relation_type=".SESSION_RELATION_TYPE_RRHH." AND access_url_id = ".api_get_current_access_url_id()."";
} else { } else {
$sql = "SELECT id_session FROM $tbl_session_rel_user s WHERE id_user = $hr_manager_id AND relation_type=".SESSION_RELATION_TYPE_RRHH.""; $sql = "SELECT id_session FROM $tbl_session_rel_user s WHERE id_user = $hr_manager_id AND relation_type=".SESSION_RELATION_TYPE_RRHH."";
} }
@ -1795,22 +1696,11 @@ class SessionManager {
if (Database::num_rows($result) > 0) { if (Database::num_rows($result) > 0) {
while ($row = Database::fetch_array($result)) { while ($row = Database::fetch_array($result)) {
$sql = "DELETE FROM $tbl_session_rel_user WHERE id_session = {$row['id_session']} AND id_user = $hr_manager_id AND relation_type=".SESSION_RELATION_TYPE_RRHH." "; $sql = "DELETE FROM $tbl_session_rel_user
WHERE id_session = {$row['id_session']} AND id_user = $hr_manager_id AND relation_type=".SESSION_RELATION_TYPE_RRHH." ";
Database::query($sql); Database::query($sql);
} }
} }
/*
//Deleting assigned courses in sessions to hrm_id
$sql = "SELECT * FROM $tbl_session_rel_course_user WHERE id_user = $hr_manager_id ";
$result = Database::query($sql);
if (Database::num_rows($result) > 0) {
$sql = "DELETE FROM $tbl_session_rel_course_user WHERE id_user = $hr_manager_id ";
Database::query($sql);
}
*/
// inserting new sessions list // inserting new sessions list
if (is_array($sessions_list)) { if (is_array($sessions_list)) {
foreach ($sessions_list as $session_id) { foreach ($sessions_list as $session_id) {
@ -1864,8 +1754,9 @@ class SessionManager {
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
// select the courses // select the courses
$sql = "SELECT * FROM $tbl_course c INNER JOIN $tbl_session_rel_course src ON c.code = src.course_code $sql = "SELECT c.*, c.id as real_id FROM $tbl_course c INNER JOIN $tbl_session_rel_course src ON c.id = src.c_id
WHERE src.id_session = '$session_id' ORDER BY title;"; WHERE src.id_session = '$session_id'
ORDER BY title;";
$result = Database::query($sql); $result = Database::query($sql);
$num_rows = Database::num_rows($result); $num_rows = Database::num_rows($result);
$courses = array(); $courses = array();
@ -2057,14 +1948,14 @@ class SessionManager {
* @param $session_id * @param $session_id
* @return unknown_type * @return unknown_type
*/ */
public static function get_user_status_in_course_session($user_id, $course_code, $session_id) { public static function get_user_status_in_course_session($user_id, $courseId, $session_id) {
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT session_rcru.status $sql = "SELECT session_rcru.status
FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
WHERE session_rcru.id_user = user.user_id AND WHERE session_rcru.id_user = user.user_id AND
session_rcru.id_session = '".intval($session_id)."' AND session_rcru.id_session = '".intval($session_id)."' AND
session_rcru.course_code ='".Database::escape_string($course_code)."' AND session_rcru.c_id ='".Database::escape_string($courseId)."' AND
user.user_id = ".intval($user_id); user.user_id = ".intval($user_id);
$result = Database::query($sql); $result = Database::query($sql);
@ -2181,7 +2072,7 @@ class SessionManager {
$list = new LearnpathList('', $course_info['code'], $sid); $list = new LearnpathList('', $course_info['code'], $sid);
$flat_list = $list->get_flat_list(); $flat_list = $list->get_flat_list();
if (!empty($flat_list)) { if (!empty($flat_list)) {
foreach($flat_list as $lp_id => $data) { foreach ($flat_list as $lp_id => $data) {
api_item_property_update($course_info, TOOL_LEARNPATH, $lp_id, 'invisible', api_get_user_id(), 0 ,0, 0, 0, $sid); api_item_property_update($course_info, TOOL_LEARNPATH, $lp_id, 'invisible', api_get_user_id(), 0 ,0, 0, 0, $sid);
api_item_property_update($course_info, TOOL_LEARNPATH, $lp_id, 'invisible', api_get_user_id(), 0 ,0, 0, 0); api_item_property_update($course_info, TOOL_LEARNPATH, $lp_id, 'invisible', api_get_user_id(), 0 ,0, 0, 0);
} }
@ -2199,7 +2090,7 @@ class SessionManager {
} }
} else { } else {
foreach($short_courses as $course_data) { foreach($short_courses as $course_data) {
$new_short_courses[] = $course_data['code']; $new_short_courses[] = $course_data['id'];
} }
} }
$short_courses = $new_short_courses; $short_courses = $new_short_courses;
@ -2281,12 +2172,16 @@ class SessionManager {
} }
} }
static function get_session_by_course($course_code) { /**
* @param $courseId
* @return array
*/
static function get_session_by_course($courseId) {
$table_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $table_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$table_session = Database::get_main_table(TABLE_MAIN_SESSION); $table_session = Database::get_main_table(TABLE_MAIN_SESSION);
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
$sql = "SELECT name, s.id FROM $table_session_course sc INNER JOIN $table_session s ON (sc.id_session = s.id) $sql = "SELECT name, s.id FROM $table_session_course sc INNER JOIN $table_session s ON (sc.id_session = s.id)
WHERE sc.course_code = '$course_code' "; WHERE sc.c_id = '$courseId' ";
$result = Database::query($sql); $result = Database::query($sql);
return Database::store_result($result); return Database::store_result($result);
} }
@ -2362,9 +2257,6 @@ class SessionManager {
$new_session_id = intval($new_session_id); $new_session_id = intval($new_session_id);
$reason_id = intval($reason_id); $reason_id = intval($reason_id);
//self::unsubscribe_user_from_session($old_session_id, $user_id, $reason_id);
//$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
@ -2377,12 +2269,12 @@ class SessionManager {
$course_list = SessionManager::get_course_list_by_session_id($old_session_id); $course_list = SessionManager::get_course_list_by_session_id($old_session_id);
if (!empty($course_list)) { if (!empty($course_list)) {
foreach ($course_list as $course) { foreach ($course_list as $course) {
$course_code = $course['code']; $courseId = $course['id'];
// Delete user from course // Delete user from course
//Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$session_id' AND course_code='$course_code' AND id_user='$user_id'"); //Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$session_id' AND course_code='$course_code' AND id_user='$user_id'");
//if (Database::affected_rows()) { //if (Database::affected_rows()) {
// Update number of users in this relation // Update number of users in this relation
$sql = "UPDATE $tbl_session_rel_course SET nbr_users = nbr_users - 1 WHERE id_session = '$old_session_id' AND course_code='$course_code'"; $sql = "UPDATE $tbl_session_rel_course SET nbr_users = nbr_users - 1 WHERE id_session = '$old_session_id' AND c_id='$courseId'";
Database::query($sql); Database::query($sql);
//} //}
} }
@ -2421,12 +2313,12 @@ class SessionManager {
/** /**
* Get users inside a course session * Get users inside a course session
*/ */
static function get_users_in_course_session($course_code, $id_session, $sort, $direction, $from = null, $limit = null) { static function get_users_in_course_session($courseId, $id_session, $sort, $direction, $from = null, $limit = null) {
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
$id_session = Database::escape_string($id_session); $id_session = Database::escape_string($id_session);
$from = intval($from); $from = intval($from);
$limit = intval($limit); $limit = intval($limit);
@ -2436,7 +2328,7 @@ class SessionManager {
//Select the number of users //Select the number of users
$sql = " SELECT DISTINCT u.user_id,".($is_western_name_order ? 'u.firstname, u.lastname' : 'u.lastname, u.firstname').", u.username, scru.id_user as is_subscribed $sql = " SELECT DISTINCT u.user_id,".($is_western_name_order ? 'u.firstname, u.lastname' : 'u.lastname, u.firstname').", u.username, scru.id_user as is_subscribed
FROM $tbl_session_rel_user sru INNER JOIN $tbl_user u ON (u.user_id=sru.id_user) FROM $tbl_session_rel_user sru INNER JOIN $tbl_user u ON (u.user_id=sru.id_user)
LEFT JOIN $tbl_session_rel_course_rel_user scru ON (u.user_id = scru.id_user AND scru.course_code = '".$course_code."' ) LEFT JOIN $tbl_session_rel_course_rel_user scru ON (u.user_id = scru.id_user AND scru.c_id = '".$courseId."' )
WHERE sru.id_session = '$id_session' AND WHERE sru.id_session = '$id_session' AND
sru.moved_to = 0 AND sru.moved_status <> ".SessionManager::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION." AND sru.moved_to = 0 AND sru.moved_status <> ".SessionManager::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION." AND
sru.relation_type<>".SESSION_RELATION_TYPE_RRHH; sru.relation_type<>".SESSION_RELATION_TYPE_RRHH;
@ -2453,7 +2345,12 @@ class SessionManager {
return false; return false;
} }
static function get_count_users_in_course_session($course_code, $id_session) { /**
* @param $courseId
* @param $id_session
* @return int|mixed
*/
static function get_count_users_in_course_session($courseId, $id_session) {
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
@ -2461,7 +2358,7 @@ class SessionManager {
$sql = " SELECT count(*) FROM $tbl_session_rel_user sru, $tbl_session_rel_course_rel_user srcru $sql = " SELECT count(*) FROM $tbl_session_rel_user sru, $tbl_session_rel_course_rel_user srcru
WHERE srcru.id_user = sru.id_user AND WHERE srcru.id_user = sru.id_user AND
srcru.id_session = sru.id_session AND srcru.id_session = sru.id_session AND
srcru.course_code = '".Database::escape_string($course_code)."' AND srcru.c_id = '".Database::escape_string($courseId)."' AND
srcru.id_session = '".intval($id_session)."' AND srcru.id_session = '".intval($id_session)."' AND
(sru.moved_to = 0 AND sru.moved_status <> ".SessionManager::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION.") AND (sru.moved_to = 0 AND sru.moved_status <> ".SessionManager::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION.") AND
sru.relation_type<>".SESSION_RELATION_TYPE_RRHH; sru.relation_type<>".SESSION_RELATION_TYPE_RRHH;
@ -2479,7 +2376,8 @@ class SessionManager {
* @param in session_id * @param in session_id
* @return array * @return array
*/ */
static function get_session_course_coaches($course_code, $session_id) { static function get_session_course_coaches($courseId, $session_id)
{
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
@ -2487,13 +2385,14 @@ class SessionManager {
$sql = "SELECT user.user_id FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user $sql = "SELECT user.user_id FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
WHERE session_rcru.id_user = user.user_id AND WHERE session_rcru.id_user = user.user_id AND
session_rcru.id_session = '".intval($session_id)."' AND session_rcru.id_session = '".intval($session_id)."' AND
session_rcru.course_code ='".Database::escape_string($course_code)."' AND session_rcru.c_id ='".Database::escape_string($courseId)."' AND
session_rcru.status=2"; session_rcru.status=2";
$result = Database::query($sql); $result = Database::query($sql);
return Database::store_result($result); return Database::store_result($result);
} }
static function get_session_course_coaches_by_user($course_code, $session_id, $user_id) { static function get_session_course_coaches_by_user($courseId, $session_id, $user_id)
{
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
@ -2501,15 +2400,16 @@ class SessionManager {
$sql = "SELECT user.user_id FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user $sql = "SELECT user.user_id FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
WHERE session_rcru.id_user = user.user_id AND WHERE session_rcru.id_user = user.user_id AND
session_rcru.id_session = '".intval($session_id)."' AND session_rcru.id_session = '".intval($session_id)."' AND
session_rcru.course_code ='".Database::escape_string($course_code)."' AND session_rcru.c_id ='".Database::escape_string($courseId)."' AND
session_rcru.status=2"; session_rcru.status=2";
$result = Database::query($sql); $result = Database::query($sql);
return Database::store_result($result); return Database::store_result($result);
} }
static function get_session_course_coaches_to_string($course_code, $session_id) { static function get_session_course_coaches_to_string($courseId, $session_id)
$coaches = self::get_session_course_coaches($course_code, $session_id); {
$coaches = self::get_session_course_coaches($courseId, $session_id);
if (!empty($coaches)) { if (!empty($coaches)) {
$coach_list = array(); $coach_list = array();
foreach ($coaches as $coach_info) { foreach ($coaches as $coach_info) {
@ -2523,25 +2423,31 @@ class SessionManager {
return get_lang('None'); return get_lang('None');
} }
static function delete_course_in_session($id_session, $course_code) { /**
* @param $id_session
* @param $courseId
*/
static function delete_course_in_session($id_session, $courseId)
{
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$id_session = intval($id_session); $id_session = intval($id_session);
$course_code = Database::escape_string($course_code); $courseId = Database::escape_string($courseId);
if (!empty($id_session) && !empty($course_code)) { if (!empty($id_session) && !empty($courseId)) {
Database::query("DELETE FROM $tbl_session_rel_course WHERE id_session='$id_session' AND course_code = '$course_code'"); Database::query("DELETE FROM $tbl_session_rel_course WHERE id_session='$id_session' AND c_id = '$courseId'");
$nbr_affected_rows=Database::affected_rows(); $nbr_affected_rows=Database::affected_rows();
Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND course_code = '$course_code'"); Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND c_id = '$courseId'");
Database::query("UPDATE $tbl_session SET nbr_courses=nbr_courses-$nbr_affected_rows WHERE id='$id_session'"); Database::query("UPDATE $tbl_session SET nbr_courses=nbr_courses-$nbr_affected_rows WHERE id='$id_session'");
} }
} }
static function get_sessions_by_user($user_id) { static function get_sessions_by_user($user_id)
{
$session_categories = UserManager::get_sessions_by_category($user_id); $session_categories = UserManager::get_sessions_by_category($user_id);
$session_array = array(); $session_array = array();
if (!empty($session_categories)) { if (!empty($session_categories)) {

@ -437,7 +437,7 @@ class Statistics {
if (api_is_multiple_url_enabled()) { if (api_is_multiple_url_enabled()) {
$sql = "SELECT access_tool, count( access_id ) AS number_of_logins $sql = "SELECT access_tool, count( access_id ) AS number_of_logins
FROM $table, $access_url_rel_course_table u, $tableCourse c FROM $table, $access_url_rel_course_table u, $tableCourse c
WHERE access_tool IN ('".implode("','",$tools)."') AND c.id = u.c_id AND c.code = access_cours_code AND access_url_id='".$current_url_id."' ". WHERE access_tool IN ('".implode("','",$tools)."') AND c.id = u.c_id AND c.id = c_id AND access_url_id='".$current_url_id."' ".
"GROUP BY access_tool "; "GROUP BY access_tool ";
} else { } else {
$sql = "SELECT access_tool, count( access_id ) AS number_of_logins FROM $table ". $sql = "SELECT access_tool, count( access_id ) AS number_of_logins FROM $table ".
@ -545,7 +545,7 @@ class Statistics {
$access_url_rel_course_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE); $access_url_rel_course_table= 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();
$columns[0] = 'access_cours_code'; $columns[0] = 'c_id';
$columns[1] = 'access_date'; $columns[1] = 'access_date';
$sql_order[SORT_ASC] = 'ASC'; $sql_order[SORT_ASC] = 'ASC';
$sql_order[SORT_DESC] = 'DESC'; $sql_order[SORT_DESC] = 'DESC';
@ -575,16 +575,17 @@ class Statistics {
$table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LASTACCESS); $table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LASTACCESS);
$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE); $tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
if (api_is_multiple_url_enabled()) { if (api_is_multiple_url_enabled()) {
$sql = "SELECT * FROM $table, $access_url_rel_course_table, $tableCourse c $sql = "SELECT access_date, c.code FROM $table s , $access_url_rel_course_table u, $tableCourse c
WHERE c.id c_id AND access_cours_code = c.code AND access_url_id='".$current_url_id."' ". WHERE c.id = u.c_id AND c.id = s.c_id AND access_url_id='".$current_url_id."' ".
"GROUP BY access_cours_code ". "GROUP BY access_cours_code ".
"HAVING access_cours_code <> '' ". "HAVING s.c_id <> '' ".
"AND DATEDIFF( '".date('Y-m-d h:i:s')."' , access_date ) <= ". $date_diff; "AND DATEDIFF( '".date('Y-m-d h:i:s')."' , access_date ) <= ". $date_diff;
} else { } else {
$sql = "SELECT * FROM $table ". $sql = "SELECT access_date, c.code FROM $table , $tableCourse c
"GROUP BY access_cours_code ". WHERE c_id = c.id
"HAVING access_cours_code <> '' ". GROUP BY c_id
"AND DATEDIFF( '".date('Y-m-d h:i:s')."' , access_date ) <= ". $date_diff; HAVING c_id <> ''AND
DATEDIFF( '".date('Y-m-d h:i:s')."' , access_date ) <= ". $date_diff;
} }
$res = Database::query($sql); $res = Database::query($sql);
$number_of_courses = Database::num_rows($res); $number_of_courses = Database::num_rows($res);
@ -597,7 +598,7 @@ class Statistics {
$courses = array (); $courses = array ();
while ($obj = Database::fetch_object($res)) { while ($obj = Database::fetch_object($res)) {
$course = array (); $course = array ();
$course[]= '<a href="'.api_get_path(WEB_PATH).'courses/'.$obj->access_cours_code.'">'.$obj->access_cours_code.' <a>'; $course[]= '<a href="'.api_get_path(WEB_PATH).'courses/'.$obj->code.'">'.$obj->code.' <a>';
//Allow sort by date hiding the numerical date //Allow sort by date hiding the numerical date
$course[] = '<span style="display:none;">'.$obj->access_date.'</span>'.api_convert_and_format_date($obj->access_date); $course[] = '<span style="display:none;">'.$obj->access_date.'</span>'.api_convert_and_format_date($obj->access_date);
$courses[] = $course; $courses[] = $course;

@ -644,11 +644,11 @@ class Template
$this->assign('footer_extra_content', $extra_footer); $this->assign('footer_extra_content', $extra_footer);
} }
} }
$id_course = api_get_course_int_id();
//Tutor name //Tutor name
if (api_get_setting('show_tutor_data') == 'true') { if (api_get_setting('show_tutor_data') == 'true') {
// Course manager // Course manager
$id_course = api_get_course_id();
$id_session = api_get_session_id(); $id_session = api_get_session_id();
if (isset($id_course) && $id_course != -1) { if (isset($id_course) && $id_course != -1) {
$tutor_data = ''; $tutor_data = '';
@ -674,7 +674,6 @@ class Template
if (api_get_setting('show_teacher_data') == 'true') { if (api_get_setting('show_teacher_data') == 'true') {
// course manager // course manager
$id_course = api_get_course_int_id();
if (isset($id_course) && $id_course != -1) { if (isset($id_course) && $id_course != -1) {
$teacher_data = ''; $teacher_data = '';
$mail = CourseManager::get_emails_of_tutors_to_course($id_course); $mail = CourseManager::get_emails_of_tutors_to_course($id_course);
@ -901,7 +900,7 @@ class Template
*/ */
function get_tabs() function get_tabs()
{ {
global $_course; $_course = api_get_course_info();
$navigation = array(); $navigation = array();

@ -686,7 +686,7 @@ class Thematic
* @return int Affected rows * @return int Affected rows
*/ */
public function thematic_advance_destroy($thematic_advance_id) { public function thematic_advance_destroy($thematic_advance_id) {
global $_course; $_course = api_get_course_info();
$course_id = $this->get_course_int_id(); $course_id = $this->get_course_int_id();
// definition database table // definition database table
@ -946,7 +946,7 @@ class Thematic
* @return int Affected rows * @return int Affected rows
*/ */
public function update_done_thematic_advances($thematic_advance_id) { public function update_done_thematic_advances($thematic_advance_id) {
global $_course; $_course = api_get_course_info();
$thematic_data = $this->get_thematic_list(null, api_get_course_id()); $thematic_data = $this->get_thematic_list(null, api_get_course_id());
$thematic_advance_data = $this->get_thematic_advance_list(null, api_get_course_id(), true); $thematic_advance_data = $this->get_thematic_advance_list(null, api_get_course_id(), true);
$tbl_thematic_advance = Database::get_course_table(TABLE_THEMATIC_ADVANCE); $tbl_thematic_advance = Database::get_course_table(TABLE_THEMATIC_ADVANCE);

File diff suppressed because it is too large Load Diff

@ -1195,6 +1195,7 @@ class UserManager {
case 'none': case 'none':
default: // Base: empty, the result path below will be relative. default: // Base: empty, the result path below will be relative.
$base = ''; $base = '';
break;
} }
if (empty($id) || empty($type)) { if (empty($id) || empty($type)) {
@ -1215,13 +1216,15 @@ class UserManager {
$picture_filename = trim($user['picture_uri']); $picture_filename = trim($user['picture_uri']);
if (api_get_setting('split_users_upload_directory') === 'true') { if (api_get_setting('split_users_upload_directory') === 'true') {
$dir = $base.'upload/users/'.substr((string)$user_id, 0, 1).'/'.$user_id.'/';
/* @todo check this validation
if (!empty($picture_filename) or $preview) { if (!empty($picture_filename) or $preview) {
$dir = $base.'data/upload/users/'.substr((string)$user_id, 0, 1).'/'.$user_id.'/'; $dir = $base.'upload/users/'.substr((string)$user_id, 0, 1).'/'.$user_id.'/';
} else { } else {
$dir = $base.'data/upload/users/'.$user_id.'/'; $dir = $base.'upload/users/'.$user_id.'/';
} }*/
} else { } else {
$dir = $base.'data/upload/users/'.$user_id.'/'; $dir = $base.'upload/users/'.$user_id.'/';
} }
if (empty($picture_filename) && $anonymous) { if (empty($picture_filename) && $anonymous) {
return array('dir' => $base_unknown.'img/', 'file' => 'unknown.jpg'); return array('dir' => $base_unknown.'img/', 'file' => 'unknown.jpg');
@ -2516,13 +2519,13 @@ class UserManager {
foreach ($courses as $course) { foreach ($courses as $course) {
//Checking course session visibility //Checking course session visibility
$visibility = api_get_session_visibility($session_id, $course['code']); $visibility = api_get_session_visibility($session_id, $course['id']);
if ($visibility == SESSION_INVISIBLE) { if ($visibility == SESSION_INVISIBLE) {
continue; continue;
} }
$user_status_in_course = CourseManager::get_user_in_course_status($user_id, $course['code']); $user_status_in_course = CourseManager::get_user_in_course_status($user_id, $course['id']);
$course['user_status_in_course'] = $user_status_in_course; $course['user_status_in_course'] = $user_status_in_course;
$course_list[] = $course; $course_list[] = $course;
} }
@ -2622,13 +2625,13 @@ class UserManager {
$session_id = $enreg['id']; $session_id = $enreg['id'];
$courseList = SessionManager::get_course_list_by_session_id($session_id); $courseList = SessionManager::get_course_list_by_session_id($session_id);
foreach ($courseList as $course) { foreach ($courseList as $course) {
$sessionVisibility = api_get_session_visibility($session_id, $course['code']); $sessionVisibility = api_get_session_visibility($session_id, $course['id']);
if ($sessionVisibility == SESSION_INVISIBLE) { if ($sessionVisibility == SESSION_INVISIBLE) {
continue; continue;
} }
$course['course_info'] = $course; $course['course_info'] = $course;
$key = $session_id.' - '.$course['code']; $key = $session_id.' - '.$course['id'];
$personal_course_list[$key] = $course; $personal_course_list[$key] = $course;
} }
} }
@ -2665,35 +2668,37 @@ class UserManager {
$courses = array(); $courses = array();
// this query is very similar to the above query, but it will check the session_rel_course_user table if there are courses registered to our user or not // this query is very similar to the above query, but it will check the session_rel_course_user table if there are courses registered to our user or not
$personal_course_list_sql = "SELECT DISTINCT scu.course_code as code FROM $tbl_session_course_user as scu $join_access_url $personal_course_list_sql = "SELECT DISTINCT scu.c_id as id
FROM $tbl_session_course_user as scu $join_access_url
WHERE scu.id_user = $user_id AND scu.id_session = $session_id $where_access_url WHERE scu.id_user = $user_id AND scu.id_session = $session_id $where_access_url
ORDER BY code"; ORDER BY c_id";
$course_list_sql_result = Database::query($personal_course_list_sql); $course_list_sql_result = Database::query($personal_course_list_sql);
if (Database::num_rows($course_list_sql_result) > 0) { if (Database::num_rows($course_list_sql_result) > 0) {
while ($result_row = Database::fetch_array($course_list_sql_result)) { while ($result_row = Database::fetch_array($course_list_sql_result)) {
$result_row['status'] = 5; $result_row['status'] = 5;
if (!in_array($result_row['code'], $courses)) { if (!in_array($result_row['id'], $courses)) {
$personal_course_list[] = $result_row; $personal_course_list[] = $result_row;
$courses[] = $result_row['code']; $courses[] = $result_row['id'];
} }
} }
} }
if (api_is_allowed_to_create_course()) { if (api_is_allowed_to_create_course()) {
$personal_course_list_sql = "SELECT DISTINCT scu.course_code as code FROM $tbl_session_course_user as scu, $tbl_session as s $join_access_url $personal_course_list_sql = "SELECT DISTINCT scu.c_id as id
FROM $tbl_session_course_user as scu, $tbl_session as s $join_access_url
WHERE s.id = $session_id AND scu.id_session = s.id AND ((scu.id_user=$user_id AND scu.status=2) OR s.id_coach = $user_id) WHERE s.id = $session_id AND scu.id_session = s.id AND ((scu.id_user=$user_id AND scu.status=2) OR s.id_coach = $user_id)
$where_access_url $where_access_url
ORDER BY code"; ORDER BY c_id";
$course_list_sql_result = Database::query($personal_course_list_sql); $course_list_sql_result = Database::query($personal_course_list_sql);
if (Database::num_rows($course_list_sql_result)>0) { if (Database::num_rows($course_list_sql_result)>0) {
while ($result_row = Database::fetch_array($course_list_sql_result)) { while ($result_row = Database::fetch_array($course_list_sql_result)) {
$result_row['status'] = 2; $result_row['status'] = 2;
if (!in_array($result_row['code'],$courses)) { if (!in_array($result_row['id'],$courses)) {
$personal_course_list[] = $result_row; $personal_course_list[] = $result_row;
$courses[] = $result_row['code']; $courses[] = $result_row['id'];
} }
} }
} }
@ -2717,7 +2722,7 @@ class UserManager {
$course_list = SessionManager::get_course_list_by_session_id($session_id); $course_list = SessionManager::get_course_list_by_session_id($session_id);
if (!empty($course_list)) { if (!empty($course_list)) {
foreach ($course_list as $course) { foreach ($course_list as $course) {
if (!in_array($course['code'],$courses)) { if (!in_array($course['id'],$courses)) {
$personal_course_list[] = $course; $personal_course_list[] = $course;
} }
} }
@ -3790,7 +3795,6 @@ class UserManager {
*/ */
public static function get_user_id_of_course_admin_or_session_admin($courseInfo) { public static function get_user_id_of_course_admin_or_session_admin($courseInfo) {
$session = api_get_session_id(); $session = api_get_session_id();
$courseCode = $courseInfo['code'];
$courseId = $courseInfo['real_id']; $courseId = $courseInfo['real_id'];
$table_user = Database::get_main_table(TABLE_MAIN_USER); $table_user = Database::get_main_table(TABLE_MAIN_USER);
@ -3799,7 +3803,7 @@ class UserManager {
if ($session==0 || is_null($session)) { if ($session==0 || is_null($session)) {
$sql='SELECT u.user_id FROM '.$table_user.' u $sql='SELECT u.user_id FROM '.$table_user.' u
INNER JOIN '.$table_course_user.' ru ON ru.user_id=u.user_id INNER JOIN '.$table_course_user.' ru ON ru.user_id=u.user_id
WHERE ru.status=1 AND ru.course_code="'.Database::escape_string($courseId).'" '; WHERE ru.status=1 AND ru.c_id="'.Database::escape_string($courseId).'" ';
$rs=Database::query($sql); $rs=Database::query($sql);
$num_rows=Database::num_rows($rs); $num_rows=Database::num_rows($rs);
if ($num_rows==1) { if ($num_rows==1) {
@ -3813,7 +3817,7 @@ class UserManager {
} elseif ($session>0) { } elseif ($session>0) {
$sql='SELECT u.user_id FROM '.$table_user.' u $sql='SELECT u.user_id FROM '.$table_user.' u
INNER JOIN '.$table_session_course_user.' sru INNER JOIN '.$table_session_course_user.' sru
ON sru.id_user=u.user_id WHERE sru.course_code="'.Database::escape_string($courseCode).'" '; ON sru.id_user=u.user_id WHERE sru.c_id="'.Database::escape_string($courseId).'" ';
$rs=Database::query($sql); $rs=Database::query($sql);
$row=Database::fetch_array($rs); $row=Database::fetch_array($rs);
return $row['user_id']; return $row['user_id'];
@ -3915,6 +3919,7 @@ class UserManager {
* @param string Course code * @param string Course code
* @param int Session id * @param int Session id
* @return bool True if the user is a coach * @return bool True if the user is a coach
* @deprecated seems not to be used
* *
*/ */
public static function is_session_course_coach($user_id, $course_code, $session_id) { public static function is_session_course_coach($user_id, $course_code, $session_id) {

@ -489,34 +489,31 @@ ALTER TABLE session ADD INDEX idx_id_session_admin_id (session_admin_id);
-- --
DROP TABLE IF EXISTS session_rel_course; DROP TABLE IF EXISTS session_rel_course;
CREATE TABLE IF NOT EXISTS session_rel_course ( CREATE TABLE IF NOT EXISTS session_rel_course (
id INT unsigned NOT NULL auto_increment,
id_session INT unsigned NOT NULL default '0', id_session INT unsigned NOT NULL default '0',
course_id INT NOT NULL default '0', c_id INT NOT NULL default '0',
course_code char(40),
nbr_users int unsigned NOT NULL default '0', nbr_users int unsigned NOT NULL default '0',
PRIMARY KEY (id_session, course_id) PRIMARY KEY(id)
); );
ALTER TABLE session_rel_course ADD INDEX idx_session_rel_course_course_id (c_id);
ALTER TABLE session_rel_course ADD INDEX idx_session_rel_course_course_id (course_id);
-- --
-- Table structure for table session_rel_course_rel_user -- Table structure for table session_rel_course_rel_user
-- --
DROP TABLE IF EXISTS session_rel_course_rel_user; DROP TABLE IF EXISTS session_rel_course_rel_user;
CREATE TABLE IF NOT EXISTS session_rel_course_rel_user ( CREATE TABLE IF NOT EXISTS session_rel_course_rel_user (
id_session MEDIUMINT unsigned NOT NULL default '0', id INT unsigned NOT NULL auto_increment,
course_id INT NOT NULL default '0', id_session INT unsigned NOT NULL default '0',
course_code char(40), c_id INT NOT NULL default '0',
id_user int unsigned NOT NULL default '0', id_user int unsigned NOT NULL default '0',
visibility int NOT NULL default 1, visibility int NOT NULL default 1,
status int NOT NULL default 0, status int NOT NULL default 0,
legal_agreement INTEGER DEFAULT 0, legal_agreement INTEGER DEFAULT 0,
PRIMARY KEY (id_session, course_id, id_user) PRIMARY KEY (id)
); );
ALTER TABLE session_rel_course_rel_user ADD INDEX idx_session_rel_course_rel_user_id_user (id_user); ALTER TABLE session_rel_course_rel_user ADD INDEX idx_session_rel_course_rel_user_id_user (id_user);
ALTER TABLE session_rel_course_rel_user ADD INDEX idx_session_rel_course_rel_user_course_id (course_id); ALTER TABLE session_rel_course_rel_user ADD INDEX idx_session_rel_course_rel_user_course_id (c_id);
@ -3127,7 +3124,7 @@ CREATE TABLE track_c_referers (
id int NOT NULL auto_increment, id int NOT NULL auto_increment,
referer varchar(255) NOT NULL default '', referer varchar(255) NOT NULL default '',
counter int NOT NULL default 0, counter int NOT NULL default 0,
PRIMARY KEY (id) PRIMARY KEY (id)
); );
DROP TABLE IF EXISTS track_e_access; DROP TABLE IF EXISTS track_e_access;
@ -3135,12 +3132,12 @@ CREATE TABLE track_e_access (
access_id int NOT NULL auto_increment, access_id int NOT NULL auto_increment,
access_user_id int unsigned default NULL, access_user_id int unsigned default NULL,
access_date datetime NOT NULL default '0000-00-00 00:00:00', access_date datetime NOT NULL default '0000-00-00 00:00:00',
access_cours_code varchar(40) NOT NULL default '', c_id INT NOT NULL DEFAULT 0,
access_tool varchar(30) default NULL, access_tool varchar(30) default NULL,
access_session_id int NOT NULL default 0, access_session_id int NOT NULL default 0,
PRIMARY KEY (access_id), PRIMARY KEY (access_id),
KEY access_user_id (access_user_id), KEY access_user_id (access_user_id),
KEY access_cours_code (access_cours_code) KEY access_cid_user (c_id, access_user_id)
); );
DROP TABLE IF EXISTS track_e_lastaccess; DROP TABLE IF EXISTS track_e_lastaccess;
@ -3148,12 +3145,12 @@ CREATE TABLE track_e_lastaccess (
access_id bigint NOT NULL auto_increment, access_id bigint NOT NULL auto_increment,
access_user_id int unsigned default NULL, access_user_id int unsigned default NULL,
access_date datetime NOT NULL default '0000-00-00 00:00:00', access_date datetime NOT NULL default '0000-00-00 00:00:00',
access_cours_code varchar(40) NOT NULL, c_id INT NOT NULL DEFAULT 0,
access_tool varchar(30) default NULL, access_tool varchar(30) default NULL,
access_session_id int unsigned default NULL, access_session_id int unsigned default NULL,
PRIMARY KEY (access_id), PRIMARY KEY (access_id),
KEY access_user_id (access_user_id), KEY access_user_id (access_user_id),
KEY access_cours_code (access_cours_code), KEY access_cours_code (c_id),
KEY access_session_id (access_session_id) KEY access_session_id (access_session_id)
); );
@ -3168,7 +3165,7 @@ CREATE TABLE track_e_default (
default_value text NOT NULL, default_value text NOT NULL,
c_id int unsigned default NULL, c_id int unsigned default NULL,
session_id int unsigned default 0, session_id int unsigned default 0,
PRIMARY KEY (default_id) PRIMARY KEY (default_id)
); );
DROP TABLE IF EXISTS track_e_downloads; DROP TABLE IF EXISTS track_e_downloads;
@ -3176,12 +3173,10 @@ CREATE TABLE track_e_downloads (
down_id int NOT NULL auto_increment, down_id int NOT NULL auto_increment,
down_user_id int unsigned default NULL, down_user_id int unsigned default NULL,
down_date datetime NOT NULL default '0000-00-00 00:00:00', down_date datetime NOT NULL default '0000-00-00 00:00:00',
down_cours_id varchar(40) NOT NULL default '', c_id int NOT NULL default 0,
down_doc_path varchar(255) NOT NULL default '', down_doc_path varchar(255) NOT NULL default '',
down_session_id INT NOT NULL DEFAULT 0, down_session_id INT NOT NULL DEFAULT 0,
PRIMARY KEY (down_id), PRIMARY KEY (down_id)
KEY down_user_id (down_user_id),
KEY down_cours_id (down_cours_id)
); );
DROP TABLE IF EXISTS track_e_exercices; DROP TABLE IF EXISTS track_e_exercices;
@ -3261,11 +3256,10 @@ CREATE TABLE track_e_links (
links_id int NOT NULL auto_increment, links_id int NOT NULL auto_increment,
links_user_id int unsigned default NULL, links_user_id int unsigned default NULL,
links_date datetime NOT NULL default '0000-00-00 00:00:00', links_date datetime NOT NULL default '0000-00-00 00:00:00',
links_cours_id varchar(40) NOT NULL default '' , c_id INT NOT NULL DEFAULT 0,
links_link_id int NOT NULL default 0, links_link_id int NOT NULL default 0,
links_session_id INT NOT NULL DEFAULT 0, links_session_id INT NOT NULL DEFAULT 0,
PRIMARY KEY (links_id), PRIMARY KEY (links_id),
KEY links_cours_id (links_cours_id),
KEY links_user_id (links_user_id) KEY links_user_id (links_user_id)
); );

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save