diff --git a/main/admin/session_import.php b/main/admin/session_import.php index 3184c26c5f..992c596a47 100644 --- a/main/admin/session_import.php +++ b/main/admin/session_import.php @@ -1,4 +1,4 @@ -Users->User as $userNode) - { - $username = mb_convert_encoding($userNode->Username,$charset,'utf-8'); - $isCut = 0; // if the username given is too long - if(strlen($username)>20) + if (count($racine->Users->User) > 0) { + foreach($racine->Users->User as $userNode) { - $user_name_dist = $username; - $username = substr($username,0,20); - $isCut = 1; - } - - $sql = "SELECT 1 FROM $tbl_user WHERE username='".addslashes($username)."'"; - $rs = api_sql_query($sql, __FILE__, __LINE__); - - if (Database::affected_rows()==0) { - if ($isCut) { - $errorMsg .= get_lang('UsernameTooLongWasCut').' '.get_lang('From').' '.$user_name_dist.' '.get_lang('To').' '.$username.'
'; - } - - $lastname = mb_convert_encoding($userNode->Lastname,$charset,'utf-8'); - $firstname = mb_convert_encoding($userNode->Firstname,$charset,'utf-8'); - $password = mb_convert_encoding($userNode->Password,$charset,'utf-8'); - if(empty($password)) { - $password = base64_encode(rand(1000,10000)); - } - $email = mb_convert_encoding($userNode->Email,$charset,'utf-8'); - $official_code = mb_convert_encoding($userNode->OfficialCode,$charset,'utf-8'); - $phone = mb_convert_encoding($userNode->Phone,$charset,'utf-8'); - $status = mb_convert_encoding($userNode->Status,$charset,'utf-8'); - switch ($status) { - case 'student' : $status = 5; break; - case 'teacher' : $status = 1; break; - default : $status = 5; $errorMsg = get_lang('StudentStatusWasGivenTo').' : '.$username.'
'; - } - - $sql = "INSERT INTO $tbl_user SET - username = '".Database::escape_string($username)."', - lastname = '".Database::escape_string($lastname)."', - firstname = '".Database::escape_string($firstname)."', - password = '".(api_get_encrypted_password($password))."', - email = '".Database::escape_string($email)."', - official_code = '".Database::escape_string($official_code)."', - phone = '".Database::escape_string($phone)."', - status = '".Database::escape_string($status)."'"; - - //if available adding also the access_url rel user relationship - api_sql_query($sql, __FILE__, __LINE__); - $return=Database::get_last_insert_id(); - global $_configuration; - require_once (api_get_path(LIBRARY_PATH).'urlmanager.lib.php'); - if ($_configuration['multiple_access_urls']==true) { - if (api_get_current_access_url_id()!=-1) - UrlManager::add_user_to_url($return, api_get_current_access_url_id()); - else - UrlManager::add_user_to_url($return, 1); - } else { - //we are adding by default the access_url_user table with access_url_id = 1 - UrlManager::add_user_to_url($return, 1); - } - - if(Database::affected_rows()>0 && $sendMail) { - $recipient_name = $firstname.' '.$lastname; - $emailsubject = '['.get_setting('siteName').'] '.get_lang('YourReg').' '.get_setting('siteName'); - $emailbody="[NOTE:] ".get_lang('ThisIsAutomaticEmailNoReply').".\n\n".get_lang('langDear')." $firstname $lastname,\n\n".get_lang('langYouAreReg')." ". get_setting('siteName') ." ".get_lang('langSettings')." $username\n". get_lang('langPass')." : $password\n\n".get_lang('langAddress') ." ". get_lang('langIs') ." ". $serverAddress ."\n\n".get_lang('YouWillSoonReceiveMailFromCoach')."\n\n". get_lang('langProblem'). "\n\n". get_lang('langFormula'); - $sender_name = get_setting('administratorName').' '.get_setting('administratorSurname'); - $email_admin = get_setting('emailAdministrator'); - @api_mail($recipient_name, $email, $emailsubject, $emailbody, $sender_name,$email_admin); - } - } else { - $lastname = mb_convert_encoding($userNode->Lastname,$charset,'utf-8'); - $firstname = mb_convert_encoding($userNode->Firstname,$charset,'utf-8'); - $password = mb_convert_encoding($userNode->Password,$charset,'utf-8'); - $email = mb_convert_encoding($userNode->Email,$charset,'utf-8'); - $official_code = mb_convert_encoding($userNode->OfficialCode,$charset,'utf-8'); - $phone = mb_convert_encoding($userNode->Phone,$charset,'utf-8'); - $status = mb_convert_encoding($userNode->Status,$charset,'utf-8'); - switch($status) { - case 'student' : $status = 5; break; - case 'teacher' : $status = 1; break; - default : $status = 5; $errorMsg = get_lang('StudentStatusWasGivenTo').' : '.$username.'
'; + $username = mb_convert_encoding($userNode->Username,$charset,'utf-8'); + $isCut = 0; // if the username given is too long + if(strlen($username)>20) + { + $user_name_dist = $username; + $username = substr($username,0,20); + $isCut = 1; } - - $sql = "UPDATE $tbl_user SET + + $sql = "SELECT 1 FROM $tbl_user WHERE username='".addslashes($username)."'"; + $rs = api_sql_query($sql, __FILE__, __LINE__); + + if (Database::affected_rows()==0) { + if ($isCut) { + $errorMsg .= get_lang('UsernameTooLongWasCut').' '.get_lang('From').' '.$user_name_dist.' '.get_lang('To').' '.$username.'
'; + } + + $lastname = mb_convert_encoding($userNode->Lastname,$charset,'utf-8'); + $firstname = mb_convert_encoding($userNode->Firstname,$charset,'utf-8'); + $password = mb_convert_encoding($userNode->Password,$charset,'utf-8'); + if(empty($password)) { + $password = base64_encode(rand(1000,10000)); + } + $email = mb_convert_encoding($userNode->Email,$charset,'utf-8'); + $official_code = mb_convert_encoding($userNode->OfficialCode,$charset,'utf-8'); + $phone = mb_convert_encoding($userNode->Phone,$charset,'utf-8'); + $status = mb_convert_encoding($userNode->Status,$charset,'utf-8'); + switch ($status) { + case 'student' : $status = 5; break; + case 'teacher' : $status = 1; break; + default : $status = 5; $errorMsg = get_lang('StudentStatusWasGivenTo').' : '.$username.'
'; + } + + $sql = "INSERT INTO $tbl_user SET + username = '".Database::escape_string($username)."', lastname = '".Database::escape_string($lastname)."', firstname = '".Database::escape_string($firstname)."', - ".(empty($password) ? "" : "password = '".(api_get_encrypted_password($password))."',")." + password = '".(api_get_encrypted_password($password))."', email = '".Database::escape_string($email)."', official_code = '".Database::escape_string($official_code)."', phone = '".Database::escape_string($phone)."', - status = '".Database::escape_string($status)."' - WHERE username = '".Database::escape_string($username)."'"; - - api_sql_query($sql, __FILE__, __LINE__); - } - } - foreach($racine->Courses->Course as $courseNode) { - $course_code = mb_convert_encoding($courseNode->CourseCode,$charset,'utf-8'); - $title = mb_convert_encoding($courseNode->CourseTitle,$charset,'utf-8'); - $description = mb_convert_encoding($courseNode->CourseDescription,$charset,'utf-8'); - $language = mb_convert_encoding($courseNode->CourseLanguage,$charset,'utf-8'); - $username = mb_convert_encoding($courseNode->CourseTeacher,$charset,'utf-8'); - - $sql = "SELECT user_id, lastname, firstname FROM $tbl_user WHERE username='$username'"; - $rs = api_sql_query($sql, __FILE__, __LINE__); - - list($user_id, $lastname, $firstname) = Database::fetch_array($rs); - $keys = define_course_keys($course_code, "", $dbNamePrefix); - - if (sizeof($keys)) { - - $currentCourseCode = $keys['visual_code']; - $currentCourseId = $keys['currentCourseId']; - if(empty($currentCourseCode)) - $currentCourseCode = $currentCourseId; - $currentCourseDbName = $keys['currentCourseDbName']; - $currentCourseRepository = $keys['currentCourseRepository']; - - if($currentCourseId == strtoupper($course_code)) { - if (empty ($title)) { - $title = $keys['currentCourseCode']; - } - prepare_course_repository($currentCourseRepository, $currentCourseId); - update_Db_course($currentCourseDbName); - fill_course_repository($currentCourseRepository); - fill_Db_course($currentCourseDbName, $currentCourseRepository, 'french'); - //register_course($currentCourseId, $currentCourseCode, $currentCourseRepository, $currentCourseDbName, "$lastname $firstname", $course['unit_code'], addslashes($course['FR']['title']), $language, $user_id); - $sql = "INSERT INTO ".$tbl_course." SET - code = '".$currentCourseId."', - db_name = '".$currentCourseDbName."', - directory = '".$currentCourseRepository."', - course_language = '".$language."', - title = '".$title."', - description = '".lang2db($description)."', - category_code = '', - visibility = '".$defaultVisibilityForANewCourse."', - show_score = '', - disk_quota = NULL, - creation_date = now(), - expiration_date = NULL, - last_edit = now(), - last_visit = NULL, - tutor_name = '".$lastname." ".$firstname."', - visual_code = '".$currentCourseCode."'"; - - api_sql_query($sql, __FILE__, __LINE__); - - $sql = "INSERT INTO ".$tbl_course_user." SET - course_code = '".$currentCourseId."', - user_id = '".$user_id."', - status = '1', - role = '".lang2db('Professor')."', - tutor_id='1', - sort='". ($sort +1)."', - user_course_cat='0'"; - + status = '".Database::escape_string($status)."'"; + + //if available adding also the access_url rel user relationship api_sql_query($sql, __FILE__, __LINE__); + $return=Database::get_last_insert_id(); + global $_configuration; + require_once (api_get_path(LIBRARY_PATH).'urlmanager.lib.php'); + if ($_configuration['multiple_access_urls']==true) { + if (api_get_current_access_url_id()!=-1) + UrlManager::add_user_to_url($return, api_get_current_access_url_id()); + else + UrlManager::add_user_to_url($return, 1); + } else { + //we are adding by default the access_url_user table with access_url_id = 1 + UrlManager::add_user_to_url($return, 1); + } + + if(Database::affected_rows()>0 && $sendMail) { + $recipient_name = $firstname.' '.$lastname; + $emailsubject = '['.get_setting('siteName').'] '.get_lang('YourReg').' '.get_setting('siteName'); + $emailbody="[NOTE:] ".get_lang('ThisIsAutomaticEmailNoReply').".\n\n".get_lang('langDear')." $firstname $lastname,\n\n".get_lang('langYouAreReg')." ". get_setting('siteName') ." ".get_lang('langSettings')." $username\n". get_lang('langPass')." : $password\n\n".get_lang('langAddress') ." ". get_lang('langIs') ." ". $serverAddress ."\n\n".get_lang('YouWillSoonReceiveMailFromCoach')."\n\n". get_lang('langProblem'). "\n\n". get_lang('langFormula'); + $sender_name = get_setting('administratorName').' '.get_setting('administratorSurname'); + $email_admin = get_setting('emailAdministrator'); + @api_mail($recipient_name, $email, $emailsubject, $emailbody, $sender_name,$email_admin); + } + } else { + $lastname = mb_convert_encoding($userNode->Lastname,$charset,'utf-8'); + $firstname = mb_convert_encoding($userNode->Firstname,$charset,'utf-8'); + $password = mb_convert_encoding($userNode->Password,$charset,'utf-8'); + $email = mb_convert_encoding($userNode->Email,$charset,'utf-8'); + $official_code = mb_convert_encoding($userNode->OfficialCode,$charset,'utf-8'); + $phone = mb_convert_encoding($userNode->Phone,$charset,'utf-8'); + $status = mb_convert_encoding($userNode->Status,$charset,'utf-8'); + switch($status) { + case 'student' : $status = 5; break; + case 'teacher' : $status = 1; break; + default : $status = 5; $errorMsg = get_lang('StudentStatusWasGivenTo').' : '.$username.'
'; + } + + $sql = "UPDATE $tbl_user SET + lastname = '".Database::escape_string($lastname)."', + firstname = '".Database::escape_string($firstname)."', + ".(empty($password) ? "" : "password = '".(api_get_encrypted_password($password))."',")." + email = '".Database::escape_string($email)."', + official_code = '".Database::escape_string($official_code)."', + phone = '".Database::escape_string($phone)."', + status = '".Database::escape_string($status)."' + WHERE username = '".Database::escape_string($username)."'"; + + api_sql_query($sql, __FILE__, __LINE__); } - } - } - - foreach ($racine->Session as $sessionNode) { // foreach session - - $countCourses = 0; - $countUsers = 0; - - $SessionName = mb_convert_encoding($sessionNode->SessionName,$charset,'utf-8'); - $Coach = mb_convert_encoding($sessionNode->Coach,$charset,'utf-8'); - - if (!empty($Coach)) { - $sqlCoach = "SELECT user_id FROM $tbl_user WHERE username='$Coach'"; - $rsCoach = api_sql_query($sqlCoach); - list($CoachId) = (Database::fetch_array($rsCoach)); - if(empty($CoachId)) - { - $errorMsg .= get_lang('UserDoesNotExist').' : '.$Coach.'
'; + } + if (count($racine->Courses->Course) > 0) { + foreach($racine->Courses->Course as $courseNode) { + $course_code = mb_convert_encoding($courseNode->CourseCode,$charset,'utf-8'); + $title = mb_convert_encoding($courseNode->CourseTitle,$charset,'utf-8'); + $description = mb_convert_encoding($courseNode->CourseDescription,$charset,'utf-8'); + $language = mb_convert_encoding($courseNode->CourseLanguage,$charset,'utf-8'); + $username = mb_convert_encoding($courseNode->CourseTeacher,$charset,'utf-8'); + + $sql = "SELECT user_id, lastname, firstname FROM $tbl_user WHERE username='$username'"; + $rs = api_sql_query($sql, __FILE__, __LINE__); + + list($user_id, $lastname, $firstname) = Database::fetch_array($rs); + $keys = define_course_keys($course_code, "", $dbNamePrefix); + + if (sizeof($keys)) { + + $currentCourseCode = $keys['visual_code']; + $currentCourseId = $keys['currentCourseId']; + if(empty($currentCourseCode)) + $currentCourseCode = $currentCourseId; + $currentCourseDbName = $keys['currentCourseDbName']; + $currentCourseRepository = $keys['currentCourseRepository']; + + if($currentCourseId == strtoupper($course_code)) { + if (empty ($title)) { + $title = $keys['currentCourseCode']; + } + prepare_course_repository($currentCourseRepository, $currentCourseId); + update_Db_course($currentCourseDbName); + fill_course_repository($currentCourseRepository); + fill_Db_course($currentCourseDbName, $currentCourseRepository, 'french'); + //register_course($currentCourseId, $currentCourseCode, $currentCourseRepository, $currentCourseDbName, "$lastname $firstname", $course['unit_code'], addslashes($course['FR']['title']), $language, $user_id); + $sql = "INSERT INTO ".$tbl_course." SET + code = '".$currentCourseId."', + db_name = '".$currentCourseDbName."', + directory = '".$currentCourseRepository."', + course_language = '".$language."', + title = '".$title."', + description = '".lang2db($description)."', + category_code = '', + visibility = '".$defaultVisibilityForANewCourse."', + show_score = '', + disk_quota = NULL, + creation_date = now(), + expiration_date = NULL, + last_edit = now(), + last_visit = NULL, + tutor_name = '".$lastname." ".$firstname."', + visual_code = '".$currentCourseCode."'"; + + api_sql_query($sql, __FILE__, __LINE__); + + $sql = "INSERT INTO ".$tbl_course_user." SET + course_code = '".$currentCourseId."', + user_id = '".$user_id."', + status = '1', + role = '".lang2db('Professor')."', + tutor_id='1', + sort='". ($sort +1)."', + user_course_cat='0'"; + + api_sql_query($sql, __FILE__, __LINE__); + } + } - } - - $DateStart = $sessionNode->DateStart; - if(!empty($DateStart)) { - list($YearStart,$MonthStart, $DayStart) = explode('-',$DateStart); - if(empty($YearStart) || empty($MonthStart) || empty($DayStart)) { - $errorMsg .= get_lang('WrongDate').' : '.$DateStart.'
'; - break; - } else { - $timeStart = mktime(0,0,0,$MonthStart,$DayStart,$YearStart); + } + } + if (count($racine->Session) > 0) { + foreach ($racine->Session as $sessionNode) { // foreach session + + $countCourses = 0; + $countUsers = 0; + + $SessionName = mb_convert_encoding($sessionNode->SessionName,$charset,'utf-8'); + $Coach = mb_convert_encoding($sessionNode->Coach,$charset,'utf-8'); + + if (!empty($Coach)) { + $sqlCoach = "SELECT user_id FROM $tbl_user WHERE username='$Coach'"; + $rsCoach = api_sql_query($sqlCoach); + list($CoachId) = (Database::fetch_array($rsCoach)); + if(empty($CoachId)) + { + $errorMsg .= get_lang('UserDoesNotExist').' : '.$Coach.'
'; + } } - - $DateEnd = $sessionNode->DateEnd; + + $DateStart = $sessionNode->DateStart; if(!empty($DateStart)) { - list($YearEnd,$MonthEnd, $DayEnd) = explode('-',$DateEnd); - if(empty($YearEnd) || empty($MonthEnd) || empty($DayEnd)) { - $errorMsg .= get_lang('WrongDate').' : '.$DateEnd.'
'; + list($YearStart,$MonthStart, $DayStart) = explode('-',$DateStart); + if(empty($YearStart) || empty($MonthStart) || empty($DayStart)) { + $errorMsg .= get_lang('WrongDate').' : '.$DateStart.'
'; break; } else { - $timeEnd = mktime(0,0,0,$MonthEnd,$DayEnd,$YearEnd); + $timeStart = mktime(0,0,0,$MonthStart,$DayStart,$YearStart); + } + + $DateEnd = $sessionNode->DateEnd; + if(!empty($DateStart)) { + list($YearEnd,$MonthEnd, $DayEnd) = explode('-',$DateEnd); + if(empty($YearEnd) || empty($MonthEnd) || empty($DayEnd)) { + $errorMsg .= get_lang('WrongDate').' : '.$DateEnd.'
'; + break; + } else { + $timeEnd = mktime(0,0,0,$MonthEnd,$DayEnd,$YearEnd); + } + } + if($timeEnd - $timeStart < 0) { + $errorMsg .= get_lang('StartDateShouldBeBeforeEndDate').' : '.$DateEnd.'
'; } - } - if($timeEnd - $timeStart < 0) { - $errorMsg .= get_lang('StartDateShouldBeBeforeEndDate').' : '.$DateEnd.'
'; } } - // verify that session doesn't exist while(!$uniqueName) {