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';
// resetting the course id
$cidReset = true;
require_once '../inc/global.inc.php';
$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'));
// 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_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
$tool_name= get_lang('SubscribeSessionsToCategory');
$id_session=intval($_GET['id_session']);
$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']);
}
@ -52,8 +46,7 @@ if (!api_is_platform_admin() && !api_is_session_admin()) {
$xajax -> processRequests();
$htmlHeadXtra[] = $xajax->getJavascript('../inc/lib/xajax/');
$htmlHeadXtra[] = '
<script type="text/javascript">
$htmlHeadXtra[] = '<script>
function add_course_to_session (code, content) {
document.getElementById("course_to_add").value = "";
document.getElementById("ajax_list_courses_single").innerHTML = "";
@ -99,7 +92,6 @@ if ($_POST['formSent']) {
$session_id = join(',', $SessionCategoryList);
$sql = "UPDATE $tbl_session SET session_category_id = $Categoryid WHERE id in ($session_id) ";
Database::query($sql);
//header('Location: session_list.php?id_category='.$Categoryid);
header('Location: add_many_session_to_category.php?id_category='.$Categoryid.'&msg=ok');
exit;
} else {
@ -112,11 +104,11 @@ if (isset($_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');
}
if(isset($_GET['msg']) && $_GET['msg']=='ok'){
if (isset($_GET['msg']) && $_GET['msg']=='ok'){
$OkMsg = get_lang('SessionCategoryUpdate');
}
@ -127,7 +119,7 @@ Display::display_header($tool_name);
$where ='';
$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;
$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>'; ?>
<input type="hidden" name="formSent" value="1" />
<?php
if(!empty($errorMsg)) {
if (!empty($errorMsg)) {
Display::display_error_message($errorMsg); //main API
}
if(!empty($OkMsg)) {
if (!empty($OkMsg)) {
Display::display_confirmation_message($OkMsg); //main API
}
@ -246,7 +238,6 @@ if(!empty($OkMsg)) {
</select></td>
</tr>
</table>
</form>
<script>
function valide(){

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

@ -37,8 +37,8 @@ $career = new Career();
$condition = array('status = ?' => 1);
if ($form->validate()) {
$data = $form->getSubmitValues();
$filter = intval($data['filter']);
$data = $form->getSubmitValues();
$filter = intval($data['filter']);
if (!empty($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
$career_select_list = array();
$career_select_list[0] = ' -- '.get_lang('Select').' --';
foreach ($careers as $item) {
foreach ($careers as $item) {
$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 '<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="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>';
$form->display();
@ -71,80 +71,78 @@ $i = 0;
$grid_js = '';
$career_array = array();
if (!empty($careers)) {
foreach($careers as $career_item) {
foreach($careers as $career_item) {
$promotion = new Promotion();
//Getting all promotions
$promotions = $promotion->get_all_promotions_by_career_id($career_item['id'], 'name DESC');
$career_content = '';
$promotions = $promotion->get_all_promotions_by_career_id($career_item['id'], 'name DESC');
$career_content = '';
$promotion_array = array();
if (!empty($promotions)) {
if (!empty($promotions)) {
foreach($promotions as $promotion_item) {
if (!$promotion_item['status']) {
continue; //avoid status = 0
}
//Getting all sessions from this promotion
$sessions = SessionManager::get_all_sessions_by_promotion($promotion_item['id']);
$session_list = array();
foreach($sessions as $session_item) {
//Getting all sessions from this promotion
$sessions = SessionManager::get_all_sessions_by_promotion($promotion_item['id']);
$session_list = array();
foreach($sessions as $session_item) {
$course_list = SessionManager::get_course_list_by_session_id($session_item['id']);
$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);
}
}
}
echo '<table class="data_table">';
foreach($career_array as $career_id => $data) {
$career = $data['name'];
$promotions = $data['promotions'];
$promotions = $data['promotions'];
$career = Display::url($career,'careers.php?action=edit&id='.$career_id);
$career = Display::tag('h3',$career);
echo '<tr><td style="background-color:#eee" colspan="3">'.$career.'</td></tr>';
foreach($promotions as $promotion_id => $promotion) {
echo '<tr><td style="background-color:#eee" colspan="3">'.$career.'</td></tr>';
foreach($promotions as $promotion_id => $promotion) {
$promotion_name = $promotion['name'];
$promotion_url = Display::url($promotion_name,'promotions.php?action=edit&id='.$promotion_id);
$sessions = $promotion['sessions'];
echo '<tr>';
$count = count($sessions);
$rowspan = '';
if (!empty($count)) {
if (!empty($count)) {
$count++;
$rowspan = 'rowspan="'.$count.'"';
}
echo '<td '.$rowspan.'>';
//echo $promotion_url;
echo Display::tag('h4',$promotion_url);
echo '<td '.$rowspan.'>';
echo Display::tag('h4',$promotion_url);
echo '</td>';
echo '</tr>';
echo '</tr>';
if (!empty($sessions))
foreach($sessions as $session) {
$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>';
//Session name
echo Display::tag('td',$url);
echo Display::tag('td',$url);
echo '<td>';
//Courses
echo '<table>';
foreach($course_list as $course) {
echo '<tr>';
$url = Display::url($course['title'], api_get_path(WEB_COURSE_PATH).$course['directory'].'/?id_session='.$session['data']['id']);
echo '<tr>';
$url = Display::url($course['title'], api_get_path(WEB_COURSE_PATH).$course['directory'].'/?id_session='.$session['data']['id']);
echo Display::tag('td',$url);
echo '</tr>';
echo '</tr>';
}
echo '</table>';
echo '</td>';
echo '</tr>';
echo '</td>';
echo '</tr>';
}
}
}
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'));
}
$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);
if (!empty($session_list)) {

@ -2,9 +2,9 @@
/* For licensing terms, see /license.txt */
/**
@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
* @package chamilo.admin
* script pour effacer les user inactif depuis x temps
*/
@ -14,14 +14,9 @@ $language_file = array ('registration','admin');
$cidReset = true;
require_once '../inc/global.inc.php';
$tbl_stats_access = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_ACCESS);
$this_section = SECTION_PLATFORM_ADMIN;
api_protect_admin_script(true);
/**
* Make sure this function is protected because it does NOT check password!
*
*/
/** INIT SECTION
*/
@ -30,12 +25,12 @@ Display :: display_header($tool_name, "");
//On sélectionne les user élèves
$sql = "SELECT user_id FROM ".$table_user." user WHERE user.status= '5' ORDER by lastname " ;
$result = Database::query($sql);
while($row = Database::fetch_array($result)) {
while($row = Database::fetch_array($result)) {
$user_id = $row['user_id'];
// pour chaque élève, on trouve la dernière connexion
//$last_connection_date = UserManager:: delete_inactive_student($user_id, 2, true);
}
/* FOOTER */
Display :: display_footer();

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

@ -47,9 +47,9 @@ if ($action == 'delete') {
}
$idChecked = $my_temp;
$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();
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'");
}
header('Location: '.api_get_self().'?id_session='.$id_session.'&sort='.$sort);
@ -59,7 +59,9 @@ if ($action == 'delete') {
$limit = 20;
$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);
$Courses=Database::store_result($result);
$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'));
$tableCourses = array();
foreach($Courses as $key=>$enreg) {
foreach ($Courses as $key=>$enreg) {
$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[] = '<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="'.api_get_path(WEB_COURSE_PATH).$enreg['code'].'/?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="'.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>';
$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['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['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['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;
}
echo '<form method="post" action="'.api_get_self().'">';

@ -242,10 +242,9 @@ function fullexportspecial(){
);
}
//Add tem to the zip file session course
$code_course = $_course['code'];
$sql_session = "SELECT id, name, course_code FROM $tbl_session_course
INNER JOIN $tbl_session ON id_session = id
WHERE course_code = '$code_course' ";
WHERE c_id = '$course_id' ";
$query_session = Database::query($sql_session);
while ($rows_session = Database::fetch_assoc($query_session)) {
$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'));
$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_course = Database :: get_main_table(TABLE_MAIN_COURSE);
$tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
@ -99,10 +96,8 @@ if (count($sessions) > 0) {
$row[] = $course_info['title'];
//$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);
$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>';
@ -137,7 +132,7 @@ if (Database::num_rows($res) > 0) {
$row[] = $course->title;
//$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);
$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>' .

@ -163,7 +163,7 @@ function login_user($user_id) {
}
//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_admin_table = Database::get_main_table(TABLE_MAIN_ADMIN);

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

@ -243,7 +243,7 @@
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
}
} 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);
} else {
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id, $user_id);

@ -11,7 +11,7 @@
// protect a course script
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 = '';
if (isset($_SESSION['gradebook'])) {

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

@ -550,41 +550,36 @@ function ldap_add_user_to_session($UserList, $id_session) {
// Database Table Definitions
$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_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);
$id_session = (int) $id_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'");
$CourseList=array();
while ($row=Database::fetch_array($result)) {
$CourseList[]=$row['course_code'];
$CourseList[]=$row['c_id'];
}
foreach ($CourseList as $enreg_course) {
foreach ($UserList as $enreg_user) {
$enreg_user = (int) $enreg_user;
Database::query("INSERT IGNORE ".
" 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')");
}
$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 c_id='$enreg_course'";
$rs = Database::query($sql);
list($nbr_users) = Database::fetch_array($rs);
Database::query("UPDATE $tbl_session_rel_course ".
" SET nbr_users=$nbr_users " .
" WHERE id_session='$id_session' ".
" AND course_code='$enreg_course'");
" AND c_id='$enreg_course'");
}
foreach ($UserList as $enreg_user) {
$enreg_user = (int) $enreg_user;

@ -67,14 +67,14 @@ if (!empty($course_user_list)) {
if ($count == $last_item) {
$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'].'">';
$dates .= '<li><a href="#'.$login.'">'.api_get_utc_datetime($login).'</a></li>';
$issues .= '<li id ="'.$login.'">
<div class="row">
<div class="span2"><div class="thumbnail">'.$course_image.'</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>';
$count++;
}

@ -57,8 +57,8 @@ class ShibbolethSession
/* 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.
*/
global $_uid, $is_allowedCreateCourse, $is_platformAdmin, $_real_cid, $_courseUser, $is_courseAdmin;
global $is_courseMember, $is_courseTutor, $is_courseCoach, $is_allowed_in_course, $is_sessionAdmin, $_gid;
global $_uid, $is_allowedCreateCourse, $_real_cid, $_courseUser;
global $is_courseMember, $is_courseTutor, $is_allowed_in_course, $_gid;
$_uid = $uid;
//is_allowedCreateCourse

@ -991,7 +991,7 @@ function get_course_users()
FROM $tbl_session_course_user AS session_course_user
INNER JOIN $tbl_user u ON u.user_id = session_course_user.id_user
WHERE id_session = ".$session_id."
AND course_code = '".api_get_course_id()."'";
AND c_id = '".api_get_course_int_id()."'";
$result = Database::query($sql);
while ($user = Database::fetch_array($result)) {
@ -1009,9 +1009,7 @@ function get_course_users()
*/
function get_course_groups()
{
$group_list = array();
$group_list = CourseManager::get_group_list_of_course(api_get_course_id(), api_get_session_id());
return $group_list;
}
@ -1215,7 +1213,7 @@ function construct_selected_select_form($group_list = null, $user_list = null, $
*/
function store_new_agenda_item()
{
global $_course;
$_course = api_get_course_info();
$TABLEAGENDA = Database::get_course_table(TABLE_AGENDA);
$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)
{
global $_course;
$_course = api_get_course_info();
$TABLE_ITEM_PROPERTY = Database::get_course_table(TABLE_ITEM_PROPERTY);
$tool = Database::escape_string($tool);
$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)
{
global $_course;
$_course = api_get_course_info();
$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())
) {
@ -2269,7 +2267,6 @@ function display_one_agenda_item($agenda_id)
global $TABLE_ITEM_PROPERTY;
global $select_month, $select_year;
global $DaysShort, $DaysLong, $MonthsLong;
global $is_courseAdmin;
global $dateFormatLong, $timeNoSecFormat, $charset;
// getting the name of the groups
@ -4686,7 +4683,7 @@ function agenda_add_item(
*/
function delete_attachment_file($id_attach)
{
global $_course;
$_course = api_get_course_info();
$agenda_table_attachment = Database::get_course_table(TABLE_AGENDA_ATTACHMENT);
$id_attach = intval($id_attach);
@ -4715,7 +4712,7 @@ function delete_attachment_file($id_attach)
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);
$last_id = intval($last_id);
// 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)
{
global $_course;
$_course = api_get_course_info();
$agenda_table_attachment = Database::get_course_table(TABLE_AGENDA_ATTACHMENT);
// 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_group = Database::get_course_table(TABLE_GROUP);
$tbl_groupUser = Database::get_course_table(TABLE_GROUP_USER);
$tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
/* ACCESS RIGHTS */
// 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>';
}
if (is_array($course_list) && count($course_list) > 0) {
$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);
} else {
Display::display_warning_message(get_lang('PleaseSelectACourseOrASessionInTheLeftColumn'));

@ -37,7 +37,7 @@ if (empty($course_id) || empty($doc_url)) {
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) {
api_not_allowed();

@ -556,7 +556,7 @@ function get_all_courses_of_user() {
c.db_name db, c.directory dir, '5' as status
FROM $TABLECOURS c, $tbl_session_course_user srcu
WHERE srcu.id_user='".api_get_user_id()."'
AND c.code=srcu.course_code
AND c.id = srcu.c_id
UNION
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

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

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

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

@ -16,7 +16,7 @@ require_once '../inc/global.inc.php';
$course = api_get_course_id();
$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);
$group_condition = " AND to_group_id = '$group_id'";
@ -44,7 +44,7 @@ if (!empty($course)) {
list($pseudo_user) = Database::fetch_array($result);
$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);
@ -67,10 +67,11 @@ if (!empty($course)) {
// 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
WHERE
t2.c_id = $course_id AND
t1.user_id=t2.user_id AND t3.id_user=t2.user_id AND
t3.id_session = '".$session_id."' AND
t3.c_id = '".$course_id."' AND t2.last_connection>'".$date_inter."' $extra_condition ORDER BY username";
t2.c_id = $course_id AND
t1.user_id=t2.user_id AND t3.id_user=t2.user_id AND
t3.id_session = '".$session_id."' AND
t3.c_id = '".$course_id."' AND t2.last_connection>'".$date_inter."' $extra_condition
ORDER BY username";
$result = Database::query($query);
while ($learner = Database::fetch_array($result)) {
$users[$learner['user_id']] = $learner;
@ -94,7 +95,7 @@ if (!empty($course)) {
t1.user_id=t2.user_id
AND t3.id_user=t2.user_id AND t3.status=2
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";
$result = Database::query($query);

@ -165,7 +165,7 @@ elseif (isset($update) && $update) {
// 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
// visibility 0,1->2
if ($askDelete) {
@ -219,7 +219,7 @@ if (api_is_allowed_to_edit(null, true) && !api_is_coach()) {
/* 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\">".
"<hr noshade size=\"1\" />".
"</td>"."</tr>\n".

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

@ -46,70 +46,6 @@ require_once dirname(__FILE__).'/../inc/global.inc.php';
//unset($_SESSION['oLP']);
//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
$this_section = SECTION_COURSES;
@ -129,7 +65,6 @@ define('TOOL_STUDENT_VIEW', 'toolstudentview');
define('TOOL_ADMIN_VISIBLE', 'tooladminvisible');
$user_id = api_get_user_id();
//$course_code = api_get_course_id();
$show_message = '';
//Deleting group session
@ -168,7 +103,7 @@ if (!isset($coursesAlreadyVisited[$course_code])) {
$show_autolaunch_exercise_warning = false;
//Exercise autolaunch
//Exercise auto-launch
$auto_launch = api_get_course_setting('enable_exercise_auto_launch');
if (!empty($auto_launch)) {
$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;
$auto_launch = api_get_course_setting('enable_lp_auto_launch');
if (!empty($auto_launch)) {

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

@ -29,7 +29,7 @@ define('MODULE_HELP_NAME', 'Settings');
define('COURSE_CHANGE_PROPERTIES', 'COURSE_CHANGE_PROPERTIES');
$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();
$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_disabled_select_titular = '';
if (!$is_courseAdmin) {
if (!api_is_course_admin()) {
$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.')';
@ -331,7 +331,6 @@ $group[]=$form->createElement('radio', 'allow_fast_exercise_edition', get_lang('
$form->addGroup($group, '', array(get_lang("AllowFastExerciseEdition")), '');
//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[]=$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);

@ -19,6 +19,7 @@ if (empty($course_code)) {
}
$course_info = CourseManager::get_course_information($course_code);
$courseId = $course_info['real_id'];
$course_legal = $course_info['legal'];
// 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);
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);
if ($user_accepted_legal || $user_pass_open_course) {
//Redirect to course home
@ -67,7 +68,7 @@ if (empty($session_id)) {
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'])) {
$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?
*/
class CourseArchiver
class CourseArchiver
{
/**
@ -70,10 +70,10 @@ class CourseArchiver
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);
}
//Documents
// Copy all documents to the temp-dir
// Copy all documents to the temp-dir
if (is_array($course->resources[RESOURCE_DOCUMENT])) {
foreach ($course->resources[RESOURCE_DOCUMENT] as $id => $document) {
if ($document->file_type == DOCUMENT) {
@ -105,7 +105,7 @@ class CourseArchiver
FileManager::copyDirTo($course->path . 'upload/calendar/', $doc_dir, false);
}
//Copy learningpath author image
//Copy learningpath author image
if (is_array($course->resources[RESOURCE_LEARNPATH])) {
$doc_dir = dirname($backup_dir . '/upload/learning_path/');
@mkdir($doc_dir, $perm_dirs, true);
@ -133,7 +133,6 @@ class CourseArchiver
*
*/
static function get_available_backups($user_id = null) {
global $dateTimeFormatLong;
$backup_files = array();
$dirname = api_get_path(SYS_ARCHIVE_PATH) . '';
if ($dir = opendir($dirname)) {

@ -60,7 +60,7 @@ class CourseBuilder {
* Create a new CourseBuilder
*/
function __construct($type='', $course = null) {
global $_course;
$_course = api_get_course_info();
if (!empty($course['official_code'])){
$_course = $course;
@ -915,10 +915,11 @@ class CourseBuilder {
$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->encoding = api_get_system_encoding(); //current platform encoding
$code_course = $_course['code'];
$sql_session = "SELECT id, name, course_code FROM $tbl_session_course
INNER JOIN $tbl_session ON id_session = id
WHERE course_code = '$code_course' ";
//$code_course = $_course['code'];
$courseId = $_course['real_id'];
$sql_session = "SELECT id, name, c_id
FROM $tbl_session_course INNER JOIN $tbl_session ON id_session = id
WHERE c_id = '$courseId' ";
$query_session = Database::query($sql_session);
while ($rows_session = Database::fetch_assoc($query_session)) {
$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'));
// 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_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);
/* FUNCTIONS */
function make_select_session_list($name, $sessions, $attr = array())
{
function make_select_session_list($name, $sessions, $attr = array()) {
$attrs = '';
if (count($attr) > 0) {
foreach ($attr as $key => $value) {
@ -85,11 +81,9 @@ function make_select_session_list($name, $sessions, $attr = array())
return $output;
}
function display_form()
{
function display_form() {
$html = '';
$sessions = SessionManager::get_sessions_list(null, array('name ASC'));
// Actions
$html .= '<div class="actions">';
// Link back to the documents overview
@ -144,8 +138,7 @@ function display_form()
echo $html;
}
function search_courses($id_session, $type)
{
function search_courses($id_session, $type) {
global $tbl_course, $tbl_session_rel_course, $course_list;
$xajax_response = new XajaxResponse();
$select_destination = '';
@ -158,7 +151,7 @@ function search_courses($id_session, $type)
$course_list = SessionManager::get_course_list_by_session_id($id_session);
$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) {
$temp_course_list[] = "'{$course['code']}'";
@ -221,65 +214,28 @@ function search_courses($id_session, $type)
} else {
//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
$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
WHERE src.c_id = c.id
AND src.id_session = '".intval($id_session)."'";
//AND c.code IN ($list_courses_origin)";
$rs = Database::query($sql);
$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)) {
$course_list_destination[] = $course['code'];
$course_list_destination[] = $course['c_id'];
$course_title = str_replace("'", "\'", $course_title);
$return .= '<option value="'.$course['code'].'" title="'.@htmlspecialchars(
$course['title'].' ('.$course['visual_code'].')',
ENT_QUOTES,
api_get_system_encoding()
).'">'.$course['title'].' ('.$course['visual_code'].')</option>';
$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>';
}
$return .= '</select>';
$_SESSION['course_list_destination'] = $course_list_destination;
// Send response by ajax
$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;
}
@ -288,45 +244,43 @@ $xajax->processRequests();
/* HTML head extra */
$htmlHeadXtra[] = $xajax->getJavascript(api_get_path(WEB_LIBRARY_PATH).'xajax/');
$htmlHeadXtra[] = '<script type="text/javascript">
function checkSelected(id_select,id_radio,id_title,id_destination) {
var num=0;
obj_origin = document.getElementById(id_select);
obj_destination = document.getElementById(id_destination);
for (x=0;x<obj_origin.options.length;x++) {
if (obj_origin.options[x].selected) {
if (obj_destination.options.length > 0) {
for (y=0;y<obj_destination.options.length;y++) {
if (obj_origin.options[x].value == obj_destination.options[y].value) {
obj_destination.options[y].selected = true;
}
}
}
num++;
} else {
if (obj_destination.options.length > 0) {
for (y=0;y<obj_destination.options.length;y++) {
if (obj_origin.options[x].value == obj_destination.options[y].value) {
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>';
$htmlHeadXtra[] = '<script>
function checkSelected(id_select,id_radio,id_title,id_destination) {
var num=0;
obj_origin = document.getElementById(id_select);
obj_destination = document.getElementById(id_destination);
for (x=0;x<obj_origin.options.length;x++) {
if (obj_origin.options[x].selected) {
if (obj_destination.options.length > 0) {
for (y=0;y<obj_destination.options.length;y++) {
if (obj_origin.options[x].value == obj_destination.options[y].value) {
obj_destination.options[y].selected = true;
}
}
}
num++;
} else {
if (obj_destination.options.length > 0) {
for (y=0;y<obj_destination.options.length;y++) {
if (obj_origin.options[x].value == obj_destination.options[y].value) {
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>';
Display::display_header($nameTools);
@ -335,13 +289,10 @@ if (isset($_POST['copy_only_session_items']) && $_POST['copy_only_session_items'
$with_base_content = false;
}
/* MAIN CODE */
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 = '';
if (isset ($_POST['action']) && $_POST['action'] == 'course_select_form') {
$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);
$cr = new CourseRestorer($course);
//$cr->set_file_option($_POST['same_file_name_option']);
$cr->restore($destination_course, $destination_session);
Display::display_confirmation_message(get_lang('CopyFinished'));
display_form();
@ -385,6 +335,8 @@ if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (is
//first element of the array
$course_code = $arr_course_origin[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);
$cb = new CourseBuilder('', $course_origin);

@ -127,7 +127,8 @@ if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (is
}
} else {
$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;
$form = new FormValidator('import_backup_form', 'post', 'import_backup.php', '', 'multipart/form-data');

@ -423,7 +423,9 @@ function downloadMP3_google($filepath, $dir)
return;
}
global $_course, $_user;
global $_user;
$_course = api_get_course_info();
$clean_title = trim($_POST['title']);
$clean_text = trim($_POST['text']);
if (empty($clean_title) || empty($clean_text)) {
@ -591,7 +593,8 @@ function downloadMP3_pediaphon($filepath, $dir)
return;
}
global $_course, $_user;
global $_user;
$_course = api_get_course_info();
$clean_title = trim($_POST['title']);
$clean_title = Database::escape_string($clean_title);
$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)) {
// While we are in a course: Registering the newly created folder in the course's database.
if (api_is_in_course()) {
global $_course, $_user;
global $_user;
$_course = api_get_course_info();
global $group_properties, $to_group_id;
$group_directory = !empty($group_properties['directory']) ? $group_properties['directory'] : '';

@ -71,7 +71,7 @@ if (empty($course_info)) {
$course_dir = $course_info['path'].'/document';
$sys_course_path = api_get_path(SYS_COURSE_PATH);
$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
@ -202,9 +202,7 @@ switch ($action) {
break;
case 'copytomyfiles':
// Copy a file to general my files user's
if (api_get_setting('allow_social_tool') == 'true' && api_get_setting(
'users_copy_files'
) == 'true' && api_get_user_id() != 0 && !api_is_anonymous()
if (api_get_setting('allow_social_tool') == 'true' && api_get_setting('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);
$parent_id = $document_info['parent_id'];
@ -217,7 +215,7 @@ switch ($action) {
@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']);
$cidReq = Security::remove_XSS($_GET['cidReq']);
$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>';
if (!isset($_GET['copy'])) {
$message = Display::return_message($message, 'warning', false);
}
} var_dump($file, $copyfile);exit;
if (Security::remove_XSS($_GET['copy']) == 'yes') {
if (!copy($file, $copyfile)) {
$message = Display::return_message(get_lang('CopyFailed'), 'error');
@ -254,6 +252,7 @@ switch ($action) {
}
}
} else {
if (!copy($file, $copyfile)) {
$message = Display::return_message(get_lang('CopyFailed'), 'error');
} 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()) {
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);
}
}
@ -453,7 +452,7 @@ if ($session_id == 0) {
$to_group_id = 0;
$visibility = 0;
FileManager::create_unexisting_directory(
$_course,
$course_info,
api_get_user_id(),
api_get_session_id(),
$to_group_id,
@ -471,7 +470,7 @@ if ($session_id == 0) {
$to_group_id = 0;
$visibility = 1;
FileManager::create_unexisting_directory(
$_course,
$course_info,
api_get_user_id(),
api_get_session_id(),
$to_group_id,
@ -490,7 +489,7 @@ if ($session_id == 0) {
$to_group_id = 0;
$visibility = 0;
FileManager::create_unexisting_directory(
$_course,
$course_info,
api_get_user_id(),
api_get_session_id(),
$to_group_id,
@ -510,7 +509,7 @@ if ($session_id == 0) {
$to_group_id = 0;
$visibility = 1;
FileManager::create_unexisting_directory(
$_course,
$course_info,
api_get_user_id(),
api_get_session_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';
$docs_and_folders = DocumentManager::get_all_document_data(
$_course,
$course_info,
$curdirpath,
$to_group_id,
null,
@ -633,13 +632,14 @@ if ($to_group_id != 0) { // Add group name after for group documents
/* Introduction section (editable by course admins) */
if (!empty($_SESSION['_gid'])) {
Display::display_introduction_section(TOOL_DOCUMENT.$_SESSION['_gid']);
if (!empty($to_group_id)) {
Display::display_introduction_section(TOOL_DOCUMENT.$to_group_id);
} else {
Display::display_introduction_section(TOOL_DOCUMENT);
}
// ACTION MENU
$moveTo = isset($_POST['move_to']) ? Security::remove_XSS($_POST['move_to']) : null;
/* MOVE FILE OR DIRECTORY */
//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(),
$curdirpath,
$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'] != '') {
@ -666,7 +666,7 @@ if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_fold
}
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();
}
}
@ -674,7 +674,7 @@ if ($is_allowed_to_edit || $group_member_with_upload_rights || is_my_shared_fold
$move_path = $document_to_move['path'];
if (!empty($document_to_move)) {
$folders = DocumentManager::get_all_document_folders(
$_course,
$course_info,
$to_group_id,
$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 (!$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();
}
}
@ -1501,16 +1501,18 @@ $column_show[] = 0;
$column_order = array();
if (count($row) == 12) {
//teacher
$column_order[2] = 8; //name
$column_order[3] = 7;
$column_order[4] = 6;
} elseif (count($row) == 10) {
//student
$column_order[1] = 6;
$column_order[2] = 5;
$column_order[3] = 4;
if (isset($row)) {
if (count($row) == 12) {
//teacher
$column_order[2] = 8; //name
$column_order[3] = 7;
$column_order[4] = 6;
} elseif (count($row) == 10) {
//student
$column_order[1] = 6;
$column_order[2] = 5;
$column_order[3] = 4;
}
}
$default_column = $is_allowed_to_edit ? 2 : 1;

@ -39,7 +39,7 @@ $session = array();
$user_name = $user_info['complete_name'];
$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();

@ -136,7 +136,7 @@ header('Pragma: no-cache');
$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
$frameheight = 135;
if ($is_courseAdmin) {
if (api_is_course_admin()) {
$frameheight = 165;
}

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

@ -27,7 +27,7 @@ $(document).ready(function () {
*/
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?
if ($_POST['action'] == 'delete_received' || $_POST['action'] == 'download_received') {
@ -56,7 +56,7 @@ function handle_multiple_actions()
// STEP 3A: deleting
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) {
if ($_GET['view'] == 'received') {
$dropboxfile->deleteReceivedWork($value);
@ -114,7 +114,7 @@ function delete_category($action, $id, $user_id = null)
$course_id = api_get_course_int_id();
global $dropbox_cnf;
global $is_courseAdmin, $is_courseTutor;
global $is_courseTutor;
if (empty($user_id)) {
$user_id = api_get_user_id();
@ -154,7 +154,7 @@ function delete_category($action, $id, $user_id = null)
$result = Database::query($sql);
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') {
$dropboxfile->deleteReceivedWork($row[$id_field]);
}
@ -492,10 +492,10 @@ function display_addcategory_form($category_name = '', $id = '', $action)
*/
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();
$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(
$_GET['view_received_category']
@ -561,7 +561,7 @@ function display_add_form()
);
}
$complete_user_list2 = CourseManager::get_coach_list_from_course_code(
$course_info['code'],
$course_info['real_id'],
api_get_session_id()
);
$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)
{
global $_course;
$course_code = $_course['sysCode'];
$is_course_member = CourseManager::is_user_subscribed_in_course($user_id, $course_code, true);
$is_course_member = CourseManager::is_user_subscribed_in_course($user_id, api_get_course_int_id(), true);
return $is_course_member;
}
@ -834,7 +831,7 @@ function store_add_dropbox()
{
global $dropbox_cnf;
global $_user;
global $_course;
$_course = api_get_course_info();
// Validating the form data
@ -1174,7 +1171,7 @@ function store_feedback()
*/
function zip_download($array)
{
global $_course;
$_course = api_get_course_info();
global $dropbox_cnf;
global $files;
@ -1351,14 +1348,16 @@ function check_number_feedback($key, $array)
*
* @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;
// The default values of the parameters
if ($course_code == '') {
$course_code = $_course['id'];
if ($courseId == '') {
$courseId = api_get_course_int_id();
}
$courseId = intval($courseId);
if ($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');
$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)."'
ORDER BY access_date DESC
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();
$course_code = api_get_course_id();
$courseId = api_get_course_int_id();
$course_info = Database::get_course_info($course_code);
$session_id = api_get_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 {
$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 */
@ -79,7 +80,7 @@ if (empty($session_id)) {
// @todo consider moving the javascripts in a function that displays the javascripts
// only when it is needed.
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 */

@ -107,7 +107,7 @@ if (isset($_POST['submitWork'])) {
}
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) {
if ($w->title == $dropbox_filename) {
@ -205,163 +205,6 @@ 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)
{
// 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']) {
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 {
$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'])) {

@ -98,7 +98,7 @@ require_once 'dropbox_init.inc.php';
// get the last time the user accessed the tool
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;
} else {
$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)) {
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') {
$dropboxfile->deleteReceivedWork($_GET['id']);
$message = get_lang('ReceivedFileDeleted');
@ -374,7 +374,7 @@ if ($action != 'add') {
}
// 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.
$number_feedback = get_total_number_feedback();
@ -525,7 +525,7 @@ if ($action != 'add') {
}
// 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.
$number_feedback = get_total_number_feedback();

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

@ -249,6 +249,7 @@ if (!empty($cancelQuestion)) {
if (!empty($clone_question) && !empty($objExercise->id)) {
$old_question_obj = Question::read($clone_question, api_get_course_int_id());
$old_question_obj->question = $old_question_obj->question.' - '.get_lang('Copy');
$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[] = '<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>
<script src=\"../plugin/hotspot/hotspot.js\" type=\"text/javascript\"></script>
<script language=\"JavaScript\" type=\"text/javascript\">
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_CODE_PATH).'plugin/hotspot/JavaScriptFlashGateway.js"></script>';
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_CODE_PATH).'plugin/hotspot/hotspot.js"></script>';
$htmlHeadXtra[] = "<script>
<!--
// Globals
// Major version of Flash required

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

@ -463,9 +463,9 @@ class Exercise
$TBL_EXERCICE_QUESTION = Database::get_course_table(TABLE_QUIZ_TEST_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
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)."'
ORDER BY question_order";
@ -475,13 +475,11 @@ class Exercise
}
$sql .= $limitCondition;
$columns = array('question', 'type', 'category', 'level', 'score', 'actions');
$result = Database::query($sql);
$questions = array();
if (Database::num_rows($result)) {
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);
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);
$question = array(
'id' => $question['id'],
'id' => $question['iid'],
'question' => $objQuestionTmp->selectTitle(),
'type' => $questionType,
'category' => Display::tag('div', '<a href="#" style="padding:0px; margin:0px;">'.$category_labels.'</a>'),
@ -908,7 +906,7 @@ class Exercise
*/
function save($type_e = '')
{
global $_course;
$_course = api_get_course_info();
$TBL_EXERCICES = Database::get_course_table(TABLE_QUIZ_TEST);
$id = $this->id;
@ -4231,7 +4229,7 @@ class Exercise
$subject = get_lang('OpenQuestionsAttempted');
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 {
$teachers = CourseManager::get_teacher_list_from_course_code($course_info['real_id']);
}
@ -4313,7 +4311,7 @@ class Exercise
$subject = get_lang('OralQuestionsAttempted');
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 {
$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);
$course_id = api_get_course_int_id();
if (!empty($course_info) && !empty($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 = '';
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 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
@ -1566,7 +1565,8 @@ function get_all_exercises($course_info = null, $session_id = 0, $check_publicat
//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');
}
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!
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']['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())) {
api_not_allowed(true);
}
@ -79,7 +79,7 @@ if (empty($track_exercise_info)) {
api_not_allowed(true);
}
$exercise_id = $track_exercise_info['id'];
$exercise_id = $track_exercise_info['iid'];
$exercise_date = $track_exercise_info['start_date'];
$student_id = $track_exercise_info['exe_user_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)." ";
$query = "SELECT attempts.question_id, answer
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
ON quizz_rel_questions.exercice_id=stats_exercices.exe_exo_id AND
quizz_rel_questions.question_id = attempts.question_id AND
quizz_rel_questions.c_id=".api_get_course_int_id()."
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()."
WHERE attempts.exe_id='".Database::escape_string($id)."' $user_restriction
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)) {
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]['total'] += $my_total_weight;
$category_was_added_for_this_test = true;
@ -597,6 +598,11 @@ foreach ($questionList as $questionId) {
//No category for this question!
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']['total'] += $my_total_weight;
}

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

@ -39,7 +39,8 @@ function tempdir($dir, $prefix = 'tmp', $mode = 0777)
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)
if (!isset ($_FILES['userFile']) || !is_uploaded_file($_FILES['userFile']['tmp_name'])) {
// upload failed

@ -18,7 +18,6 @@ $dbTable = Database::get_course_table(TABLE_DOCUMENT); // TODO: This is a global
* @return boolean Always true so far
*/
function hotpotatoes_init($base_work_dir) {
//global $_course, $_user;
$document_path = $base_work_dir.'/';
if (!is_dir($document_path)) {
if (is_file($document_path)) {
@ -132,7 +131,7 @@ function ReadFileCont($full_file_path) {
*/
function WriteFileCont($full_file_path, $content) {
// 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'].'/')) {
// 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; }

@ -281,11 +281,11 @@ if (!empty($session_id) && $session_id != '-1') {
}
$course_select_list = array();
foreach ($course_list as $item) {
$course_select_list[$item['id']] = "";
if ($item['id'] == api_get_course_int_id()) {
$course_select_list[$item['id']] = ">&nbsp;&nbsp;&nbsp;&nbsp;";
$course_select_list[$item['real_id']] = "";
if ($item['real_id'] == api_get_course_int_id()) {
$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);'));

@ -21,9 +21,9 @@ if (!$result) {
$session_id = api_get_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 {
$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);

@ -253,7 +253,7 @@ class Testcategory
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)
*/
public static function getCategoryListInfo($in_field="", $in_courseid="") {
public static function getCategoryListInfo($in_field = "", $in_courseid="") {
if (empty($in_courseid) || $in_courseid=="") {
$in_courseid = api_get_course_int_id();
}
@ -261,14 +261,17 @@ class Testcategory
$in_field = Database::escape_string($in_field);
$tabres = array();
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);
while ($row = Database::fetch_array($res)) {
$tmpcat = new Testcategory($row['iid'], $row['title'], $row['description'], $row['parent_id']);
$tabres[] = $tmpcat;
}
} 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);
while ($row = Database::fetch_array($res)) {
$tabres[] = $row[$in_field];
@ -681,7 +684,7 @@ class Testcategory
$category_list = self::getCategoryListInfo(null, $course_id);
$category_name_list = array();
if (!empty($category_list)) {
foreach($category_list as $category) {
foreach ($category_list as $category) {
$category_name_list[$category->id] = $category->name;
}
}

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

@ -197,7 +197,7 @@ function show_add_forumcategory_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']);
// Initialize the object.
@ -480,7 +480,7 @@ function show_edit_forumcategory_form($inputvalues = array())
*/
function store_forumcategory($values)
{
global $_course;
$_course = api_get_course_info();
global $_user;
$course_id = api_get_course_int_id();
@ -546,7 +546,7 @@ function store_forumcategory($values)
*/
function store_forum($values)
{
global $_course;
$_course = api_get_course_info();
$course_id = api_get_course_int_id();
$session_id = api_get_session_id();
@ -735,7 +735,7 @@ function store_forum($values)
*/
function delete_forum_forumcategory_thread($content, $id)
{
global $_course;
$_course = api_get_course_info();
$table_forums = Database::get_course_table(TABLE_FORUM);
$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)
{
global $_course;
$_course = api_get_course_info();
$constants = array('forumcategory' => TOOL_FORUM_CATEGORY, 'forum' => TOOL_FORUM, 'thread' => TOOL_FORUM_THREAD);
api_item_property_update(
$_course,
@ -2091,7 +2091,7 @@ function count_number_of_forums_in_category($cat_id)
function store_thread($values)
{
global $_user;
global $_course;
$_course = api_get_course_info();
global $current_forum;
global $origin;
@ -2704,7 +2704,7 @@ function current_qualify_of_thread($thread_id, $session_id)
*/
function store_reply($values)
{
global $_course;
$_course = api_get_course_info();
global $current_forum;
global $origin;
@ -3272,7 +3272,7 @@ function forum_not_allowed_here()
function get_whats_new()
{
global $_user;
global $_course;
$_course = api_get_course_info();
$table_posts = Database :: get_course_table(TABLE_FORUM_POST);
$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']) {
$sql = "SELECT * FROM ".$tracking_last_tool_access."
WHERE access_user_id='".Database::escape_string(
$_user['user_id']
)."' AND access_cours_code='".Database::escape_string(
$_course['sysCode']
)."' AND access_tool='".Database::escape_string($tool)."'";
WHERE access_user_id='".Database::escape_string($_user['user_id'])."' AND c_id='".$course_id."' AND access_tool='".Database::escape_string($tool)."'";
$result = Database::query($sql);
$row = Database::fetch_array($result);
$_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())
{
global $_course;
$_course = api_get_course_info();
$user_id = api_get_user_id();
$subject = get_lang('NewForumPost').' - '.$_course['official_code'];
if (isset($thread_information) && is_array($thread_information)) {
@ -3770,7 +3766,7 @@ function move_post_form()
*/
function store_move_post($values)
{
global $_course;
$_course = api_get_course_info();
$table_forums = Database :: get_course_table(TABLE_FORUM);
$table_threads = Database :: get_course_table(TABLE_FORUM_THREAD);
@ -3899,7 +3895,7 @@ function store_move_post($values)
*/
function store_move_thread($values)
{
global $_course;
$_course = api_get_course_info();
$table_forums = Database :: get_course_table(TABLE_FORUM);
$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)
{
global $_course;
$_course = api_get_course_info();
$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)
{
global $_course;
$_course = api_get_course_info();
$table_forum_attachment = Database::get_course_table(TABLE_FORUM_ATTACHMENT);
$course_id = api_get_course_int_id();
@ -4293,7 +4289,7 @@ function get_attachment($post_id)
*/
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);
$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)
{
global $_course, $_user;
global $_user;
$_course = api_get_course_info();
// The content of the mail
$thread_link = api_get_path(WEB_CODE_PATH).'forum/viewthread.php?'.api_get_cidreq(

@ -19,7 +19,7 @@ api_block_anonymous_users();
block_students();
$select_cat=isset($_GET['selectcat']) ? Security::remove_XSS($_GET['selectcat']) : '';
$is_allowedToEdit = $is_courseAdmin;
$is_allowedToEdit = api_is_course_admin();
$evaladd = new Evaluation();
$evaladd->set_user_id($_user['user_id']);
if (isset ($_GET['selectcat']) && (!empty ($_GET['selectcat']))) {
@ -38,24 +38,24 @@ if ($form->validate()) {
$eval->set_name($values['name']);
$eval->set_description($values['description']);
$eval->set_user_id($values['hid_user_id']);
if (!empty ($values['hid_course_code'])) {
$eval->set_course_code($values['hid_course_code']);
}
//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']);
$parent_cat = Category :: load($values['hid_category_id']);
$parent_cat = Category :: load($values['hid_category_id']);
$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'];
$eval->set_weight($values['weight']);
$eval->set_weight($values['weight']);
$eval->set_max($values['max']);
if (empty ($values['visible'])) {
$visible = 0;
} else {
@ -94,18 +94,18 @@ $htmlHeadXtra[] = '<script type="text/javascript">
$(document).ready( function() {
$("#hid_category_id").change(function(){
$("#hid_category_id option:selected").each(function () {
var cat_id = $(this).val();
$.ajax({
url: "'.api_get_path(WEB_AJAX_PATH).'gradebook.ajax.php?a=get_gradebook_weight",
$.ajax({
url: "'.api_get_path(WEB_AJAX_PATH).'gradebook.ajax.php?a=get_gradebook_weight",
data: "cat_id="+cat_id,
success: function(return_value) {
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
*/
public function exportCompleteReportDOC($data) {
global $_course;
$_course = api_get_course_info();
$filename = 'gb_results_'.$_course['code'].'_'.gmdate('YmdGis');
$filepath = api_get_path(SYS_ARCHIVE_PATH).$filename;
//build the results

@ -90,8 +90,9 @@ class Result
if ($info_verified_if_exist_evaluation != 0 ) {
if (api_get_session_id()) {
$sql_course_rel_user = 'SELECT course_code, id_user as user_id, status FROM '.$tbl_session_rel_course_user.'
WHERE status=0 AND course_code="'.api_get_course_id().'" AND id_session='.api_get_session_id();
$sql_course_rel_user = 'SELECT course_code, id_user as user_id, status
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 {
$sql_course_rel_user = 'SELECT course_code, user_id, status
FROM '.$tbl_course_rel_course.'

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

@ -9,7 +9,7 @@
* returns users within a course given by param
* @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_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_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';
$current_session = api_get_session_id();
$course_id = Database::escape_string($course_id);
$courseInfo = api_get_course_info($course_id);
$courseId = Database::escape_string($courseId);
if (!empty($current_session)) {
$sql = "SELECT user.user_id, user.username, lastname, firstname, official_code
FROM $tbl_session_course_user as scru, $tbl_user as user
WHERE scru.id_user=user.user_id
AND scru.status=0
AND scru.course_code='$course_id' AND id_session = '$current_session' $order_clause ";
AND scru.status=0
AND scru.c_id ='$courseId' AND id_session = '$current_session'
$order_clause ";
} else {
$sql = 'SELECT user.user_id, user.username, lastname, firstname, official_code
FROM '.$tbl_course_user.' as course_rel_user, '.$tbl_user.' as user
WHERE course_rel_user.user_id=user.user_id AND
course_rel_user.status='.STUDENT.' AND
course_rel_user.c_id = '.$courseInfo['real_id'].'
course_rel_user.c_id = '.$courseId.'
'.$order_clause;
}
$result = Database::query($sql);
return get_user_array_from_sql_result($result);
}
function get_user_array_from_sql_result($result) {
$a_students = array();
while ($user = Database::fetch_array($result)) {
@ -61,11 +60,12 @@ function get_all_users ($evals = array(), $links = array()) {
foreach ($evals as $eval) {
$coursecode = $eval->get_course_code();
$courseInfo = api_get_course_info($coursecode);
// evaluation in course
if (isset($coursecode) && !empty($coursecode)) {
if (!array_key_exists($coursecode,$coursecodes)) {
$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
$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
FROM '.$tbl_res.' as res, '.$tbl_user.' as user
WHERE res.evaluation_id = '.intval($eval->get_id())
.' AND res.user_id = user.user_id';
WHERE res.evaluation_id = '.intval($eval->get_id()).' AND res.user_id = user.user_id';
$result = Database::query($sql);
$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) {
// links are always in a course
$coursecode = $link->get_course_code();
$courseInfo = api_get_course_info($coursecode);
if (!array_key_exists($coursecode,$coursecodes)) {
$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);

@ -115,7 +115,7 @@ if (isset($_GET['action'])) {
/* Main Display Area */
$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

@ -149,7 +149,7 @@ switch ($action) {
foreach($flat_list as $lp_id => $lp_item) {
$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';
$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'])) {
$lp_date = api_get_local_time($lp_item['created_on']);
$image = 'new.gif';
@ -271,7 +271,7 @@ switch ($action) {
$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';
$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'])) {
$lp_date = api_get_local_time($lp_item['created_on']);
$image = 'new.gif';
@ -396,7 +396,7 @@ switch ($action) {
foreach($flat_list as $lp_id => $lp_item) {
$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';
$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'])) {
$lp_date = api_get_local_time($lp_item['created_on']);
$image = 'new.gif';

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

@ -313,7 +313,7 @@ class AnnouncementManager
$file_comment = null,
$end_date = null
) {
global $_course;
$_course = api_get_course_info();
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
// filter data
@ -408,7 +408,7 @@ class AnnouncementManager
$file = array(),
$file_comment = ''
) {
global $_course;
$_course = api_get_course_info();
// database definitions
$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 = '')
{
global $_course;
$_course = api_get_course_info();
$course_id = api_get_course_int_id();
$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)
{
global $_course;
$_course = api_get_course_info();
$tbl_announcement_attachment = Database::get_course_table(TABLE_ANNOUNCEMENT_ATTACHMENT);
$return = 0;
$announcement_id = intval($announcement_id);
@ -1264,7 +1264,7 @@ class AnnouncementManager
*/
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);
$return = 0;
$course_id = api_get_course_int_id();

@ -306,7 +306,7 @@ class Attendance
* @return int last id
*/
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);
$table_link = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
$session_id = api_get_session_id();
@ -446,6 +446,9 @@ class Attendance
*/
public function get_users_rel_course($attendance_id = 0) {
$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();
if (!empty($current_session_id)) {
@ -465,9 +468,9 @@ class Attendance
$user_status_in_course = null;
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 {
$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

@ -343,28 +343,26 @@ class AuthLib {
* @param string Course code
* @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);
$course_info = api_get_course_info($course_code);
$course_id = $course_info['real_id'];
// protect variables
$current_user_id = api_get_user_id();
$course_code = Database::escape_string($course_code);
$courseId = Database::escape_string($courseId);
$result = true;
// we check (once again) if the user is not course administrator
// because the course administrator cannot unsubscribe himself
// (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);
$number_of_rows = Database::num_rows($result_check);
if ($number_of_rows > 0) {
$result = false;
}
CourseManager::unsubscribe_user($current_user_id, $course_code);
CourseManager::unsubscribe_user($current_user_id, $courseId);
return $result;
}
@ -555,7 +553,7 @@ class AuthLib {
while ($row = Database::fetch_array($result)) {
$row['registration_code'] = !empty($row['registration_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') {
$row['tutor_name'] = get_lang('NoManager');
@ -626,7 +624,7 @@ class AuthLib {
while ($row = Database::fetch_array($result_find)) {
$row['registration_code'] = !empty($row['registration_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(
'code' => $row['code'],
@ -663,8 +661,7 @@ class AuthLib {
} else {
$status_user_in_new_course = null;
}
$courseInfo = api_get_course_info($course_code);
if (CourseManager::add_user_to_course($user_id, $courseInfo['real_id'], $status_user_in_new_course)) {
if (CourseManager::add_user_to_course($user_id, $all_course_information['real_id'], $status_user_in_new_course)) {
$send = api_get_course_setting('email_alert_to_teacher_on_new_user_in_course', $course_code);
if ($send == 1) {
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)
{
global $_user;
global $_course;
$_course = api_get_course_info();
$blog_table_attachment = Database::get_course_table(TABLE_BLOGS_ATTACHMENT);
$upload_ok = true;
@ -413,7 +413,7 @@ class Blog
$task_id = 'NULL'
) {
global $_user;
global $_course;
$_course = api_get_course_info();
global $blog_table_attachment;
$upload_ok = true;
@ -2375,7 +2375,7 @@ class Blog
public static function display_form_user_subscribe($blog_id)
{
// Init
global $_course;
$_course = api_get_course_info();
$is_western_name_order = api_is_western_name_order();
$currentCourse = $_course['sysCode'];
$tbl_users = Database::get_main_table(TABLE_MAIN_USER);
@ -2415,7 +2415,7 @@ class Blog
$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();
// 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)
{
global $_course;
$_course = api_get_course_info();
$blog_table_attachment = Database::get_course_table(TABLE_BLOGS_ATTACHMENT);
$blog_id = Database::escape_string($blog_id);
$comment_id = Database::escape_string($comment_id);

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

@ -353,7 +353,8 @@ class CourseManager
* @return mixed False on user ID not found, void otherwise
* @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 (!is_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.")";
Database::query($sql_delete_mail_queue);
$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.")";
Database::query($item_property_lp_subscription);
@ -427,7 +427,7 @@ class CourseManager
if (!empty($session_id)) {
// Delete in table session_rel_course_rel_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) {
// check if a user is register in the session with other course
@ -448,9 +448,10 @@ class CourseManager
WHERE id = '".$session_id."'");
// 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
$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 {
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);
$courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['real_id'];
if (empty($user_id) || empty ($course_code)) {
return false;
@ -506,7 +508,7 @@ class CourseManager
// Check whether the user has not been already subscribed to the course.
if (empty($session_id)) {
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.
}
}
@ -515,7 +517,7 @@ class CourseManager
// 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)."
WHERE course_code = '".$course_code."'
WHERE c_id = '".$courseId."'
AND id_session ='".$session_id."'
AND id_user = '".$user_id."'")) > 0) {
return false;
@ -535,29 +537,30 @@ class CourseManager
// Add him/her in the table session_rel_course_rel_user
@Database::query("INSERT INTO ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)."
SET id_session ='".$session_id."',
course_code = '".$_SESSION['_course']['id']."',
c_id = '".$courseId."',
id_user = '".$user_id."'");
// 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."'");
// 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
$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
$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
$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 {
$course_sort = self::userCourseSort($user_id, $course_code);
$course_info = api_get_course_info($course_code);
$course_sort = self::userCourseSort($user_id, $courseId);
$result = @Database::query("INSERT INTO ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
SET
c_id = ".$course_info['real_id'].",
course_code = '$course_code',
c_id = ".$courseId.",
user_id = '$user_id',
status = '".$status."',
sort = '". ($course_sort)."'");
@ -703,7 +706,7 @@ class CourseManager
if (!empty($courses_temp)) {
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);
$data = array();
$sql_nb_cours = "SELECT course_rel_user.course_code, course.title, course.id, course.db_name, course.id as real_id
FROM $tbl_course_user as course_rel_user
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";
$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
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()) {
$tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id();
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
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
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'
@ -813,7 +819,7 @@ class CourseManager
$result_nb_cours = Database::query($sql_nb_cours);
if (Database::num_rows($result_nb_cours) > 0) {
while ($row = Database::fetch_array($result_nb_cours,'ASSOC')) {
$data[$row['course_code']] = $row;
$data[$row['c_id']] = $row;
}
}
return $data;
@ -826,7 +832,7 @@ class CourseManager
* @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
*/
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);
@ -836,14 +842,10 @@ class CourseManager
$session_id = intval($session_id);
}
$condition_course = '';
$condition_course_id = null;
if (isset($course_code)) {
$course_code = Database::escape_string($course_code);
$condition_course = ' AND course_code = "'.$course_code.'" ';
$courseInfo = api_get_course_info($course_code);
$condition_course_id = ' AND c_id = "'.$courseInfo['real_id'].'" ';
if (isset($courseId)) {
$courseId = intval($courseId);
$condition_course_id = ' AND c_id = "'.$courseId.'" ';
}
$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).
' WHERE id_user = '.$user_id.' '.$condition_course.' ')) > 0) {
' WHERE id_user = '.$user_id.' '.$condition_course_id.' ')) > 0) {
return true;
}
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;
}
@ -904,13 +906,15 @@ class CourseManager
*
* @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))) {
return false;
}
$course_code = Database::escape_string($course_code);
$session_id = intval($session_id);
$courseId = Database::escape_string($courseId);
if ($session_id == '') {
$result = Database::fetch_array(Database::query("SELECT *
@ -919,7 +923,7 @@ class CourseManager
ON course.id = course_user.c_id
WHERE course_user.user_id = '$user_id' 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);
}
@ -930,7 +934,7 @@ class CourseManager
// A user?
if (Database::num_rows(Database::query("SELECT id_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'"))) {
return true;
}
@ -938,16 +942,16 @@ class CourseManager
// A course coach?
if (Database::num_rows(Database::query("SELECT id_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 course_code='$course_code'"))) {
AND c_id ='$courseId'"))) {
return true;
}
// A session coach?
if (Database::num_rows(Database::query("SELECT id_coach
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'"))) {
return true;
}
@ -983,6 +987,7 @@ class CourseManager
}
$courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['real_id'];
$filter_by_status_condition = null;
@ -991,7 +996,7 @@ class CourseManager
$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
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;
$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 .= ' 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
ON user.user_id = course_rel_user.user_id AND
course_rel_user.relation_type <> '.COURSE_RELATION_TYPE_RRHH;
if (!empty($course_code)) {
$sql .= " AND course_rel_user.c_id = ".$courseInfo['real_id'];
$sql .= " AND course_rel_user.c_id = ".$courseId;
} else {
$course_table = Database::get_main_table(TABLE_MAIN_COURSE);
$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 != '') {
$filter_by_status = intval($filter_by_status);
@ -1103,7 +1109,7 @@ class CourseManager
}
$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;
$registered_users_with_extra_field = 0;
@ -1130,7 +1136,7 @@ class CourseManager
} else {
$report_info['course'] = $user['title'];
$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);
@ -1138,9 +1144,9 @@ class CourseManager
if (isset($category[0]) && $category[0]->is_certificate_available($user['user_id'])) {
$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'] = $progress."%";
@ -1176,13 +1182,14 @@ class CourseManager
$course_code = Database::escape_string($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 ';
$where = array();
if (!empty($session_id)) {
$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
AND session_course_user.course_code = "'.$course_code.'"
AND session_course_user.c_id = "'.$courseId.'"
AND session_course_user.id_session = '.$session_id.'
INNER JOIN '.Database::get_main_table(TABLE_MAIN_SESSION_USER).' as su
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.'
)';
$where[] = ' session_course_user.course_code IS NOT NULL ';
$where[] = ' session_course_user.c_id IS NOT NULL ';
} else {
$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.'
AND course_rel_user.c_id ="'.$courseInfo['real_id'].'"';
$where[] = ' course_rel_user.course_code IS NOT NULL ';
AND course_rel_user.c_id ="'.$courseId.'"';
$where[] = ' course_rel_user.c_id IS NOT NULL ';
}
$multiple_access_url = api_get_multiple_access_url();
@ -1225,19 +1232,19 @@ class CourseManager
* @param int Session ID
* @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))) {
return array();
}
$course_code = Database::escape_string($course_code);
$courseId = Database::escape_string($courseId);
$users = array();
// 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).
' 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)) {
$user_info = api_get_user_info($user['id_user']);
$user_info['status'] = $user['status'];
@ -1268,11 +1275,9 @@ class CourseManager
* @param boolean $full list to true if we want sessions students too
* @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);
$course_code = Database::escape_string($course_code);
$courseInfo = api_get_course_info($course_code);
$courseId = Database::escape_string($courseId);
$students = array();
@ -1280,14 +1285,13 @@ class CourseManager
if (empty($group_id)) {
// students directly subscribed to the course
$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);
while ($student = Database::fetch_array($rs)) {
$students[$student['user_id']] = $student;
}
} else {
$course_info = api_get_course_info($course_code);
$students = GroupManager::get_users($group_id, false, $course_info['real_id']);
$students = GroupManager::get_users($group_id, false, $courseId);
$students = array_flip($students);
}
}
@ -1296,7 +1300,7 @@ class CourseManager
if ($with_session) {
$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) {
$sql_query .= ' AND id_session = '.$session_id;
}
@ -1364,7 +1368,7 @@ class CourseManager
* @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)) {
$session_id = intval($session_id);
@ -1372,10 +1376,10 @@ class CourseManager
$session_id = api_get_session_id();
}
if (!empty($course_code)) {
$course_code = Database::escape_string($course_code);
if (!empty($courseId)) {
$courseId = Database::escape_string($courseId);
} else {
$course_code = api_get_course_id();
$courseId = api_get_course_int_id();
}
$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
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);
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) {
$coachs_course = self::get_coachs_from_course($session_id, $course_code);
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, $courseId);
$course_coachs = array();
if (is_array($coachs_course)) {
@ -1418,10 +1422,10 @@ class CourseManager
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 = '';
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();
foreach ($coaches as $coach) {
$coach_list[] = $coach['complete_name'];
@ -1536,19 +1540,19 @@ class CourseManager
$table_stats_uploads = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_UPLOADS);
$courseInfo = api_get_course_info($code);
$code = Database::escape_string($code);
$courseId = $courseInfo['real_id'];
// Unsubscribe all classes from the course
$sql = "DELETE FROM $table_course_class WHERE course_code='".$code."'";
Database::query($sql);
// 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);
// 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);
$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);
$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
$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);
$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);
$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);
$sql = "DELETE FROM $table_stats_access WHERE access_cours_code = '".$code."'";
$sql = "DELETE FROM $table_stats_access WHERE c_id = '".$courseId."'";
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);
$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);
$sql = "DELETE FROM $table_stats_online WHERE course = '".$code."'";
Database::query($sql);
$sql = "DELETE FROM $table_stats_default WHERE default_cours_code = '".$code."'";
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);
$sql = "DELETE FROM $table_stats_links WHERE links_cours_id = '".$code."'";
$sql = "DELETE FROM $table_stats_links WHERE c_id = '".$courseId."'";
Database::query($sql);
$sql = "DELETE FROM $table_stats_uploads WHERE upload_cours_id = '".$code."'";
Database::query($sql);
@ -1593,11 +1597,11 @@ class CourseManager
if (api_get_current_access_url_id() != -1) {
$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
$sql = "DELETE FROM $table_course WHERE code='".$code."'";
$sql = "DELETE FROM $table_course WHERE id = '".$courseId."'";
Database::query($sql);
// delete extra course fields
@ -1640,7 +1644,6 @@ class CourseManager
// Add event to system log
$user_id = api_get_user_id();
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
* @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))) {
return false;
}
$course_code = Database::escape_string($course_code);
$courseId = Database::escape_string($courseId);
$TABLECOURSE = Database::get_main_table(TABLE_MAIN_COURSE);
$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
FROM '.$TABLECOURSUSER.' as cu, '.$TABLECOURSE.' as course
@ -1912,7 +1915,6 @@ class CourseManager
$special_course_list = self::get_special_course_list();
$with_special_courses = $without_special_courses = '';
if (!empty($special_course_list)) {
$sc_string = '"'.implode('","',$special_course_list).'"';
@ -1959,7 +1961,7 @@ class CourseManager
if ($include_sessions === true) {
$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
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);
while ($row = Database::fetch_array($r, 'ASSOC')) {
if (!in_array($row['real_id'], $codes)) {
@ -2030,11 +2032,11 @@ class CourseManager
/**
* Get coachs' emails by session
* @param int session id
* @param string course code
* @param int course id
* @return array array(email => name_tutor) by coach
* @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_user = Database::get_main_table(TABLE_MAIN_USER);
@ -2043,7 +2045,7 @@ class CourseManager
$course_code = Database::escape_string($course_code);
$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);
if (Database::num_rows($rs) > 0) {
@ -2057,7 +2059,6 @@ class CourseManager
$rs_user = Database::query($sql);
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']));
$coachs_emails[] = $mail_tutor;
}
@ -3283,7 +3284,7 @@ class CourseManager
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);
$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['coaches'] = $course_coachs;
}
@ -3403,7 +3404,7 @@ class CourseManager
if (empty($session_id)) {
$table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$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);
if (Database::num_rows($result) > 0 ) {
$result = Database::fetch_array($result);
@ -3450,7 +3451,7 @@ class CourseManager
} else {
$table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$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);
}
}
@ -3699,18 +3700,14 @@ class CourseManager
$today_diff = api_get_utc_datetime($today_diff);
* */
//WHERE login_course_date <= '$today' AND login_course_date >= '$today_diff'
//$table_course_access table uses the now() and interval ...
$sql = "SELECT COUNT(course_access_id) course_count, a.course_code, visibility ".
$sql = "SELECT COUNT(course_access_id) course_count, a.c_id, visibility ".
"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".
" login_course_date <= now() AND ".
" login_course_date > DATE_SUB(now(), INTERVAL $days DAY) AND".
" visibility <> '".COURSE_VISIBILITY_CLOSED."'".
" GROUP BY course_code".
" GROUP BY a.c_id".
" ORDER BY course_count DESC".
" LIMIT $limit";
@ -3727,7 +3724,7 @@ class CourseManager
$ajax_url = api_get_path(WEB_AJAX_PATH).'course.ajax.php?a=add_course_vote';
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']['go_to_course_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
$course_link_table = Database::get_course_table(TABLE_LINK);
$course_item_property_table = Database::get_course_table(TABLE_ITEM_PROPERTY);
switch ($course_tool_category) {
case TOOL_AUTHORING:
$sql_links = "SELECT tl.*, tip.visibility

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

@ -1194,8 +1194,8 @@ class Display
$course_info['id_session'] = intval($course_info['id_session']);
// 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)
WHERE access_cours_code = '".$course_code."' AND
$sqlLastTrackInCourse = "SELECT * FROM $t_track_e_access USE INDEX (c_id, access_user_id)
WHERE c_id = ".$course_id." AND
access_user_id = '$user_id' AND
access_session_id ='".$course_info['id_session']."'";
$resLastTrackInCourse = Database::query($sqlLastTrackInCourse);

@ -1336,7 +1336,7 @@ class DocumentManager
//3. Checking if user exist in course/session
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;
}
@ -1347,7 +1347,7 @@ class DocumentManager
} else {
$user_status = SessionManager::get_user_status_in_course_session(
$user_id,
$course_info['code'],
$course_info['real_id'],
$session_id
);
if (in_array($user_status, array('0', '2', '6'))) {
@ -2966,7 +2966,7 @@ class DocumentManager
if (!$user_in_course) {
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;
}
//Check if course is open then we can consider that the student is regitered to the course
@ -2976,7 +2976,7 @@ class DocumentManager
} else {
$user_status = SessionManager::get_user_status_in_course_session(
$user_id,
$course_info['code'],
$course_info['real_id'],
$session_id
);
//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_OPEN = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_OPEN);
$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_LINKS = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LINKS);
$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_DEFAULT = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_DEFAULT);
@ -111,7 +110,7 @@ function event_access_course()
$id_session = api_get_session_id();
$now = api_get_utc_datetime();
$_cid = api_get_course_id();
$courseId = api_get_course_int_id();
$user_id = api_get_user_id();
if ($user_id) {
@ -119,19 +118,19 @@ function event_access_course()
} else {
$user_id = "0"; // no one
}
$sql = "INSERT INTO ".$TABLETRACK_ACCESS." (access_user_id, access_cours_code, access_date, access_session_id) VALUES
(".$user_id.", '".$_cid."', '".$now."','".$id_session."')";
$res = Database::query($sql);
$sql = "INSERT INTO ".$TABLETRACK_ACCESS." (access_user_id, c_id, access_date, access_session_id) VALUES
(".$user_id.", '".$courseId."', '".$now."','".$id_session."')";
Database::query($sql);
// added for "what's new" notification
$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;
$res = Database::query($sql);
WHERE access_user_id = $user_id AND c_id = '$courseId' AND access_tool IS NULL AND access_session_id=".$id_session;
Database::query($sql);
if (Database::affected_rows() == 0) {
$sql = "INSERT INTO $TABLETRACK_LASTACCESS (access_user_id, access_cours_code, access_date, access_session_id)
VALUES (".$user_id.", '".$_cid."', '$now', '".$id_session."')";
$res = Database::query($sql);
$sql = "INSERT INTO $TABLETRACK_LASTACCESS (access_user_id, c_id, access_date, access_session_id)
VALUES (".$user_id.", '".$courseId."', '$now', '".$id_session."')";
Database::query($sql);
}
// end "what's new" notification
return 1;
@ -155,11 +154,12 @@ function event_access_tool($tool, $id_session = 0)
{
global $_configuration;
global $_user;
global $_cid;
global $TABLETRACK_ACCESS;
global $_course;
$_course = api_get_course_info();
global $TABLETRACK_LASTACCESS; //for "what's new" notification
$courseId = api_get_course_int_id();
$id_session = api_get_session_id();
$tool = Database::escape_string($tool);
$reallyNow = api_get_utc_datetime();
@ -176,28 +176,28 @@ function event_access_tool($tool, $id_session = 0)
if ($pos !== false || $pos2 !== false) {
$sql = "INSERT INTO ".$TABLETRACK_ACCESS."
(access_user_id,
access_cours_code,
c_id,
access_tool,
access_date,
access_session_id
)
VALUES
(".$user_id.",".// Don't add ' ' around value, it's already done.
"'".$_cid."' ,
"'".$courseId."' ,
'".$tool."',
'".$reallyNow."',
'".$id_session."')";
$res = Database::query($sql);
Database::query($sql);
}
// "what's new" notification
$sql = "UPDATE $TABLETRACK_LASTACCESS
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;
$res = Database::query($sql);
WHERE access_user_id = ".$user_id." AND c_id = '".$courseId."' AND access_tool = '".$tool."' AND access_session_id=".$id_session;
Database::query($sql);
if (Database::affected_rows() == 0) {
$sql = "INSERT INTO $TABLETRACK_LASTACCESS (access_user_id,access_cours_code,access_tool, access_date, access_session_id)
VALUES (".$user_id.", '".$_cid."' , '$tool', '$reallyNow', $id_session)";
$res = Database::query($sql);
$sql = "INSERT INTO $TABLETRACK_LASTACCESS (access_user_id, c_id, access_tool, access_date, access_session_id)
VALUES (".$user_id.", '".$courseId."' , '$tool', '$reallyNow', $id_session)";
Database::query($sql);
}
return 1;
}
@ -222,11 +222,11 @@ function event_download($doc_url)
$reallyNow = api_get_utc_datetime();
$user_id = "'".api_get_user_id()."'";
$_cid = api_get_course_id();
$_cid = api_get_course_int_id();
$sql = "INSERT INTO $tbl_stats_downloads (
down_user_id,
down_cours_id,
c_id,
down_doc_path,
down_date,
down_session_id
@ -287,7 +287,9 @@ function event_upload($doc_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();
if (isset($_user['user_id']) && $_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."
( links_user_id,
links_cours_id,
c_id,
links_link_id,
links_date,
links_session_id
) VALUES (
".$user_id.",
'".api_get_course_id()."',
'".api_get_course_int_id()."',
'".Database::escape_string($link_id)."',
'".$reallyNow."',
'".api_get_session_id()."'
)";
$res = Database::query($sql);
Database::query($sql);
return 1;
}
@ -1602,17 +1604,17 @@ function get_answered_questions_from_attempt($exe_id, $objExercise) {
* @param $user_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();
$course_code = Database::escape_string($course_code);
$courseId = Database::escape_string($courseId);
$user_id = Database::escape_string($user_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)
VALUES('".$course_code."', '".$user_id."', '$time', '$time', '1', '".$session_id."')";
$sql = "INSERT INTO $course_tracking_table(c_id, user_id, login_course_date, logout_course_date, counter, session_id)
VALUES('".$courseId."', '".$user_id."', '$time', '$time', '1', '".$session_id."')";
Database::query($sql);
//Course catalog stats modifications see #4191

@ -289,7 +289,8 @@ function FileUpload($resourceType, $currentFolder, $sCommand)
if ($sErrorNumber == '0') {
// While we are in a course: Registering the newly uploaded file in the course's database.
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/';
$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.
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/';
$to_group_id = 0;

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

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

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

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

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

@ -186,7 +186,7 @@ class GroupManager
*/
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);
$session_id = api_get_session_id();
@ -327,7 +327,7 @@ class GroupManager
*/
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());
$obj = new UserGroup();
$classes = $obj->get_usergroup_in_course($options);
@ -916,7 +916,7 @@ class GroupManager
*/
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 = array_map('intval', $group_ids);
@ -1162,10 +1162,7 @@ class GroupManager
*/
public static function can_user_subscribe($user_id, $group_id)
{
global $_course;
$course_code = $_course['sysCode'];
$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 :: number_of_students($group_id) < self :: maximum_number_of_students($group_id));
if ($category['groups_per_user'] == self::GROUP_PER_MEMBER_NO_LIMIT) {
@ -1279,7 +1276,7 @@ class GroupManager
$course_id = api_get_course_int_id();
$table_group_user = Database :: get_course_table(TABLE_GROUP_USER);
if (!empty($user_ids)) {
foreach ($user_ids as $index => $user_id) {
foreach ($user_ids as $user_id) {
$user_id = Database::escape_string($user_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."')";
@ -1407,7 +1404,7 @@ class GroupManager
*/
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);
$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]);
$groups_per_user = $category['groups_per_user'];

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

@ -323,7 +323,7 @@ class Login
global $_user;
global $_cid;
global $_course;
$_course = api_get_course_info();
global $_real_cid;
global $_courseUser;
@ -386,8 +386,6 @@ class Login
// Database Table Definitions
$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'])) {
$_SESSION['id_session'] = intval($_GET['id_session']);
@ -402,7 +400,7 @@ class Login
if (!isset($_SESSION['login_as'])) {
//Course login
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 {
@ -486,10 +484,10 @@ class Login
//But only if the login date is < than now + max_life_time
$sql = "SELECT course_access_id FROM $course_tracking_table
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
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);
if (Database::num_rows($result) > 0) {
@ -500,8 +498,8 @@ class Login
//error_log($sql);
Database::query($sql);
} else {
$sql = "INSERT INTO $course_tracking_table (course_code, user_id, login_course_date, logout_course_date, counter, session_id)" .
"VALUES('" . $course_code . "', '" . $_user['user_id'] . "', '$time', '$time', '1','" . api_get_session_id() . "')";
$sql = "INSERT INTO $course_tracking_table (c_id, user_id, login_course_date, logout_course_date, counter, session_id)" .
"VALUES('" . $_real_cid . "', '" . $_user['user_id'] . "', '$time', '$time', '1','" . api_get_session_id() . "')";
//error_log($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 ?
$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);
//Session coach, session admin, course coach admin
$sql = "SELECT session.id_coach, session_admin_id, session_rcru.id_user
FROM $tbl_session session, $tbl_session_course_user session_rcru
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_session = $session_id AND
session_rcru.status = 2";
@ -734,7 +731,7 @@ class Login
static function init_group($group_id, $reset)
{
global $_cid;
global $_course;
$_course = api_get_course_info();
global $_gid;
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;
}
//global $_course;
global $_course;
$_course = Session::read('_course');
if ($_course == '-1') $_course = array();
return $_course;
}
@ -2087,45 +2086,6 @@ function api_get_session_condition($session_id, $and = true, $with_base_content
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.
*
@ -2335,7 +2295,7 @@ function api_get_user_platform_status($user_id = false) {
if ($session_id && $course_id) {
$session_status = array();
$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) {
case 0:
$session_status['status'] = 'student';
@ -2379,19 +2339,19 @@ function api_get_user_platform_status($user_id = false) {
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_rel_course_rel_user_table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$user_id = intval($user_id);
$session_id = intval($session_id);
$course_code = Database::escape_string($course_code);
$courseId = Database::escape_string($courseId);
$sql = "SELECT DISTINCT id
FROM $session_table INNER JOIN $session_rel_course_rel_user_table session_rc_ru
ON session.id = session_rc_ru.id_session
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.id_session = '$session_id'";
$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
* @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)) {
$session_id = intval($session_id);
} else {
$session_id = api_get_session_id();
}
if (!empty($course_code)) {
$course_code = Database::escape_string($course_code);
if (!empty($courseId)) {
$courseId = Database::escape_string($courseId);
} else {
$course_code = api_get_course_id();
$courseId = api_get_course_int_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
ON session.id = session_rc_ru.id_session
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.id_session = '$session_id'";
$result = Database::query($sql);
@ -2807,7 +2767,7 @@ function api_is_allowed_to_session_edit($tutor = false, $coach = false) {
* @version 1.0
*/
function api_is_allowed($tool, $action, $task_id = 0) {
global $_course;
$_course = api_get_course_info();
global $_user;
if (api_is_course_admin()) {
@ -3569,7 +3529,7 @@ function api_get_language_id($language) {
**/
function api_get_language_from_type($lang_type){
global $_user;
global $_course;
$_course = api_get_course_info();
$toreturn = false;
switch ($lang_type) {
case 'platform_lang' :
@ -4767,6 +4727,7 @@ function api_is_course_visible_for_user($userid = null, $cid = null) {
}
$cid = Database::escape_string($cid);
$courseInfo = api_get_course_info($cid);
$courseId = $courseInfo['real_id'];
global $is_platformAdmin;
$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
relation_type <> '".COURSE_RELATION_TYPE_RRHH."'
AND
course_code = ".$courseInfo['real_id']."
course_code = ".$courseId."
LIMIT 1";
$result = Database::query($sql);
@ -4834,7 +4795,7 @@ function api_is_course_visible_for_user($userid = null, $cid = null) {
$tbl_session as session
INNER JOIN $tbl_session_course
ON session_rel_course.id_session = session.id
AND session_rel_course.course_code = '$cid'
AND session_rel_course.c_id = '$courseId'
LIMIT 1";
$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.
$sql = "SELECT 1
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'
LIMIT 1";
@ -4891,7 +4852,7 @@ function api_is_course_visible_for_user($userid = null, $cid = null) {
$sql = "SELECT id
FROM $tbl_session_course_user
WHERE id_user = '$userid'
AND course_code = '$cid'
AND c_id = '$courseId'
LIMIT 1";
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_info = api_get_user_info($user_id);
$user_roles[] = $user_info['status'];*/
$courseInfo = api_get_course_info($course_code);
$url_id = api_get_current_access_url_id();
if (api_is_platform_admin_by_id($user_id, $url_id)) {
$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($session_id)) {
if (CourseManager::is_course_teacher($user_id, $courseInfo['real_id'])) {
if (CourseManager::is_course_teacher($user_id, $courseId)) {
$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;
}
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;
}
} 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 ($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;
@ -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();
if (empty($course_code)) {
$course_code = api_get_course_id();
if (empty($courseId)) {
$courseId = api_get_course_int_id();
}
if (empty($session_id)) {
@ -6427,7 +6383,7 @@ function api_coach_can_edit_view_results($course_code = null, $session_id = null
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)) {
return api_get_setting('session_tutor_reports_visibility') == 'true';

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

@ -12,8 +12,8 @@
* groups).
* @package chamilo.library.session
*/
class SessionManager {
class SessionManager
{
//See BT#4871
CONST SESSION_CHANGE_USER_REASON_SCHEDULE = 1;
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());
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
$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)
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_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)
INNER JOIN $tbl_user u ON (s.id_coach = u.user_id) ".
$where;
@ -578,7 +580,7 @@ class SessionManager {
FROM $tbl_session s
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_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)
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)
@ -731,109 +733,7 @@ class SessionManager {
}
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
* @author Carlos Vargas from existing code
@ -844,7 +744,7 @@ class SessionManager {
**/
public static function delete_session ($id_checked, $from_ws = false) {
$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_user= Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_url_session = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
@ -983,11 +883,11 @@ class SessionManager {
$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);
$course_list = array();
while ($row = Database::fetch_array($result)) {
$course_list[] = $row['course_code'];
$course_list[] = $row['c_id'];
}
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
$nbr_users = 0;
$enreg_course = Database::escape_string($enreg_course);
$courseId = Database::escape_string($courseId);
// delete existing users
if ($empty_users) {
foreach ($existingUsers as $existing_user) {
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);
if (Database::affected_rows()) {
$nbr_users--;
@ -1027,7 +927,7 @@ class SessionManager {
foreach ($user_list as $enreg_user) {
if(!in_array($enreg_user, $existingUsers)) {
$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);
if(Database::affected_rows()) {
@ -1036,11 +936,11 @@ class SessionManager {
}
}
// 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);
list($nbr_users) = Database::fetch_array($rs);
// 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);
}
@ -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_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
@ -1084,15 +991,15 @@ class SessionManager {
}
$session_id = intval($session_id);
$course_code = Database::escape_string($course_code);
$courseId = Database::escape_string($courseId);
$session_visibility = intval($session_visibility);
$nbr_users = 0;
foreach ($user_list as $enreg_user) {
//if (!in_array($enreg_user, $existingUsers)) {
$enreg_user = intval($enreg_user);
$insert_sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session, course_code, id_user, visibility)
VALUES ('$session_id','$course_code','$enreg_user','$session_visibility')";
$insert_sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session, c_id, id_user, visibility)
VALUES ('$session_id','$courseId','$enreg_user','$session_visibility')";
Database::query($insert_sql);
if (Database::affected_rows()) {
$nbr_users++;
@ -1100,11 +1007,11 @@ class SessionManager {
//}
}
// 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);
list($nbr_users) = Database::fetch_array($rs);
// 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);
}
@ -1146,13 +1053,13 @@ class SessionManager {
if (!empty($course_list)) {
foreach($course_list as $course) {
$course_code = $course['code'];
$courseId = $course['id'];
// 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
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 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_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
@ -1174,12 +1081,12 @@ class SessionManager {
$user_list = implode(',', $user_list);
}
$session_id = intval($session_id);
$course_code = Database::escape_string($course_code);
$courseId = Database::escape_string($courseId);
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();
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 = $id_coach[0];
// 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);
$nbr_courses=count($existingCourses);
// get list of users subscribed to this session
@ -1218,9 +1125,9 @@ class SessionManager {
// Remove existing courses from the session
if ($empty_courses===true) {
foreach ($existingCourses as $existingCourse) {
if (!in_array($existingCourse['course_code'], $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_rel_user WHERE course_code='".$existingCourse['course_code']."' AND id_session=$id_session");
if (!in_array($existingCourse['c_id'], $course_list)){
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 c_id='".$existingCourse['c_id']."' AND id_session=$id_session");
}
}
$nbr_courses=0;
@ -1232,16 +1139,14 @@ class SessionManager {
$exists = false;
// check if the course we want to add is already subscribed
foreach ($existingCourses as $existingCourse) {
if ($enreg_course == $existingCourse['course_code']) {
if ($enreg_course == $existingCourse['c_id']) {
$exists=true;
}
}
if (!$exists) {
$courseInfo = api_get_course_info($enreg_course);
$courseId = $courseInfo['real_id'];
//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);
//We add the current course in the existing courses array, to avoid adding another time the current course
$existingCourses[]=array('course_code'=>$enreg_course);
@ -1251,13 +1156,13 @@ class SessionManager {
$nbr_users=0;
foreach ($user_list as $enreg_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);
if (Database::affected_rows()) {
$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'");
@ -1278,17 +1183,11 @@ class SessionManager {
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$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
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();
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) {
// Update number of courses in the session
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
* @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);
$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);
$num = Database::num_rows($result);
if ($num>0) {
@ -1691,11 +1591,11 @@ class SessionManager {
* Assign a coach to course in session with status = 2
* @param int - user 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
* @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
$user_id = intval($user_id);
@ -1706,10 +1606,10 @@ class SessionManager {
$session_id = api_get_session_id();
}
if (!empty($course_code)) {
$course_code = Database::escape_string($course_code);
if (!empty($courseId)) {
$courseId = Database::escape_string($courseId);
} else {
$course_code = api_get_course_id();
$courseId = api_get_course_int_id();
}
// definitios of tables
@ -1732,13 +1632,13 @@ class SessionManager {
if (Database::num_rows($res) > 0) {
// 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);
if (Database::affected_rows() > 0) return true;
else return false;
} else {
// 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);
if (Database::affected_rows() > 0) return true;
else return false;
@ -1747,17 +1647,17 @@ class SessionManager {
} else {
// Assign user like a coach to 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);
//Then update or insert
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);
if (Database::affected_rows() > 0) return true;
else return false;
} 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);
if (Database::affected_rows() > 0) return true;
else return false;
@ -1786,8 +1686,9 @@ class SessionManager {
$affected_rows = 0;
//Deleting assigned sessions to hrm_id
if ($_configuration['multiple_access_urls']) {
$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()."";
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()."";
} else {
$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) {
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);
}
}
/*
//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
if (is_array($sessions_list)) {
foreach ($sessions_list as $session_id) {
@ -1864,8 +1754,9 @@ class SessionManager {
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
// select the courses
$sql = "SELECT * FROM $tbl_course c INNER JOIN $tbl_session_rel_course src ON c.code = src.course_code
WHERE src.id_session = '$session_id' ORDER BY title;";
$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;";
$result = Database::query($sql);
$num_rows = Database::num_rows($result);
$courses = array();
@ -2057,14 +1948,14 @@ class SessionManager {
* @param $session_id
* @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_user = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT session_rcru.status
FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
WHERE session_rcru.id_user = user.user_id AND
session_rcru.id_session = '".intval($session_id)."' AND
session_rcru.course_code ='".Database::escape_string($course_code)."' AND
session_rcru.c_id ='".Database::escape_string($courseId)."' AND
user.user_id = ".intval($user_id);
$result = Database::query($sql);
@ -2181,7 +2072,7 @@ class SessionManager {
$list = new LearnpathList('', $course_info['code'], $sid);
$flat_list = $list->get_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);
}
@ -2199,7 +2090,7 @@ class SessionManager {
}
} else {
foreach($short_courses as $course_data) {
$new_short_courses[] = $course_data['code'];
$new_short_courses[] = $course_data['id'];
}
}
$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 = 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)
WHERE sc.course_code = '$course_code' ";
WHERE sc.c_id = '$courseId' ";
$result = Database::query($sql);
return Database::store_result($result);
}
@ -2362,9 +2257,6 @@ class SessionManager {
$new_session_id = intval($new_session_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_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$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);
if (!empty($course_list)) {
foreach ($course_list as $course) {
$course_code = $course['code'];
$courseId = $course['id'];
// 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'");
//if (Database::affected_rows()) {
// 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);
//}
}
@ -2421,12 +2313,12 @@ class SessionManager {
/**
* 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_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_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);
$from = intval($from);
$limit = intval($limit);
@ -2436,7 +2328,7 @@ class SessionManager {
//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
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
sru.moved_to = 0 AND sru.moved_status <> ".SessionManager::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION." AND
sru.relation_type<>".SESSION_RELATION_TYPE_RRHH;
@ -2453,7 +2345,12 @@ class SessionManager {
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_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
WHERE srcru.id_user = sru.id_user 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
(sru.moved_to = 0 AND sru.moved_status <> ".SessionManager::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION.") AND
sru.relation_type<>".SESSION_RELATION_TYPE_RRHH;
@ -2479,7 +2376,8 @@ class SessionManager {
* @param in session_id
* @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_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
WHERE session_rcru.id_user = user.user_id AND
session_rcru.id_session = '".intval($session_id)."' AND
session_rcru.course_code ='".Database::escape_string($course_code)."' AND
session_rcru.c_id ='".Database::escape_string($courseId)."' AND
session_rcru.status=2";
$result = Database::query($sql);
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_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
WHERE session_rcru.id_user = user.user_id AND
session_rcru.id_session = '".intval($session_id)."' AND
session_rcru.course_code ='".Database::escape_string($course_code)."' AND
session_rcru.c_id ='".Database::escape_string($courseId)."' AND
session_rcru.status=2";
$result = Database::query($sql);
return Database::store_result($result);
}
static function get_session_course_coaches_to_string($course_code, $session_id) {
$coaches = self::get_session_course_coaches($course_code, $session_id);
static function get_session_course_coaches_to_string($courseId, $session_id)
{
$coaches = self::get_session_course_coaches($courseId, $session_id);
if (!empty($coaches)) {
$coach_list = array();
foreach ($coaches as $coach_info) {
@ -2523,25 +2423,31 @@ class SessionManager {
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_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_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();
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'");
}
}
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_array = array();
if (!empty($session_categories)) {

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

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

@ -686,7 +686,7 @@ class Thematic
* @return int Affected rows
*/
public function thematic_advance_destroy($thematic_advance_id) {
global $_course;
$_course = api_get_course_info();
$course_id = $this->get_course_int_id();
// definition database table
@ -946,7 +946,7 @@ class Thematic
* @return int Affected rows
*/
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_advance_data = $this->get_thematic_advance_list(null, api_get_course_id(), true);
$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':
default: // Base: empty, the result path below will be relative.
$base = '';
break;
}
if (empty($id) || empty($type)) {
@ -1215,13 +1216,15 @@ class UserManager {
$picture_filename = trim($user['picture_uri']);
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) {
$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 {
$dir = $base.'data/upload/users/'.$user_id.'/';
}
$dir = $base.'upload/users/'.$user_id.'/';
}*/
} else {
$dir = $base.'data/upload/users/'.$user_id.'/';
$dir = $base.'upload/users/'.$user_id.'/';
}
if (empty($picture_filename) && $anonymous) {
return array('dir' => $base_unknown.'img/', 'file' => 'unknown.jpg');
@ -2516,13 +2519,13 @@ class UserManager {
foreach ($courses as $course) {
//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) {
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_list[] = $course;
}
@ -2622,13 +2625,13 @@ class UserManager {
$session_id = $enreg['id'];
$courseList = SessionManager::get_course_list_by_session_id($session_id);
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) {
continue;
}
$course['course_info'] = $course;
$key = $session_id.' - '.$course['code'];
$key = $session_id.' - '.$course['id'];
$personal_course_list[$key] = $course;
}
}
@ -2665,35 +2668,37 @@ class UserManager {
$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
$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
ORDER BY code";
ORDER BY c_id";
$course_list_sql_result = Database::query($personal_course_list_sql);
if (Database::num_rows($course_list_sql_result) > 0) {
while ($result_row = Database::fetch_array($course_list_sql_result)) {
$result_row['status'] = 5;
if (!in_array($result_row['code'], $courses)) {
if (!in_array($result_row['id'], $courses)) {
$personal_course_list[] = $result_row;
$courses[] = $result_row['code'];
$courses[] = $result_row['id'];
}
}
}
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_access_url
ORDER BY code";
ORDER BY c_id";
$course_list_sql_result = Database::query($personal_course_list_sql);
if (Database::num_rows($course_list_sql_result)>0) {
while ($result_row = Database::fetch_array($course_list_sql_result)) {
$result_row['status'] = 2;
if (!in_array($result_row['code'],$courses)) {
if (!in_array($result_row['id'],$courses)) {
$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);
if (!empty($course_list)) {
foreach ($course_list as $course) {
if (!in_array($course['code'],$courses)) {
if (!in_array($course['id'],$courses)) {
$personal_course_list[] = $course;
}
}
@ -3790,7 +3795,6 @@ class UserManager {
*/
public static function get_user_id_of_course_admin_or_session_admin($courseInfo) {
$session = api_get_session_id();
$courseCode = $courseInfo['code'];
$courseId = $courseInfo['real_id'];
$table_user = Database::get_main_table(TABLE_MAIN_USER);
@ -3799,7 +3803,7 @@ class UserManager {
if ($session==0 || is_null($session)) {
$sql='SELECT u.user_id FROM '.$table_user.' u
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);
$num_rows=Database::num_rows($rs);
if ($num_rows==1) {
@ -3813,7 +3817,7 @@ class UserManager {
} elseif ($session>0) {
$sql='SELECT u.user_id FROM '.$table_user.' u
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);
$row=Database::fetch_array($rs);
return $row['user_id'];
@ -3915,6 +3919,7 @@ class UserManager {
* @param string Course code
* @param int Session id
* @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) {

@ -489,34 +489,31 @@ ALTER TABLE session ADD INDEX idx_id_session_admin_id (session_admin_id);
--
DROP TABLE IF 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',
course_id INT NOT NULL default '0',
course_code char(40),
c_id INT 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 (course_id);
ALTER TABLE session_rel_course ADD INDEX idx_session_rel_course_course_id (c_id);
--
-- Table structure for table session_rel_course_rel_user
--
DROP TABLE IF EXISTS session_rel_course_rel_user;
CREATE TABLE IF NOT EXISTS session_rel_course_rel_user (
id_session MEDIUMINT unsigned NOT NULL default '0',
course_id INT NOT NULL default '0',
course_code char(40),
id INT unsigned NOT NULL auto_increment,
id_session INT unsigned NOT NULL default '0',
c_id INT NOT NULL default '0',
id_user int unsigned NOT NULL default '0',
visibility int NOT NULL default 1,
status int NOT NULL 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_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,
referer varchar(255) NOT NULL default '',
counter int NOT NULL default 0,
PRIMARY KEY (id)
PRIMARY KEY (id)
);
DROP TABLE IF EXISTS track_e_access;
@ -3135,12 +3132,12 @@ CREATE TABLE track_e_access (
access_id int NOT NULL auto_increment,
access_user_id int unsigned default NULL,
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_session_id int NOT NULL default 0,
PRIMARY KEY (access_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;
@ -3148,12 +3145,12 @@ CREATE TABLE track_e_lastaccess (
access_id bigint NOT NULL auto_increment,
access_user_id int unsigned default NULL,
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_session_id int unsigned default NULL,
PRIMARY KEY (access_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)
);
@ -3168,7 +3165,7 @@ CREATE TABLE track_e_default (
default_value text NOT NULL,
c_id int unsigned default NULL,
session_id int unsigned default 0,
PRIMARY KEY (default_id)
PRIMARY KEY (default_id)
);
DROP TABLE IF EXISTS track_e_downloads;
@ -3176,12 +3173,10 @@ CREATE TABLE track_e_downloads (
down_id int NOT NULL auto_increment,
down_user_id int unsigned default NULL,
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_session_id INT NOT NULL DEFAULT 0,
PRIMARY KEY (down_id),
KEY down_user_id (down_user_id),
KEY down_cours_id (down_cours_id)
PRIMARY KEY (down_id)
);
DROP TABLE IF EXISTS track_e_exercices;
@ -3261,11 +3256,10 @@ CREATE TABLE track_e_links (
links_id int NOT NULL auto_increment,
links_user_id int unsigned default NULL,
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_session_id INT NOT NULL DEFAULT 0,
PRIMARY KEY (links_id),
KEY links_cours_id (links_cours_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