diff --git a/documentation/changelog.html b/documentation/changelog.html
index d89950d03f..8096f4df0c 100644
--- a/documentation/changelog.html
+++ b/documentation/changelog.html
@@ -30,6 +30,7 @@
Added sessions history (optional access to previous sessions in read-only for students)
Added advanced search in sessions: you can also search by session name, session category, tutor and visibility. (DT#5541)
Added an option to configure courses as "auto-registered" (every user has it in his courses list and is automatically subscribed)
+ Added chat tool to the groups(DT#3318)
Allowed password to be recovered using username *or* e-mail
Added editable section to the registration form
Reporting: notification of user who have never been active yet
diff --git a/documentation/installation_guide.html b/documentation/installation_guide.html
index 0f9de27aa9..d72b93a8a2 100644
--- a/documentation/installation_guide.html
+++ b/documentation/installation_guide.html
@@ -72,7 +72,7 @@ optimal flexibility, remote control and scalability.
-Dokeos is mainly a LMS running Apache, MySQL and PHP5 (the so called AMP trilogy).
+Dokeos is mainly a LMS running Apache 1.3, 2.0, MySQL 5.1 and PHP 5.1 (the so called AMP trilogy).
diff --git a/documentation/installation_guide_es_ES.html b/documentation/installation_guide_es_ES.html
index 276b47ace2..5a06a7bffe 100755
--- a/documentation/installation_guide_es_ES.html
+++ b/documentation/installation_guide_es_ES.html
@@ -83,7 +83,7 @@ control remoto y escalabilidad.
-Dokeos es principalmente un LMS que se ejecuta con Apache, MySQL y PHP5 (tambien llamada la trilogía AMP).
+Dokeos es principalmente un LMS que se ejecuta con Apache 1.3, 2.0, MySQL 5.1 y PHP 5.1 (tambien llamada la trilogía AMP).
diff --git a/main/admin/session_export.php b/main/admin/session_export.php
index 2a077a679f..4e1a4a2d0f 100644
--- a/main/admin/session_export.php
+++ b/main/admin/session_export.php
@@ -69,7 +69,7 @@ if($_POST['formSent'] )
$session_id=$_POST['session_id'];
if(empty($session_id))
{
- $sql = "SELECT id,name,id_coach,username,date_start,date_end FROM $tbl_session INNER JOIN $tbl_user
+ $sql = "SELECT id,name,id_coach,username,date_start,date_end,visibility,session_category_id FROM $tbl_session INNER JOIN $tbl_user
ON $tbl_user.user_id = $tbl_session.id_coach ORDER BY id";
global $_configuration;
@@ -77,7 +77,7 @@ if($_POST['formSent'] )
$tbl_session_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
- $sql = "SELECT id, name,id_coach,username,date_start,date_end FROM $tbl_session s INNER JOIN $tbl_session_rel_access_url as session_rel_url
+ $sql = "SELECT id, name,id_coach,username,date_start,date_end,visibility,session_category_id FROM $tbl_session s INNER JOIN $tbl_session_rel_access_url as session_rel_url
ON (s.id= session_rel_url.session_id) INNER JOIN $tbl_user u ON (u.user_id = s.id_coach)
WHERE access_url_id = $access_url_id
ORDER BY id";
@@ -88,7 +88,7 @@ if($_POST['formSent'] )
}
else
{
- $sql = "SELECT id,name,username,date_start,date_end
+ $sql = "SELECT id,name,username,date_start,date_end,visibility,session_category_id
FROM $tbl_session
INNER JOIN $tbl_user
ON $tbl_user.user_id = $tbl_session.id_coach
@@ -125,7 +125,7 @@ if($_POST['formSent'] )
if($file_type == 'csv')
{
$cvs = true;
- fputs($fp,"SessionName;Coach;DateStart;DateEnd;Users;Courses;\n");
+ fputs($fp,"SessionName;Coach;DateStart;DateEnd;Visibility;SessionCategory;Users;Courses;\n");
}
else
{
@@ -140,15 +140,19 @@ if($_POST['formSent'] )
$row['username'] = str_replace(';',',',$row['username']);
$row['date_start'] = str_replace(';',',',$row['date_start']);
$row['date_end'] = str_replace(';',',',$row['date_end']);
+ $row['visibility'] = str_replace(';',',',$row['visibility']);
+ $row['session_category'] = str_replace(';',',',$row['session_category_id']);
if($cvs){
- $add.= $row['name'].';'.$row['username'].';'.$row['date_start'].';'.$row['date_end'].';';
+ $add.= $row['name'].';'.$row['username'].';'.$row['date_start'].';'.$row['date_end'].';'.$row['visibility'].';'.$row['session_category'].';';
}
else {
$add = "\t\n"
."\t\t$row[name]\n"
."\t\t$row[username]\n"
."\t\t$row[date_start]\n"
- ."\t\t$row[date_end]\n";
+ ."\t\t$row[date_end]\n"
+ ."\t\t$row[visibility]\n"
+ ."\t\t$row[session_category]\n";
}
//users
@@ -176,37 +180,55 @@ if($_POST['formSent'] )
$add .= $users;
//courses
- $sql = "SELECT DISTINCT $tbl_course.code, $tbl_user.username FROM $tbl_course
- INNER JOIN $tbl_session_course
- ON $tbl_course.code = $tbl_session_course.course_code
- AND $tbl_session_course.id_session = '".$row['id']."'
- LEFT JOIN $tbl_user
- ON $tbl_user.user_id = $tbl_session_course.id_coach";
+ $sql = "SELECT DISTINCT $tbl_course.code
+ FROM $tbl_course
+ INNER JOIN $tbl_session_course_user
+ ON $tbl_course.code = $tbl_session_course_user.course_code
+ AND $tbl_session_course_user.id_session = '".$row['id']."'";
+
$rsCourses = Database::query($sql,__FILE__,__LINE__);
$courses = '';
while($rowCourses = Database::fetch_array($rsCourses)){
- if($cvs){
+ // get coachs from a course
+ $sql = "SELECT u.username
+ FROM $tbl_session_course_user scu
+ INNER JOIN $tbl_user u ON u.user_id = scu.id_user
+ WHERE scu.course_code = '{$rowCourses['code']}'
+ AND scu.id_session = '".$row['id']."' AND scu.status = 2 ";
+
+ $rs_coachs = Database::query($sql,__FILE__,__LINE__);
+ $coachs = array();
+ while ($row_coachs = Database::fetch_array($rs_coachs)) {
+ $coachs[] = $row_coachs['username'];
+ }
+
+ $coachs = implode(",",$coachs);
+
+ if($cvs){
$courses .= str_replace(';',',',$rowCourses['code']);
- $courses .= '['.str_replace(';',',',$rowCourses['username']).'][';
+ $courses .= '['.str_replace(';',',',$coachs).'][';
}
else {
$courses .= "\t\t\n";
$courses .= "\t\t\t$rowCourses[code]\n";
- $courses .= "\t\t\t$rowCourses[username]\n";
+ $courses .= "\t\t\t$coachs\n";
}
// rel user courses
- $sql = "SELECT DISTINCT username
- FROM $tbl_user
- INNER JOIN $tbl_session_course_user
- ON $tbl_session_course_user.id_user = $tbl_user.user_id
- AND $tbl_session_course_user.course_code='".$rowCourses['code']."'
- AND id_session='".$row['id']."'";
+ $sql = "SELECT DISTINCT u.username
+ FROM $tbl_session_course_user scu
+ INNER JOIN $tbl_session_user su ON scu.id_user = su.id_user AND scu.id_session = su.id_session
+ INNER JOIN $tbl_user u
+ ON scu.id_user = u.user_id
+ AND scu.course_code='".$rowCourses['code']."'
+ AND scu.id_session='".$row['id']."'";
$rsUsersCourse = Database::query($sql,__FILE__,__LINE__);
+ $userscourse = '';
while($rowUsersCourse = Database::fetch_array($rsUsersCourse)){
+
if($cvs){
$userscourse .= str_replace(';',',',$rowUsersCourse['username']).',';
}
@@ -224,12 +246,11 @@ if($_POST['formSent'] )
$courses .= "\t\t\n";
}
}
+
if(!empty($courses) && $cvs)
$courses = api_substr($courses , 0, api_strlen($courses)-1);
$add .= $courses;
-
-
if($cvs) {
$breakline = api_is_windows_os()?"\r\n":"\n";
$add .= ";$breakline";
diff --git a/main/admin/session_import.php b/main/admin/session_import.php
index d1d37bae5a..d09225cb70 100644
--- a/main/admin/session_import.php
+++ b/main/admin/session_import.php
@@ -69,6 +69,7 @@ if ($_POST['formSent']) {
// $root = @simplexml_load_string(api_utf8_encode_xml(file_get_contents($_FILES['import_file']['tmp_name'])));
// To ease debugging let us use:
$content = file_get_contents($_FILES['import_file']['tmp_name']);
+
$content = api_utf8_encode_xml($content);
$root = @simplexml_load_string($content);
unset($content);
@@ -241,6 +242,7 @@ if ($_POST['formSent']) {
// Creating sessions from base node.
if (count($root->Session) > 0) {
+
foreach ($root->Session as $node_session) {
$course_counter = 0;
@@ -287,6 +289,9 @@ if ($_POST['formSent']) {
}
}
+ $visibility = trim(api_utf8_decode($node_session->Visibility));
+ $session_category_id = trim(api_utf8_decode($node_session->SessionCategory));
+
if (!$updatesession) {
// Always create a session.
$unique_name = false; // This MUST be initializead.
@@ -311,6 +316,8 @@ if ($_POST['formSent']) {
id_coach = '$coach_id',
date_start = '$date_start',
date_end = '$date_end',
+ visibility = '$visibility',
+ session_category_id = '$session_category_id',
session_admin_id=".intval($_user['user_id']);
$rs_session = Database::query($sql_session, __FILE__, __LINE__);
$session_id = Database::insert_id();
@@ -326,6 +333,8 @@ if ($_POST['formSent']) {
id_coach = '$coach_id',
date_start = '$date_start',
date_end = '$date_end',
+ visibility = '$visibility',
+ session_category_id = '$session_category_id',
session_admin_id=".intval($_user['user_id']);
$rs_session = Database::query($sql_session, __FILE__, __LINE__);
$session_id = Database::insert_id();
@@ -335,7 +344,9 @@ if ($_POST['formSent']) {
$sql_session = "UPDATE $tbl_session SET
id_coach = '$coach_id',
date_start = '$date_start',
- date_end = '$date_end'
+ date_end = '$date_end',
+ visibility = '$visibility',
+ session_category_id = '$session_category_id'
WHERE name = '$session_name'";
$rs_session = Database::query($sql_session, __FILE__, __LINE__);
$session_id = Database::query("SELECT id FROM $tbl_session WHERE name='$session_name'", __FILE__, __LINE__);
@@ -358,6 +369,7 @@ if ($_POST['formSent']) {
UrlManager::add_session_to_url($session_id, 1);
}
+
// Adding users to the new session.
foreach ($node_session->User as $node_user) {
$username = UserManager::purify_username(api_utf8_decode($node_user), $purification_option_for_usernames);
@@ -371,24 +383,18 @@ if ($_POST['formSent']) {
}
}
+
// Adding courses to a session.
+
+
+
foreach ($node_session->Course as $node_course) {
$course_code = Database::escape_string(trim(api_utf8_decode($node_course->CourseCode)));
// Verify that the course pointed by the course code node exists.
if (CourseManager::course_exists($course_code)) {
// If the course exists we continue.
$course_info = CourseManager::get_course_information($course_code);
- // Searching the coach.
- $coach = UserManager::purify_username(api_utf8_decode($node_course->Coach), $purification_option_for_usernames);
- if (!empty($coach)) {
- $coach_id = UserManager::get_user_id_from_username($coach);
- if ($coach_id === false) {
- $error_message .= get_lang('UserDoesNotExist').' : '.$coach.'
';
- $coach_id = '';
- }
- } else {
- $coach_id = '';
- }
+
$session_course_relation = SessionManager::relation_session_course_exist($session_id, $course_code);
if (!$session_course_relation) {
$sql_course = "INSERT INTO $tbl_session_course SET
@@ -396,34 +402,53 @@ if ($_POST['formSent']) {
id_session='$session_id'";
$rs_course = Database::query($sql_course, __FILE__, __LINE__);
}
- if (Database::affected_rows()) {
- $course_counter++;
- $users_in_course_counter = 0;
- foreach ($node_course->User as $node_user) {
- $username = UserManager::purify_username(api_utf8_decode($node_user), $purification_option_for_usernames);
- $user_id = UserManager::get_user_id_from_username($username);
- if ($user_id !== false) {
- // Adding to session_rel_user table.
- $sql = "INSERT IGNORE INTO $tbl_session_user SET
- id_user='$user_id',
- id_session = '$session_id'";
- $rs_user = Database::query($sql, __FILE__, __LINE__);
- $user_counter++;
- // Adding to session_rel_user_rel_course table.
- $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
- id_user='$user_id',
- course_code='$course_code',
- id_session = '$session_id'";
- $rs_users = Database::query($sql, __FILE__, __LINE__);
- $users_in_course_counter++;
- } else {
- $error_message .= get_lang('UserDoesNotExist').' : '.$username.'
';
- }
+
+ $course_coachs = explode(",",$node_course->Coach);
+
+ // adding coachs to session course user
+ foreach ($course_coachs as $course_coach) {
+ $coach_id = UserManager::purify_username(api_utf8_decode($course_coach), $purification_option_for_usernames);
+ $coach_id = UserManager::get_user_id_from_username($course_coach);
+ if ($coach_id !== false) {
+ $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
+ id_user='$coach_id',
+ course_code='$course_code',
+ id_session = '$session_id',
+ status = 2 ";
+ $rs_coachs = Database::query($sql, __FILE__, __LINE__);
+ } else {
+ $error_message .= get_lang('UserDoesNotExist').' : '.$user.'
';
+ }
+ }
+
+ // adding users
+ $course_counter++;
+ $users_in_course_counter = 0;
+ foreach ($node_course->User as $node_user) {
+ $username = UserManager::purify_username(api_utf8_decode($node_user), $purification_option_for_usernames);
+ $user_id = UserManager::get_user_id_from_username($username);
+ if ($user_id !== false) {
+ // Adding to session_rel_user table.
+ $sql = "INSERT IGNORE INTO $tbl_session_user SET
+ id_user='$user_id',
+ id_session = '$session_id'";
+ $rs_user = Database::query($sql, __FILE__, __LINE__);
+ $user_counter++;
+ // Adding to session_rel_user_rel_course table.
+ $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
+ id_user='$user_id',
+ course_code='$course_code',
+ id_session = '$session_id'";
+ $rs_users = Database::query($sql, __FILE__, __LINE__);
+ $users_in_course_counter++;
+ } else {
+ $error_message .= get_lang('UserDoesNotExist').' : '.$username.'
';
}
- $update_session_course = "UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE course_code='$course_code'";
- Database::query($update_session_course, __FILE__, __LINE__);
- $inserted_in_course[$course_code] = $course_info['title'];
}
+ $update_session_course = "UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE course_code='$course_code'";
+ Database::query($update_session_course, __FILE__, __LINE__);
+ $inserted_in_course[$course_code] = $course_info['title'];
+
}
if (CourseManager::course_exists($course_code, true)) {
@@ -434,52 +459,62 @@ if ($_POST['formSent']) {
if ($vcourse['code'] == $course_code) {
// Ignore, this has already been inserted.
} else {
- $coach = UserManager::purify_username(api_utf8_decode($node_course->Coach), $purification_option_for_usernames);
- if (!empty($coach)) {
- $coach_id = UserManager::get_user_id_from_username($coach);
- if ($user_id === false) {
- $error_message .= get_lang('UserDoesNotExist').' : '.$coach.'
';
- $coach_id = '';
- }
- } else {
- $coach_id = '';
- }
-
+
$sql_course = "INSERT INTO $tbl_session_course SET
course_code = '".$vcourse['code']."',
id_session='$session_id'";
$rs_course = Database::query($sql_course, __FILE__, __LINE__);
- if (Database::affected_rows()) {
- $course_counter++;
- $users_in_course_counter = 0;
- foreach ($node_course->User as $node_user) {
- $username = UserManager::purify_username(api_utf8_decode($node_user), $purification_option_for_usernames);
- $user_id = UserManager::get_user_id_from_username($username);
- if ($user_id !== false) {
- $sql = "INSERT IGNORE INTO $tbl_session_user SET
- id_user='$user_id',
- id_session = '$session_id'";
- $rs_user = Database::query($sql, __FILE__, __LINE__);
- if (Database::affected_rows()) {
- $user_counter++;
- }
- $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
- id_user='$user_id',
- course_code='".$vcourse['code']."',
- id_session = '$session_id'";
- $rs_users = Database::query($sql, __FILE__, __LINE__);
- if (Database::affected_rows()) {
- $users_in_course_counter++;
- }
- } else {
- $error_message .= get_lang('UserDoesNotExist').' : '.$username.'
';
- }
+
+ $course_coachs = explode(",",$node_course->Coach);
+
+ // adding coachs to session course user
+ foreach ($course_coachs as $course_coach) {
+ $coach_id = UserManager::purify_username(api_utf8_decode($course_coach), $purification_option_for_usernames);
+ $coach_id = UserManager::get_user_id_from_username($course_coach);
+ if ($coach_id !== false) {
+ $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
+ id_user='$coach_id',
+ course_code='{$vcourse['code']}',
+ id_session = '$session_id',
+ status = 2 ";
+ $rs_coachs = Database::query($sql, __FILE__, __LINE__);
+ } else {
+ $error_message .= get_lang('UserDoesNotExist').' : '.$user.'
';
+ }
+ }
+
+ // adding users
+ $course_counter++;
+ $users_in_course_counter = 0;
+ foreach ($node_course->User as $node_user) {
+ $username = UserManager::purify_username(api_utf8_decode($node_user), $purification_option_for_usernames);
+ $user_id = UserManager::get_user_id_from_username($username);
+ if ($user_id !== false) {
+ // Adding to session_rel_user table.
+ $sql = "INSERT IGNORE INTO $tbl_session_user SET
+ id_user='$user_id',
+ id_session = '$session_id'";
+ $rs_user = Database::query($sql, __FILE__, __LINE__);
+ $user_counter++;
+ // Adding to session_rel_user_rel_course table.
+ $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
+ id_user='$user_id',
+ course_code='{$vcourse['code']}',
+ id_session = '$session_id'";
+ $rs_users = Database::query($sql, __FILE__, __LINE__);
+ $users_in_course_counter++;
+ } else {
+ $error_message .= get_lang('UserDoesNotExist').' : '.$username.'
';
}
- Database::query("UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE course_code='$course_code'",__FILE__,__LINE__);
}
+ $update_session_course = "UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE course_code='$course_code'";
+ Database::query($update_session_course, __FILE__, __LINE__);
+ $inserted_in_course[$course_code] = $course_info['title'];
+
}
$inserted_in_course[$vcourse['code']] = $vcourse['title'];
}
+
} else {
// Tthe course does not exist.
$error_message .= get_lang('CourseDoesNotExist').' : '.$course_code.'
';
@@ -502,6 +537,7 @@ if ($_POST['formSent']) {
///////////////////
$content = file($_FILES['import_file']['tmp_name']);
+
if (!api_strstr($content[0], ';')) {
$error_message = get_lang('NotCSV');
} else {
@@ -523,6 +559,7 @@ if ($_POST['formSent']) {
}
}
}
+
// looping the sessions
foreach ($sessions as $enreg) {
$user_counter = 0;
@@ -531,6 +568,8 @@ if ($_POST['formSent']) {
$session_name = $enreg['SessionName'];
$date_start = $enreg['DateStart'];
$date_end = $enreg['DateEnd'];
+ $visibility = $enreg['Visibility'];
+ $session_category_id = $enreg['SessionCategory'];
// searching a coach
if (!empty($enreg['Coach'])) {
@@ -569,6 +608,8 @@ if ($_POST['formSent']) {
id_coach = '$coach_id',
date_start = '$date_start',
date_end = '$date_end',
+ visibility = '$visibility',
+ session_category_id = '$session_category_id',
session_admin_id=".intval($_user['user_id']);
$rs_session = Database::query($sql_session, __FILE__, __LINE__);
$session_id = Database::insert_id();
@@ -582,7 +623,10 @@ if ($_POST['formSent']) {
name = '$session_name',
id_coach = '$coach_id',
date_start = '$date_start',
- date_end = '$date_end'";
+ date_end = '$date_end',
+ visibility = '$visibility',
+ session_category_id = '$session_category_id'";
+
$rs_session = Database::query($sql_session, __FILE__, __LINE__);
// We get the last insert id.
$my_session_result = SessionManager::get_session_by_name($session_name);
@@ -593,7 +637,9 @@ if ($_POST['formSent']) {
$sql_session = "UPDATE $tbl_session SET
id_coach = '$coach_id',
date_start = '$date_start',
- date_end = '$date_end'
+ date_end = '$date_end',
+ visibility = '$visibility',
+ session_category_id = '$session_category_id'
WHERE name = '$session_name'";
$rs_session = Database::query($sql_session, __FILE__, __LINE__);
$session_id = Database::query("SELECT id FROM $tbl_session WHERE name='$session_name'", __FILE__, __LINE__);
@@ -626,6 +672,7 @@ if ($_POST['formSent']) {
foreach ($courses as $course) {
$course_code = api_strtoupper(api_substr($course, 0, api_strpos($course, '[')));
+
if (CourseManager::course_exists($course_code)) {
// If the course exists we continue
@@ -649,12 +696,34 @@ if ($_POST['formSent']) {
$rs_course = Database::query($sql_course, __FILE__, __LINE__);
$course_counter++;
- $users = api_substr($course, api_strpos($course, '[', 1) + 1 , api_strpos($course, ']', 1));
- $users = explode('|', $enreg['Users']);
+ $course_split = array();
+ $tok = strtok($course, "[]");
+ while ($tok !== false) {
+ $course_split[] = $tok;
+ $tok = strtok("[]");
+ }
+
+ $course_coachs = explode(",",$course_split[1]);
+ $course_users = explode(",",$course_split[2]);
+
+ // adding coachs to session course user
+ foreach ($course_coachs as $course_coach) {
+ $coach_id = UserManager::get_user_id_from_username($course_coach);
+ if ($coach_id !== false) {
+ $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
+ id_user='$coach_id',
+ course_code='$course_code',
+ id_session = '$session_id',
+ status = 2 ";
+ $rs_coachs = Database::query($sql, __FILE__, __LINE__);
+ } else {
+ $error_message .= get_lang('UserDoesNotExist').' : '.$user.'
';
+ }
+ }
+
$users_in_course_counter = 0;
-
// Adding the relationship "Session - Course - User".
- foreach ($users as $user) {
+ foreach ($course_users as $user) {
$user_id = UserManager::get_user_id_from_username($user);
if ($user_id !== false) {
$sql = "INSERT IGNORE INTO $tbl_session_course_user SET
@@ -667,7 +736,8 @@ if ($_POST['formSent']) {
$error_message .= get_lang('UserDoesNotExist').' : '.$user.'
';
}
}
- Database::query("UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE course_code='$course_code'", __FILE__, __LINE__);
+ $sql = "UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE course_code='$course_code'";
+ Database::query($sql,__FILE__,__LINE__);
$course_info = CourseManager::get_course_information($course_code);
$inserted_in_course[$course_code] = $course_info['title'];
@@ -676,53 +746,61 @@ if ($_POST['formSent']) {
}
if (CourseManager::course_exists($course_code, true)) {
+
$list = CourseManager :: get_courses_info_from_visual_code($course_code);
+
foreach ($list as $vcourse) {
- if ($vcourse['code'] == $course_code) {
+ if ($vcourse['code'] == $course_code) {
// Ignore, this has already been inserted.
} else {
+
$coach = api_strstr($course, '[');
$coach = api_substr($coach, 1, api_strpos($coach,']') - 1);
-
- if (!empty($coach)) {
- $sql_coach = "SELECT user_id FROM $tbl_user WHERE username='$coach'";
- $rs_coach = Database::query($sql_coach,__FILE__,__LINE__);
- list($coach) = (Database::fetch_array($rs_coach));
- } else {
- $coach = '';
- }
+
// Adding the relationship "Session - Course".
$sql_course = "INSERT IGNORE INTO $tbl_session_course SET
- course_code = '".$vcourse['code']."',
- id_session='$session_id'";
-
+ course_code = '".$vcourse['code']."',
+ id_session='$session_id'";
+
$rs_course = Database::query($sql_course, __FILE__, __LINE__);
- if (Database::affected_rows()) {
- $course_counter++;
- $users = api_substr($course , api_strpos($course,'[', 1) + 1, api_strpos($course,']', 1));
- $users = explode('|', $enreg['Users']);
- $users_in_course_counter = 0;
- foreach ($users as $user) {
- $sqlUser = "SELECT user_id FROM $tbl_user WHERE username='".$user."'";
- $rs_user = Database::query($sqlUser);
- list($user_id) = (Database::fetch_array($rs_user));
- $sql = "INSERT INTO $tbl_session_course_user SET
+
+ // adding coachs to session course user
+ foreach ($course_coachs as $course_coach) {
+ $coach_id = UserManager::get_user_id_from_username($course_coach);
+ if ($coach_id !== false) {
+ $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
+ id_user='$coach_id',
+ course_code='{$vcourse['code']}',
+ id_session = '$session_id',
+ status = 2 ";
+ $rs_coachs = Database::query($sql, __FILE__, __LINE__);
+ } else {
+ $error_message .= get_lang('UserDoesNotExist').' : '.$user.'
';
+ }
+ }
+
+ $users_in_course_counter = 0;
+ // Adding the relationship "Session - Course - User".
+ foreach ($course_users as $user) {
+ $user_id = UserManager::get_user_id_from_username($user);
+ if ($user_id !== false) {
+ $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
id_user='$user_id',
- course_code='".$vcourse['code']."',
+ course_code='{$vcourse['code']}',
id_session = '$session_id'";
$rs_users = Database::query($sql, __FILE__, __LINE__);
- if (Database::affected_rows()) {
- $users_in_course_counter++;
- }
+ $users_in_course_counter++;
+ } else {
+ $error_message .= get_lang('UserDoesNotExist').' : '.$user.'
';
}
- Database::query("UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE course_code='".$vcourse['code']."'", __FILE__, __LINE__);
}
+ Database::query("UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE course_code='".$vcourse['code']."'", __FILE__, __LINE__);
}
}
$inserted_in_course[$vcourse['code']] = $vcourse['title'];
}
}
-
+
$sql_update_users = "UPDATE $tbl_session SET nbr_users='$user_counter', nbr_courses='$course_counter' WHERE id='$session_id'";
Database::query($sql_update_users, __FILE__, __LINE__);
}
diff --git a/main/admin/user_import.php b/main/admin/user_import.php
index 14a7c33733..1ca9b23aa3 100644
--- a/main/admin/user_import.php
+++ b/main/admin/user_import.php
@@ -359,9 +359,9 @@ if ($_POST['formSent'] AND $_FILES['import_file']['size'] !== 0) {
if (api_strlen($error_message) > 150) {
$_SESSION['session_message_import_users'] = $error_message;
$error_message = 'session_message';
- }
- header('Location: user_list.php?action=show_message&message='.urlencode($see_message_import).'&warn='.urlencode($error_message).'&sec_token='.$tok);
- exit ();
+ }
+ header('Location: '.api_get_path(WEB_CODE_PATH).'admin/user_list.php?action=show_message&message='.urlencode($see_message_import).'&warn='.urlencode($error_message).'&sec_token='.$tok);
+ exit;
}
Display :: display_header($tool_name);
diff --git a/main/auth/my_progress.php b/main/auth/my_progress.php
index 3a4ac273da..d64b5ecde3 100644
--- a/main/auth/my_progress.php
+++ b/main/auth/my_progress.php
@@ -156,18 +156,23 @@ foreach ($courses as $enreg) {
$session_name = Database::result($rs, 0, 'name');
$session_coach_id = intval(Database::result($rs, 0, 'id_coach'));
- // get coach of the course in the session
- $sql = 'SELECT id_coach FROM '.$tbl_session_course.'
- WHERE id_session='.$session_id.'
- AND course_code = "'.Database::escape_string($_GET['course']).'"';
- $rs = Database::query($sql, __FILE__, __LINE__);
- $session_course_coach_id = intval(Database::result($rs, 0, 0));
-
- if ($session_course_coach_id != 0) {
- $coach_info = UserManager :: get_user_info_by_id($session_course_coach_id);
- $course_info['tutor_name'] = api_get_person_name($coach_info['firstname'], $coach_info['lastname']);
+ $sql = 'SELECT id_user FROM ' . $tbl_session_course_user . '
+ WHERE id_session=' . $session_id . '
+ AND course_code = "' . Database :: escape_string($course) . '" AND status=2';
+ $rs = Database::query($sql, __FILE__, __LINE__);
+ $course_coachs = array();
+ while ($row_coachs = Database::fetch_array($rs)) {
+ $course_coachs[] = $row_coachs['id_user'];
}
- else if($session_coach_id != 0) {
+
+ if (!empty($course_coachs)) {
+ $info_tutor_name = array();
+ foreach ($course_coachs as $course_coach) {
+ $coach_infos = UserManager :: get_user_info_by_id($course_coach);
+ $info_tutor_name[] = api_get_person_name($coach_infos['firstname'], $coach_infos['lastname']);
+ }
+ $course_info['tutor_name'] = implode(",",$info_tutor_name);
+ } else if($session_coach_id != 0) {
$coach_info = UserManager :: get_user_info_by_id($session_coach_id);
$course_info['tutor_name'] = api_get_person_name($coach_info['firstname'], $coach_info['lastname']);
}
diff --git a/main/chat/chat_banner.php b/main/chat/chat_banner.php
index 8fa8c32be1..d3ddf87760 100755
--- a/main/chat/chat_banner.php
+++ b/main/chat/chat_banner.php
@@ -31,15 +31,54 @@
*/
$language_file = array ('chat');
-
include('../inc/global.inc.php');
+require_once api_get_path(LIBRARY_PATH).'groupmanager.lib.php';
+
+//$interbreadcrumb[] = array ("url" => "chat.php", "name" => get_lang("Chat"));
+//$noPHP_SELF=true;
+//$shortBanner=false;
+//Display::display_header(null,"Chat");
+
+$tool_name = get_lang('Chat');
+
+// If it is a group chat then the breadcrumbs.
+if ($_SESSION['_gid'] OR $_GET['group_id']) {
+
+ if (isset($_SESSION['_gid'])) {
+ $_clean['group_id']=(int)$_SESSION['_gid'];
+ }
+ if (isset($_GET['group_id'])) {
+ $_clean['group_id']=(int)Database::escape_string($_GET['group_id']);
+ }
+ $group_properties = GroupManager :: get_group_properties($_clean['group_id']);
+ $interbreadcrumb[] = array ("url" => "../group/group.php", "name" => get_lang('Groups'));
+ $interbreadcrumb[] = array ("url"=>"../group/group_space.php?gidReq=".$_SESSION['_gid'], "name"=> get_lang('GroupSpace').' ('.$group_properties['name'].')');
+ $noPHP_SELF=true;
+ $shortBanner=false;
+ $add_group_to_title = ' ('.$group_properties['name'].')';
+ $groupfilter='group_id="'.$_clean['group_id'].'"';
-$interbreadcrumb[] = array ("url" => "chat.php", "name" => get_lang("Chat"));
-$noPHP_SELF=true;
-$shortBanner=false;
+ //ensure this tool in groups whe it's private or deactivated
+ /*if ($group_properties['chat_state']==0)
+ {
+ echo api_not_allowed();
+ }
+ elseif ($group_properties['chat_state']==2)
+ {
+ if (!api_is_allowed_to_edit(false,true) and !GroupManager :: is_user_in_group($_user['user_id'], $_SESSION['_gid']))
+ {
+ echo api_not_allowed();
+ }
+ }*/
-Display::display_header(null,"Chat");
+}
+else
+{
+ $groupfilter='group_id=0';
+}
+Display::display_header($tool_name, 'Chat');
+//$is_allowed_to_edit = api_is_allowed_to_edit(false,true);
?>