Fixed export/import session with coachs - DT#5496

skala
Cristian Fasanando 16 years ago
parent 5bec08d904
commit 5fee16f285
  1. 67
      main/admin/session_export.php
  2. 298
      main/admin/session_import.php

@ -69,7 +69,7 @@ if($_POST['formSent'] )
$session_id=$_POST['session_id']; $session_id=$_POST['session_id'];
if(empty($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"; ON $tbl_user.user_id = $tbl_session.id_coach ORDER BY id";
global $_configuration; global $_configuration;
@ -77,7 +77,7 @@ if($_POST['formSent'] )
$tbl_session_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION); $tbl_session_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id(); $access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){ if ($access_url_id != -1){
$sql = "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) 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 WHERE access_url_id = $access_url_id
ORDER BY id"; ORDER BY id";
@ -88,7 +88,7 @@ if($_POST['formSent'] )
} }
else 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 FROM $tbl_session
INNER JOIN $tbl_user INNER JOIN $tbl_user
ON $tbl_user.user_id = $tbl_session.id_coach ON $tbl_user.user_id = $tbl_session.id_coach
@ -125,7 +125,7 @@ if($_POST['formSent'] )
if($file_type == 'csv') if($file_type == 'csv')
{ {
$cvs = true; $cvs = true;
fputs($fp,"SessionName;Coach;DateStart;DateEnd;Users;Courses;\n"); fputs($fp,"SessionName;Coach;DateStart;DateEnd;Visibility;SessionCategory;Users;Courses;\n");
} }
else else
{ {
@ -140,15 +140,19 @@ if($_POST['formSent'] )
$row['username'] = str_replace(';',',',$row['username']); $row['username'] = str_replace(';',',',$row['username']);
$row['date_start'] = str_replace(';',',',$row['date_start']); $row['date_start'] = str_replace(';',',',$row['date_start']);
$row['date_end'] = str_replace(';',',',$row['date_end']); $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){ 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 { else {
$add = "\t<Session>\n" $add = "\t<Session>\n"
."\t\t<SessionName>$row[name]</SessionName>\n" ."\t\t<SessionName>$row[name]</SessionName>\n"
."\t\t<Coach>$row[username]</Coach>\n" ."\t\t<Coach>$row[username]</Coach>\n"
."\t\t<DateStart>$row[date_start]</DateStart>\n" ."\t\t<DateStart>$row[date_start]</DateStart>\n"
."\t\t<DateEnd>$row[date_end]</DateEnd>\n"; ."\t\t<DateEnd>$row[date_end]</DateEnd>\n"
."\t\t<Visibility>$row[visibility]</Visibility>\n"
."\t\t<SessionCategory>$row[session_category]</SessionCategory>\n";
} }
//users //users
@ -176,37 +180,55 @@ if($_POST['formSent'] )
$add .= $users; $add .= $users;
//courses //courses
$sql = "SELECT DISTINCT $tbl_course.code, $tbl_user.username FROM $tbl_course $sql = "SELECT DISTINCT $tbl_course.code
INNER JOIN $tbl_session_course FROM $tbl_course
ON $tbl_course.code = $tbl_session_course.course_code INNER JOIN $tbl_session_course_user
AND $tbl_session_course.id_session = '".$row['id']."' ON $tbl_course.code = $tbl_session_course_user.course_code
LEFT JOIN $tbl_user AND $tbl_session_course_user.id_session = '".$row['id']."'";
ON $tbl_user.user_id = $tbl_session_course.id_coach";
$rsCourses = Database::query($sql,__FILE__,__LINE__); $rsCourses = Database::query($sql,__FILE__,__LINE__);
$courses = ''; $courses = '';
while($rowCourses = Database::fetch_array($rsCourses)){ 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['code']);
$courses .= '['.str_replace(';',',',$rowCourses['username']).']['; $courses .= '['.str_replace(';',',',$coachs).'][';
} }
else { else {
$courses .= "\t\t<Course>\n"; $courses .= "\t\t<Course>\n";
$courses .= "\t\t\t<CourseCode>$rowCourses[code]</CourseCode>\n"; $courses .= "\t\t\t<CourseCode>$rowCourses[code]</CourseCode>\n";
$courses .= "\t\t\t<Coach>$rowCourses[username]</Coach>\n"; $courses .= "\t\t\t<Coach>$coachs</Coach>\n";
} }
// rel user courses // rel user courses
$sql = "SELECT DISTINCT username $sql = "SELECT DISTINCT u.username
FROM $tbl_user FROM $tbl_session_course_user scu
INNER JOIN $tbl_session_course_user INNER JOIN $tbl_session_user su ON scu.id_user = su.id_user AND scu.id_session = su.id_session
ON $tbl_session_course_user.id_user = $tbl_user.user_id INNER JOIN $tbl_user u
AND $tbl_session_course_user.course_code='".$rowCourses['code']."' ON scu.id_user = u.user_id
AND id_session='".$row['id']."'"; AND scu.course_code='".$rowCourses['code']."'
AND scu.id_session='".$row['id']."'";
$rsUsersCourse = Database::query($sql,__FILE__,__LINE__); $rsUsersCourse = Database::query($sql,__FILE__,__LINE__);
$userscourse = '';
while($rowUsersCourse = Database::fetch_array($rsUsersCourse)){ while($rowUsersCourse = Database::fetch_array($rsUsersCourse)){
if($cvs){ if($cvs){
$userscourse .= str_replace(';',',',$rowUsersCourse['username']).','; $userscourse .= str_replace(';',',',$rowUsersCourse['username']).',';
} }
@ -224,12 +246,11 @@ if($_POST['formSent'] )
$courses .= "\t\t</Course>\n"; $courses .= "\t\t</Course>\n";
} }
} }
if(!empty($courses) && $cvs) if(!empty($courses) && $cvs)
$courses = api_substr($courses , 0, api_strlen($courses)-1); $courses = api_substr($courses , 0, api_strlen($courses)-1);
$add .= $courses; $add .= $courses;
if($cvs) { if($cvs) {
$breakline = api_is_windows_os()?"\r\n":"\n"; $breakline = api_is_windows_os()?"\r\n":"\n";
$add .= ";$breakline"; $add .= ";$breakline";

@ -69,6 +69,7 @@ if ($_POST['formSent']) {
// $root = @simplexml_load_string(api_utf8_encode_xml(file_get_contents($_FILES['import_file']['tmp_name']))); // $root = @simplexml_load_string(api_utf8_encode_xml(file_get_contents($_FILES['import_file']['tmp_name'])));
// To ease debugging let us use: // To ease debugging let us use:
$content = file_get_contents($_FILES['import_file']['tmp_name']); $content = file_get_contents($_FILES['import_file']['tmp_name']);
$content = api_utf8_encode_xml($content); $content = api_utf8_encode_xml($content);
$root = @simplexml_load_string($content); $root = @simplexml_load_string($content);
unset($content); unset($content);
@ -241,6 +242,7 @@ if ($_POST['formSent']) {
// Creating sessions from <Sessions> base node. // Creating sessions from <Sessions> base node.
if (count($root->Session) > 0) { if (count($root->Session) > 0) {
foreach ($root->Session as $node_session) { foreach ($root->Session as $node_session) {
$course_counter = 0; $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) { if (!$updatesession) {
// Always create a session. // Always create a session.
$unique_name = false; // This MUST be initializead. $unique_name = false; // This MUST be initializead.
@ -311,6 +316,8 @@ if ($_POST['formSent']) {
id_coach = '$coach_id', id_coach = '$coach_id',
date_start = '$date_start', date_start = '$date_start',
date_end = '$date_end', date_end = '$date_end',
visibility = '$visibility',
session_category_id = '$session_category_id',
session_admin_id=".intval($_user['user_id']); session_admin_id=".intval($_user['user_id']);
$rs_session = Database::query($sql_session, __FILE__, __LINE__); $rs_session = Database::query($sql_session, __FILE__, __LINE__);
$session_id = Database::insert_id(); $session_id = Database::insert_id();
@ -326,6 +333,8 @@ if ($_POST['formSent']) {
id_coach = '$coach_id', id_coach = '$coach_id',
date_start = '$date_start', date_start = '$date_start',
date_end = '$date_end', date_end = '$date_end',
visibility = '$visibility',
session_category_id = '$session_category_id',
session_admin_id=".intval($_user['user_id']); session_admin_id=".intval($_user['user_id']);
$rs_session = Database::query($sql_session, __FILE__, __LINE__); $rs_session = Database::query($sql_session, __FILE__, __LINE__);
$session_id = Database::insert_id(); $session_id = Database::insert_id();
@ -335,7 +344,9 @@ if ($_POST['formSent']) {
$sql_session = "UPDATE $tbl_session SET $sql_session = "UPDATE $tbl_session SET
id_coach = '$coach_id', id_coach = '$coach_id',
date_start = '$date_start', date_start = '$date_start',
date_end = '$date_end' date_end = '$date_end',
visibility = '$visibility',
session_category_id = '$session_category_id'
WHERE name = '$session_name'"; WHERE name = '$session_name'";
$rs_session = Database::query($sql_session, __FILE__, __LINE__); $rs_session = Database::query($sql_session, __FILE__, __LINE__);
$session_id = Database::query("SELECT id FROM $tbl_session WHERE name='$session_name'", __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); UrlManager::add_session_to_url($session_id, 1);
} }
// Adding users to the new session. // Adding users to the new session.
foreach ($node_session->User as $node_user) { foreach ($node_session->User as $node_user) {
$username = UserManager::purify_username(api_utf8_decode($node_user), $purification_option_for_usernames); $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. // Adding courses to a session.
foreach ($node_session->Course as $node_course) { foreach ($node_session->Course as $node_course) {
$course_code = Database::escape_string(trim(api_utf8_decode($node_course->CourseCode))); $course_code = Database::escape_string(trim(api_utf8_decode($node_course->CourseCode)));
// Verify that the course pointed by the course code node exists. // Verify that the course pointed by the course code node exists.
if (CourseManager::course_exists($course_code)) { if (CourseManager::course_exists($course_code)) {
// If the course exists we continue. // If the course exists we continue.
$course_info = CourseManager::get_course_information($course_code); $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.'<br />';
$coach_id = '';
}
} else {
$coach_id = '';
}
$session_course_relation = SessionManager::relation_session_course_exist($session_id, $course_code); $session_course_relation = SessionManager::relation_session_course_exist($session_id, $course_code);
if (!$session_course_relation) { if (!$session_course_relation) {
$sql_course = "INSERT INTO $tbl_session_course SET $sql_course = "INSERT INTO $tbl_session_course SET
@ -396,34 +402,53 @@ if ($_POST['formSent']) {
id_session='$session_id'"; id_session='$session_id'";
$rs_course = Database::query($sql_course, __FILE__, __LINE__); $rs_course = Database::query($sql_course, __FILE__, __LINE__);
} }
if (Database::affected_rows()) {
$course_counter++; $course_coachs = explode(",",$node_course->Coach);
$users_in_course_counter = 0;
foreach ($node_course->User as $node_user) { // adding coachs to session course user
$username = UserManager::purify_username(api_utf8_decode($node_user), $purification_option_for_usernames); foreach ($course_coachs as $course_coach) {
$user_id = UserManager::get_user_id_from_username($username); $coach_id = UserManager::purify_username(api_utf8_decode($course_coach), $purification_option_for_usernames);
if ($user_id !== false) { $coach_id = UserManager::get_user_id_from_username($course_coach);
// Adding to session_rel_user table. if ($coach_id !== false) {
$sql = "INSERT IGNORE INTO $tbl_session_user SET $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
id_user='$user_id', id_user='$coach_id',
id_session = '$session_id'"; course_code='$course_code',
$rs_user = Database::query($sql, __FILE__, __LINE__); id_session = '$session_id',
$user_counter++; status = 2 ";
// Adding to session_rel_user_rel_course table. $rs_coachs = Database::query($sql, __FILE__, __LINE__);
$sql = "INSERT IGNORE INTO $tbl_session_course_user SET } else {
id_user='$user_id', $error_message .= get_lang('UserDoesNotExist').' : '.$user.'<br />';
course_code='$course_code', }
id_session = '$session_id'"; }
$rs_users = Database::query($sql, __FILE__, __LINE__);
$users_in_course_counter++; // adding users
} else { $course_counter++;
$error_message .= get_lang('UserDoesNotExist').' : '.$username.'<br />'; $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.'<br />';
} }
$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)) { if (CourseManager::course_exists($course_code, true)) {
@ -434,52 +459,62 @@ if ($_POST['formSent']) {
if ($vcourse['code'] == $course_code) { if ($vcourse['code'] == $course_code) {
// Ignore, this has already been inserted. // Ignore, this has already been inserted.
} else { } 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.'<br />';
$coach_id = '';
}
} else {
$coach_id = '';
}
$sql_course = "INSERT INTO $tbl_session_course SET $sql_course = "INSERT INTO $tbl_session_course SET
course_code = '".$vcourse['code']."', course_code = '".$vcourse['code']."',
id_session='$session_id'"; id_session='$session_id'";
$rs_course = Database::query($sql_course, __FILE__, __LINE__); $rs_course = Database::query($sql_course, __FILE__, __LINE__);
if (Database::affected_rows()) {
$course_counter++; $course_coachs = explode(",",$node_course->Coach);
$users_in_course_counter = 0;
foreach ($node_course->User as $node_user) { // adding coachs to session course user
$username = UserManager::purify_username(api_utf8_decode($node_user), $purification_option_for_usernames); foreach ($course_coachs as $course_coach) {
$user_id = UserManager::get_user_id_from_username($username); $coach_id = UserManager::purify_username(api_utf8_decode($course_coach), $purification_option_for_usernames);
if ($user_id !== false) { $coach_id = UserManager::get_user_id_from_username($course_coach);
$sql = "INSERT IGNORE INTO $tbl_session_user SET if ($coach_id !== false) {
id_user='$user_id', $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
id_session = '$session_id'"; id_user='$coach_id',
$rs_user = Database::query($sql, __FILE__, __LINE__); course_code='{$vcourse['code']}',
if (Database::affected_rows()) { id_session = '$session_id',
$user_counter++; status = 2 ";
} $rs_coachs = Database::query($sql, __FILE__, __LINE__);
$sql = "INSERT IGNORE INTO $tbl_session_course_user SET } else {
id_user='$user_id', $error_message .= get_lang('UserDoesNotExist').' : '.$user.'<br />';
course_code='".$vcourse['code']."', }
id_session = '$session_id'"; }
$rs_users = Database::query($sql, __FILE__, __LINE__);
if (Database::affected_rows()) { // adding users
$users_in_course_counter++; $course_counter++;
} $users_in_course_counter = 0;
} else { foreach ($node_course->User as $node_user) {
$error_message .= get_lang('UserDoesNotExist').' : '.$username.'<br />'; $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.'<br />';
} }
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']; $inserted_in_course[$vcourse['code']] = $vcourse['title'];
} }
} else { } else {
// Tthe course does not exist. // Tthe course does not exist.
$error_message .= get_lang('CourseDoesNotExist').' : '.$course_code.'<br />'; $error_message .= get_lang('CourseDoesNotExist').' : '.$course_code.'<br />';
@ -502,6 +537,7 @@ if ($_POST['formSent']) {
/////////////////// ///////////////////
$content = file($_FILES['import_file']['tmp_name']); $content = file($_FILES['import_file']['tmp_name']);
if (!api_strstr($content[0], ';')) { if (!api_strstr($content[0], ';')) {
$error_message = get_lang('NotCSV'); $error_message = get_lang('NotCSV');
} else { } else {
@ -523,6 +559,7 @@ if ($_POST['formSent']) {
} }
} }
} }
// looping the sessions // looping the sessions
foreach ($sessions as $enreg) { foreach ($sessions as $enreg) {
$user_counter = 0; $user_counter = 0;
@ -531,6 +568,8 @@ if ($_POST['formSent']) {
$session_name = $enreg['SessionName']; $session_name = $enreg['SessionName'];
$date_start = $enreg['DateStart']; $date_start = $enreg['DateStart'];
$date_end = $enreg['DateEnd']; $date_end = $enreg['DateEnd'];
$visibility = $enreg['Visibility'];
$session_category_id = $enreg['SessionCategory'];
// searching a coach // searching a coach
if (!empty($enreg['Coach'])) { if (!empty($enreg['Coach'])) {
@ -569,6 +608,8 @@ if ($_POST['formSent']) {
id_coach = '$coach_id', id_coach = '$coach_id',
date_start = '$date_start', date_start = '$date_start',
date_end = '$date_end', date_end = '$date_end',
visibility = '$visibility',
session_category_id = '$session_category_id',
session_admin_id=".intval($_user['user_id']); session_admin_id=".intval($_user['user_id']);
$rs_session = Database::query($sql_session, __FILE__, __LINE__); $rs_session = Database::query($sql_session, __FILE__, __LINE__);
$session_id = Database::insert_id(); $session_id = Database::insert_id();
@ -582,7 +623,10 @@ if ($_POST['formSent']) {
name = '$session_name', name = '$session_name',
id_coach = '$coach_id', id_coach = '$coach_id',
date_start = '$date_start', 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__); $rs_session = Database::query($sql_session, __FILE__, __LINE__);
// We get the last insert id. // We get the last insert id.
$my_session_result = SessionManager::get_session_by_name($session_name); $my_session_result = SessionManager::get_session_by_name($session_name);
@ -593,7 +637,9 @@ if ($_POST['formSent']) {
$sql_session = "UPDATE $tbl_session SET $sql_session = "UPDATE $tbl_session SET
id_coach = '$coach_id', id_coach = '$coach_id',
date_start = '$date_start', date_start = '$date_start',
date_end = '$date_end' date_end = '$date_end',
visibility = '$visibility',
session_category_id = '$session_category_id'
WHERE name = '$session_name'"; WHERE name = '$session_name'";
$rs_session = Database::query($sql_session, __FILE__, __LINE__); $rs_session = Database::query($sql_session, __FILE__, __LINE__);
$session_id = Database::query("SELECT id FROM $tbl_session WHERE name='$session_name'", __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) { foreach ($courses as $course) {
$course_code = api_strtoupper(api_substr($course, 0, api_strpos($course, '['))); $course_code = api_strtoupper(api_substr($course, 0, api_strpos($course, '[')));
if (CourseManager::course_exists($course_code)) { if (CourseManager::course_exists($course_code)) {
// If the course exists we continue // If the course exists we continue
@ -649,12 +696,34 @@ if ($_POST['formSent']) {
$rs_course = Database::query($sql_course, __FILE__, __LINE__); $rs_course = Database::query($sql_course, __FILE__, __LINE__);
$course_counter++; $course_counter++;
$users = api_substr($course, api_strpos($course, '[', 1) + 1 , api_strpos($course, ']', 1)); $course_split = array();
$users = explode('|', $enreg['Users']); $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.'<br />';
}
}
$users_in_course_counter = 0; $users_in_course_counter = 0;
// Adding the relationship "Session - Course - User". // Adding the relationship "Session - Course - User".
foreach ($users as $user) { foreach ($course_users as $user) {
$user_id = UserManager::get_user_id_from_username($user); $user_id = UserManager::get_user_id_from_username($user);
if ($user_id !== false) { if ($user_id !== false) {
$sql = "INSERT IGNORE INTO $tbl_session_course_user SET $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
@ -667,7 +736,8 @@ if ($_POST['formSent']) {
$error_message .= get_lang('UserDoesNotExist').' : '.$user.'<br />'; $error_message .= get_lang('UserDoesNotExist').' : '.$user.'<br />';
} }
} }
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); $course_info = CourseManager::get_course_information($course_code);
$inserted_in_course[$course_code] = $course_info['title']; $inserted_in_course[$course_code] = $course_info['title'];
@ -676,53 +746,61 @@ if ($_POST['formSent']) {
} }
if (CourseManager::course_exists($course_code, true)) { if (CourseManager::course_exists($course_code, true)) {
$list = CourseManager :: get_courses_info_from_visual_code($course_code); $list = CourseManager :: get_courses_info_from_visual_code($course_code);
foreach ($list as $vcourse) { foreach ($list as $vcourse) {
if ($vcourse['code'] == $course_code) { if ($vcourse['code'] == $course_code) {
// Ignore, this has already been inserted. // Ignore, this has already been inserted.
} else { } else {
$coach = api_strstr($course, '['); $coach = api_strstr($course, '[');
$coach = api_substr($coach, 1, api_strpos($coach,']') - 1); $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". // Adding the relationship "Session - Course".
$sql_course = "INSERT IGNORE INTO $tbl_session_course SET $sql_course = "INSERT IGNORE INTO $tbl_session_course SET
course_code = '".$vcourse['code']."', course_code = '".$vcourse['code']."',
id_session='$session_id'"; id_session='$session_id'";
$rs_course = Database::query($sql_course, __FILE__, __LINE__); $rs_course = Database::query($sql_course, __FILE__, __LINE__);
if (Database::affected_rows()) {
$course_counter++; // adding coachs to session course user
$users = api_substr($course , api_strpos($course,'[', 1) + 1, api_strpos($course,']', 1)); foreach ($course_coachs as $course_coach) {
$users = explode('|', $enreg['Users']); $coach_id = UserManager::get_user_id_from_username($course_coach);
$users_in_course_counter = 0; if ($coach_id !== false) {
foreach ($users as $user) { $sql = "INSERT IGNORE INTO $tbl_session_course_user SET
$sqlUser = "SELECT user_id FROM $tbl_user WHERE username='".$user."'"; id_user='$coach_id',
$rs_user = Database::query($sqlUser); course_code='{$vcourse['code']}',
list($user_id) = (Database::fetch_array($rs_user)); id_session = '$session_id',
$sql = "INSERT INTO $tbl_session_course_user SET status = 2 ";
$rs_coachs = Database::query($sql, __FILE__, __LINE__);
} else {
$error_message .= get_lang('UserDoesNotExist').' : '.$user.'<br />';
}
}
$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', id_user='$user_id',
course_code='".$vcourse['code']."', course_code='{$vcourse['code']}',
id_session = '$session_id'"; id_session = '$session_id'";
$rs_users = Database::query($sql, __FILE__, __LINE__); $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.'<br />';
} }
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']; $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'"; $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__); Database::query($sql_update_users, __FILE__, __LINE__);
} }

Loading…
Cancel
Save