diff --git a/main/mySpace/access_details.php b/main/mySpace/access_details.php index 8b8daa3059..7bf3742cf6 100644 --- a/main/mySpace/access_details.php +++ b/main/mySpace/access_details.php @@ -51,7 +51,7 @@ $this_section = "session_my_space"; /* MAIN */ $user_id = Security::remove_XSS($_REQUEST['student']); -$course_code=Security::remove_XSS($_REQUEST['course']); +$course_code = Security::remove_XSS($_REQUEST['course']); $connections = get_connections_to_course($user_id, $course_code); if (api_is_xml_http_request()) { @@ -73,7 +73,7 @@ if (api_is_xml_http_request()) { //creating the main array //$main_year[date('Y', $data['login'])] += calculHours($data['logout'] - $data['login']) * 60; //$main_month_year[date('m-Y', $data['login'])] += calculHours($data['logout'] - $data['login']) * 60; - $main_month_year[date('m-Y', $data['login'])] += float_format(($data['logout'] - $data['login'])/60, 0); + $main_month_year[date('m-Y', $data['login'])] += float_format(($data['logout'] - $data['login']) / 60, 0); //$main_day[date('d-m-Y', $data['login'])] += calculHours($data['logout'] - $data['login']) * 60; $main_day[date('d-m-Y', $data['login'])] += float_format(($data['logout'] - $data['login']) / 60, 0); if ($i > 500) { @@ -203,8 +203,8 @@ $(function() { ' ; Display :: display_header(''); -$TBL_USERINFO_DEF = Database :: get_course_table(TABLE_USER_INFO); -$mainUserInfo = api_get_user_info($user_id); +$TBL_USERINFO_DEF = Database :: get_course_table(TABLE_USER_INFO); +$mainUserInfo = api_get_user_info($user_id); $result_to_print = ''; $main_date_array = array(); diff --git a/main/mySpace/admin.php b/main/mySpace/admin.php index d63b7f98e2..979fc630fa 100644 --- a/main/mySpace/admin.php +++ b/main/mySpace/admin.php @@ -88,8 +88,8 @@ if (isset($_POST['export'])) { $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname' : ' ORDER BY lastname, firstname'; } $sqlAdmins = "SELECT user.user_id,lastname,firstname,email - FROM $tbl_user as user, $tbl_admin as admin - WHERE admin.user_id=user.user_id".$order_clause; + FROM $tbl_user as user, $tbl_admin as admin + WHERE admin.user_id=user.user_id".$order_clause; $resultAdmins = Database::query($sqlAdmins, __FILE__, __LINE__); if (api_is_western_name_order()) { @@ -99,16 +99,15 @@ if (api_is_western_name_order()) { } if (api_is_western_name_order(PERSON_NAME_DATA_EXPORT)) { - $a_header[] = get_lang('FirstName'); - $a_header[] = get_lang('LastName'); - $a_header[] = get_lang('Email'); + $a_header[] = get_lang('FirstName', ''); + $a_header[] = get_lang('LastName', ''); } else { - $a_header[] = get_lang('LastName'); - $a_header[] = get_lang('FirstName'); - $a_header[] = get_lang('Email'); + $a_header[] = get_lang('LastName', ''); + $a_header[] = get_lang('FirstName', ''); } +$a_header[] = get_lang('Email', ''); -if (Database::num_rows($resultAdmins) > 0 ) { +if (Database::num_rows($resultAdmins) > 0) { while ($a_admins = Database::fetch_array($resultAdmins)) { $i_user_id = $a_admins["user_id"]; @@ -116,9 +115,9 @@ if (Database::num_rows($resultAdmins) > 0 ) { $s_firstname = $a_admins["firstname"]; $s_email = $a_admins["email"]; - if ($i%2 == 0) { + if ($i % 2 == 0) { $s_css_class = "row_odd"; - if ($i%20 == 0 && $i!=0) { + if ($i % 20 == 0 && $i != 0) { if (api_is_western_name_order()) { echo ''.get_lang('FirstName').''.get_lang('LastName').''.get_lang('Email').''; } else { @@ -140,12 +139,11 @@ if (Database::num_rows($resultAdmins) > 0 ) { if (api_is_western_name_order(PERSON_NAME_DATA_EXPORT)) { $a_data[$i_user_id]["firstname"] = $s_firstname; $a_data[$i_user_id]["lastname"] = $s_lastname; - $a_data[$i_user_id]["email"] = $s_email; } else { $a_data[$i_user_id]["lastname"] = $s_lastname; $a_data[$i_user_id]["firstname"] = $s_firstname; - $a_data[$i_user_id]["email"] = $s_email; } + $a_data[$i_user_id]["email"] = $s_email; } } diff --git a/main/mySpace/coaches.php b/main/mySpace/coaches.php index 3d801c1eda..234d5a8aa4 100644 --- a/main/mySpace/coaches.php +++ b/main/mySpace/coaches.php @@ -18,7 +18,7 @@ $nameTools = get_lang('Tutors'); api_block_anonymous_users(); $interbreadcrumb[] = array ("url" => "index.php", "name" => get_lang('MySpace')); -if(isset($_GET["id_student"])){ +if (isset($_GET["id_student"])) { $interbreadcrumb[] = array ("url" => "student.php", "name" => get_lang('Students')); } @@ -104,9 +104,8 @@ function is_coach() { $result = Database::query($sql, __FILE__, __LINE__); if (Database::num_rows($result) > 0) { return true; - } else { - return false; } + return false; } @@ -145,18 +144,17 @@ if (api_is_western_name_order()) { } if (api_is_western_name_order(PERSON_NAME_DATA_EXPORT)) { - $a_header[] = get_lang('FirstName'); - $a_header[] = get_lang('LastName'); - $a_header[] = get_lang('ConnectionTime'); + $a_header[] = get_lang('FirstName', ''); + $a_header[] = get_lang('LastName', ''); } else { - $a_header[] = get_lang('LastName'); - $a_header[] = get_lang('FirstName'); - $a_header[] = get_lang('ConnectionTime'); + $a_header[] = get_lang('LastName', ''); + $a_header[] = get_lang('FirstName', ''); } +$a_header[] = get_lang('ConnectionTime', ''); if (Database::num_rows($resultCoachs) > 0) { while ($a_coachs = Database::fetch_array($resultCoachs)) { - $i_id_coach=$a_coachs["id_coach"]; + $i_id_coach = $a_coachs["id_coach"]; if (isset($_GET["id_student"])) { $sql_infos_coach = "SELECT lastname, firstname FROM $tbl_user WHERE user_id='$i_id_coach'"; @@ -172,7 +170,7 @@ if (Database::num_rows($resultCoachs) > 0) { $q_result_connection_time = Database::query($s_sql_connection_time, __FILE__, __LINE__); $i_nb_seconds = 0; - while($a_connections = Database::fetch_array($q_result_connection_time)) { + while ($a_connections = Database::fetch_array($q_result_connection_time)) { $s_login_date = $a_connections["login_date"]; $s_logout_date = $a_connections["logout_date"]; $i_timestamp_login_date = strtotime($s_login_date); @@ -185,9 +183,9 @@ if (Database::num_rows($resultCoachs) > 0) { $s_connection_time = ""; } - if ($i%2 == 0) { + if ($i % 2 == 0) { $s_css_class = "row_odd"; - if ($i%20 == 0 && $i != 0) { + if ($i % 20 == 0 && $i != 0) { if (api_is_western_name_order()) { echo ''.get_lang('FirstName').''.get_lang('LastName').''.get_lang('ConnectionTime').''.get_lang('AdminCourses').''.get_lang('Students').''; } else { @@ -209,12 +207,11 @@ if (Database::num_rows($resultCoachs) > 0) { if (api_is_western_name_order(PERSON_NAME_DATA_EXPORT)) { $a_data[$i_id_coach]["firstname"] = $s_firstname; $a_data[$i_id_coach]["lastname"] = $s_lastname; - $a_data[$i_id_coach]["connection_time"] = $s_connection_time; } else { $a_data[$i_id_coach]["lastname"] = $s_lastname; $a_data[$i_id_coach]["firstname"] = $s_firstname; - $a_data[$i_id_coach]["connection_time"] = $s_connection_time; } + $a_data[$i_id_coach]["connection_time"] = $s_connection_time; } } diff --git a/main/mySpace/course.php b/main/mySpace/course.php index 77d4d6c758..5f35584b4d 100644 --- a/main/mySpace/course.php +++ b/main/mySpace/course.php @@ -18,19 +18,19 @@ $id_session = intval($_GET['id_session']); api_block_anonymous_users(); $interbreadcrumb[] = array ("url" => "index.php", "name" => get_lang('MySpace')); -if(isset($_GET["id_session"]) && $_GET["id_session"]!=""){ +if (isset($_GET["id_session"]) && $_GET["id_session"] != "") { $interbreadcrumb[] = array ("url" => "session.php", "name" => get_lang('Sessions')); } -if(isset($_GET["user_id"]) && $_GET["user_id"]!="" && isset($_GET["type"]) && $_GET["type"]=="coach"){ +if (isset($_GET["user_id"]) && $_GET["user_id"] != "" && isset($_GET["type"]) && $_GET["type"] == "coach") { $interbreadcrumb[] = array ("url" => "coaches.php", "name" => get_lang('Tutors')); } -if(isset($_GET["user_id"]) && $_GET["user_id"]!="" && isset($_GET["type"]) && $_GET["type"]=="student"){ +if (isset($_GET["user_id"]) && $_GET["user_id"] != "" && isset($_GET["type"]) && $_GET["type"] == "student") { $interbreadcrumb[] = array ("url" => "student.php", "name" => get_lang('Students')); } -if(isset($_GET["user_id"]) && $_GET["user_id"]!="" && !isset($_GET["type"])){ +if (isset($_GET["user_id"]) && $_GET["user_id"] != "" && !isset($_GET["type"])) { $interbreadcrumb[] = array ("url" => "teachers.php", "name" => get_lang('Teachers')); } @@ -45,7 +45,7 @@ $show_import_icon = false; if (api_get_setting('add_users_by_coach') == 'true') { if (!api_is_platform_admin()) { $sql = 'SELECT id_coach FROM '.Database :: get_main_table(TABLE_MAIN_SESSION).' WHERE id='.$id_session; - $rs = Database::query($sql,__FILE__,__LINE__); + $rs = Database::query($sql, __FILE__, __LINE__); if (Database::result($rs, 0, 0) != $_user['user_id']) { api_not_allowed(true); } else { @@ -66,11 +66,11 @@ $tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE if (isset($_GET['action'])) { if ($_GET['action'] == 'show_message') { - Display :: display_normal_message(stripslashes($_GET['message']),false); + Display :: display_normal_message(stripslashes($_GET['message']), false); } if ($_GET['action'] == 'error_message') { - Display :: display_error_message(stripslashes($_GET['message']),false); + Display :: display_error_message(stripslashes($_GET['message']), false); } } @@ -94,16 +94,17 @@ $table -> set_header(5, get_lang('AvgMessages'), false); $table -> set_header(6, get_lang('AvgAssignments'), false); $table -> set_header(7, get_lang('Details'), false); -$csv_content[] = array( - get_lang('CourseTitle'), - get_lang('NbStudents'), - get_lang('TimeSpentInTheCourse'), - get_lang('AvgStudentsProgress'), - get_lang('AvgCourseScore'), - //get_lang('AvgExercisesScore'), - get_lang('AvgMessages'), - get_lang('AvgAssignments') - ); +$csv_header[] = array( + get_lang('CourseTitle', ''), + get_lang('NbStudents', ''), + get_lang('TimeSpentInTheCourse', ''), + get_lang('AvgStudentsProgress', ''), + get_lang('AvgCourseScore', ''), + //get_lang('AvgExercisesScore', ''), + get_lang('AvgMessages', ''), + get_lang('AvgAssignments', '') +); + if (is_array($a_courses)) { foreach ($a_courses as $course_code) { $nb_students_in_course = 0; @@ -135,37 +136,45 @@ if (is_array($a_courses)) { } if ($nb_students_in_course > 0) { $avg_time_spent_in_course = api_time_to_hms($avg_time_spent_in_course / $nb_students_in_course); - $avg_progress_in_course = round($avg_progress_in_course / $nb_students_in_course, 2).' %'; - $avg_score_in_course = round($avg_score_in_course / $nb_students_in_course, 2).' %'; + $avg_progress_in_course = round($avg_progress_in_course / $nb_students_in_course, 2).'%'; + $avg_score_in_course = round($avg_score_in_course / $nb_students_in_course, 2).'%'; $avg_messages_in_course = round($avg_messages_in_course / $nb_students_in_course, 2); $avg_assignments_in_course = round($avg_assignments_in_course / $nb_students_in_course, 2); + } else { + $avg_time_spent_in_course = null; + $avg_progress_in_course = null; + $avg_score_in_course = null; + $avg_messages_in_course = null; + $avg_assignments_in_course = null; } $table_row = array(); $table_row[] = $course['title']; $table_row[] = $nb_students_in_course; $table_row[] = $avg_time_spent_in_course; - $table_row[] = $avg_progress_in_course; - $table_row[] = $avg_score_in_course; + $table_row[] = is_null($avg_progress_in_course) ? '' : $avg_progress_in_course.'%'; + $table_row[] = is_null($avg_score_in_course) ? '' : $avg_score_in_course.'%'; $table_row[] = $avg_messages_in_course; $table_row[] = $avg_assignments_in_course; $table_row[] = ''; - $csv_content[] = array( - $course['title'], - $nb_students_in_course, - $avg_time_spent_in_course, - $avg_progress_in_course, - $avg_score_in_course, - $avg_messages_in_course, - $avg_assignments_in_course, - ); + $csv_content[] = array ( + $course['title'], + $nb_students_in_course, + $avg_time_spent_in_course, + is_null($avg_progress_in_course) ? null : $avg_progress_in_course.'%', + is_null($avg_score_in_course) ? null : $avg_score_in_course.'%', + $avg_messages_in_course, + $avg_assignments_in_course, + ); $table -> addRow($table_row, 'align="right"'); } + + // $csv_content = array_merge($csv_header, $csv_content); // Before this statement you are allowed to sort (in different way) the array $csv_content. } -$table -> setColAttributes(0, array('align'=>'left')); -$table -> setColAttributes(7, array('align'=>'center')); +$table -> setColAttributes(0, array('align' => 'left')); +$table -> setColAttributes(7, array('align' => 'center')); $table -> display(); /* diff --git a/main/mySpace/index.php b/main/mySpace/index.php index a11c0fab0a..06bad5ecfc 100755 --- a/main/mySpace/index.php +++ b/main/mySpace/index.php @@ -232,12 +232,6 @@ if ($view == 'coach' || $view == 'drh') { $avgStudentScore = $avgStudentScore / $nb_courses_student; $avgResultsToExercises += $avgStudentScore; } - $avgTotalProgress = 0; - $avgResultsToExercises = 0; - $avgCoursesPerStudent = 0; - $avgTimeSpent = 0; - $nb_assignments = 0; - $nb_posts = 0; if ($nbStudents > 0) { // average progress @@ -252,17 +246,25 @@ if ($view == 'coach' || $view == 'drh') { $nb_assignments = $nb_assignments / $nbStudents; // average posts $nb_posts = $nb_posts / $nbStudents; + } else { + $avgTotalProgress = null; + $avgResultsToExercises = null; + $avgCoursesPerStudent = null; + $avgTimeSpent = null; + $nb_assignments = null; + $nb_posts = null; } + if ($export_csv) { //csv part - $csv_content[] = array(get_lang('Probationers')); - $csv_content[] = array(get_lang('InactivesStudents'), $nb_inactive_students ); - $csv_content[] = array(get_lang('AverageTimeSpentOnThePlatform'), $avgTimeSpent); - $csv_content[] = array(get_lang('AverageCoursePerStudent'), $avgCoursesPerStudent); - $csv_content[] = array(get_lang('AverageProgressInLearnpath'), $avgTotalProgress); - $csv_content[] = array(get_lang('AverageResultsToTheExercices'), $avgResultsToExercises); - $csv_content[] = array(get_lang('AveragePostsInForum'), $nb_posts); - $csv_content[] = array(get_lang('AverageAssignments'), $nb_assignments); + $csv_content[] = array(get_lang('Probationers', '')); + $csv_content[] = array(get_lang('InactivesStudents', ''), $nb_inactive_students ); + $csv_content[] = array(get_lang('AverageTimeSpentOnThePlatform', ''), $avgTimeSpent); + $csv_content[] = array(get_lang('AverageCoursePerStudent', ''), $avgCoursesPerStudent); + $csv_content[] = array(get_lang('AverageProgressInLearnpath', ''), is_null($avgTotalProgress) ? null : round($avgTotalProgress, 2).'%'); + $csv_content[] = array(get_lang('AverageResultsToTheExercices', ''), is_null($avgResultsToExercises) ? null : round($avgResultsToExercises, 2).'%'); + $csv_content[] = array(get_lang('AveragePostsInForum', ''), $nb_posts); + $csv_content[] = array(get_lang('AverageAssignments', ''), $nb_assignments); $csv_content[] = array(); } else { // html part @@ -285,7 +287,7 @@ if ($view == 'coach' || $view == 'drh') { '.get_lang('AverageTimeSpentOnThePlatform').' - '.api_time_to_hms($avgTimeSpent).' + '.(is_null($avgTimeSpent) ? '' : api_time_to_hms($avgTimeSpent)).' @@ -293,7 +295,7 @@ if ($view == 'coach' || $view == 'drh') { '.get_lang('AverageCoursePerStudent').' - '.$avgCoursesPerStudent.' + '.(is_null($avgCoursesPerStudent) ? '' : $avgCoursesPerStudent).' @@ -301,7 +303,7 @@ if ($view == 'coach' || $view == 'drh') { '.get_lang('AverageProgressInLearnpath').' - '.round($avgTotalProgress, 2).' % + '.(is_null($avgTotalProgress) ? '' : round($avgTotalProgress, 2).'%').' @@ -309,7 +311,7 @@ if ($view == 'coach' || $view == 'drh') { '.get_lang('AverageResultsToTheExercices').' - '.round($avgResultsToExercises, 2).' % + '.(is_null($avgResultsToExercises) ? '' : round($avgResultsToExercises, 2).'%').' @@ -317,7 +319,7 @@ if ($view == 'coach' || $view == 'drh') { '.get_lang('AveragePostsInForum').' - '.round($nb_posts, 2).' + '.(is_null($nb_posts) ? '' : round($nb_posts, 2)).' @@ -325,7 +327,7 @@ if ($view == 'coach' || $view == 'drh') { '.get_lang('AverageAssignments').' - '.round($nb_assignments, 2).' + '.(is_null($nb_assignments) ? '' : round($nb_assignments, 2)).' @@ -342,7 +344,7 @@ if ($view == 'coach') { $nb_sessions_past = $nb_sessions_future = $nb_sessions_current = 0; $a_courses = array(); foreach ($a_sessions as $a_session) { - if($a_session['date_start'] == '0000-00-00') { + if ($a_session['date_start'] == '0000-00-00') { $nb_sessions_current ++; } else { $date_start = explode('-', $a_session['date_start']); @@ -361,17 +363,24 @@ if ($view == 'coach') { } $a_courses = array_merge($a_courses, Tracking::get_courses_list_from_session($a_session['id'])); } - $nb_courses_per_session = round(count($a_courses) / $nbSessions, 2); + + if ($nbSessions > 0) { + $nb_courses_per_session = round(count($a_courses) / $nbSessions, 2); + $nb_students_per_session = round($nbStudents / $nbSessions, 2); + } else { + $nb_courses_per_session = null; + $nb_students_per_session = null; + } if ($export_csv) { //csv part - $csv_content[] = array(get_lang('Sessions')); - $csv_content[] = array(get_lang('NbActiveSessions').';'.$nb_sessions_current); - $csv_content[] = array(get_lang('NbPastSessions').';'.$nb_sessions_past); - $csv_content[] = array(get_lang('NbFutureSessions').';'.$nb_sessions_future); - $csv_content[] = array(get_lang('NbStudentPerSession').';'.round($nbStudents / $nbSessions, 2)); - $csv_content[] = array(get_lang('NbCoursesPerSession').';'.$nb_courses_per_session); + $csv_content[] = array(get_lang('Sessions', '')); + $csv_content[] = array(get_lang('NbActiveSessions', '').';'.$nb_sessions_current); + $csv_content[] = array(get_lang('NbPastSessions', '').';'.$nb_sessions_past); + $csv_content[] = array(get_lang('NbFutureSessions', '').';'.$nb_sessions_future); + $csv_content[] = array(get_lang('NbStudentPerSession', '').';'.$nb_students_per_session); + $csv_content[] = array(get_lang('NbCoursesPerSession', '').';'.$nb_courses_per_session); $csv_content[] = array(); } else { // html part @@ -410,7 +419,7 @@ if ($view == 'coach') { '.get_lang('NbStudentPerSession').' - '.round($nbStudents / $nbSessions, 2).' + '.(is_null($nb_students_per_session) ? '' : $nb_students_per_session).' @@ -418,7 +427,7 @@ if ($view == 'coach') { '.get_lang('NbCoursesPerSession').' - '.$nb_courses_per_session.' + '.(is_null($nb_courses_per_session) ? '' : $nb_courses_per_session).' @@ -447,19 +456,19 @@ if (api_is_allowed_to_create_course() && $view == 'teacher') { $table -> set_header(7, get_lang('AvgAssignments'), false); $table -> set_header(8, get_lang('Details'), false); - $csv_content[] = array( - get_lang('CourseTitle'), - get_lang('NbStudents'), - get_lang('AvgTimeSpentInTheCourse'), - get_lang('AvgStudentsProgress'), - get_lang('AvgCourseScore'), - get_lang('AvgExercisesScore'), - get_lang('AvgMessages'), - get_lang('AvgAssignments') + $csv_content[] = array ( + get_lang('CourseTitle', ''), + get_lang('NbStudents', ''), + get_lang('AvgTimeSpentInTheCourse', ''), + get_lang('AvgStudentsProgress', ''), + get_lang('AvgCourseScore', ''), + get_lang('AvgExercisesScore', ''), + get_lang('AvgMessages', ''), + get_lang('AvgAssignments', '') ); $a_course_students = array(); - // + foreach ($a_courses as $course) { $course_code = $course['course_code']; $avg_assignments_in_course = $avg_messages_in_course = $nb_students_in_course = $avg_progress_in_course = $avg_score_in_course = $avg_time_spent_in_course = $avg_score_in_exercise = 0; @@ -504,20 +513,27 @@ if (api_is_allowed_to_create_course() && $view == 'teacher') { if ($nb_students_in_course > 0) { $avg_time_spent_in_course = api_time_to_hms($avg_time_spent_in_course / $nb_students_in_course); - $avg_progress_in_course = round($avg_progress_in_course / $nb_students_in_course, 2).' %'; - $avg_score_in_course = round($avg_score_in_course / $nb_students_in_course, 2).' %'; - $avg_score_in_exercise = round($avg_score_in_exercise / $nb_students_in_course, 2).' %'; + $avg_progress_in_course = round($avg_progress_in_course / $nb_students_in_course, 2); + $avg_score_in_course = round($avg_score_in_course / $nb_students_in_course, 2); + $avg_score_in_exercise = round($avg_score_in_exercise / $nb_students_in_course, 2); $avg_messages_in_course = round($avg_messages_in_course / $nb_students_in_course, 2); $avg_assignments_in_course = round($avg_assignments_in_course / $nb_students_in_course, 2); + } else { + $avg_time_spent_in_course = null; + $avg_progress_in_course = null; + $avg_score_in_course = null; + $avg_score_in_exercise = null; + $avg_messages_in_course = null; + $avg_assignments_in_course = null; } $table_row = array(); $table_row[] = $course['title']; $table_row[] = $nb_students_in_course; $table_row[] = $avg_time_spent_in_course; - $table_row[] = $avg_progress_in_course; - $table_row[] = $avg_score_in_course; - $table_row[] = $avg_score_in_exercise; + $table_row[] = is_null($avg_progress_in_course) ? '' : $avg_progress_in_course.'%'; + $table_row[] = is_null($avg_score_in_course) ? '' : $avg_score_in_course.'%'; + $table_row[] = is_null($avg_score_in_exercise) ? '' : $avg_score_in_exercise.'%'; $table_row[] = $avg_messages_in_course; $table_row[] = $avg_assignments_in_course; //set the "from" value to know if I access the Reporting by the Dokeos tab or the course link @@ -527,9 +543,9 @@ if (api_is_allowed_to_create_course() && $view == 'teacher') { api_html_entity_decode($course['title'], ENT_QUOTES, $charset), $nb_students_in_course, $avg_time_spent_in_course, - $avg_progress_in_course, - $avg_score_in_course, - $avg_score_in_exercise, + is_null($avg_progress_in_course) ? null : $avg_progress_in_course.'%', + is_null($avg_score_in_course) ? null : $avg_score_in_course.'%', + is_null($avg_score_in_exercise) ? null : $avg_score_in_exercise.'%', $avg_messages_in_course, $avg_assignments_in_course, ); @@ -587,24 +603,24 @@ if (api_is_platform_admin() && $view == 'admin') { $table -> set_header(7, get_lang('Sessions'), false, 'align="center"'); if ($is_western_name_order) { - $csv_header[] = array( - get_lang('FirstName'), - get_lang('LastName'), - get_lang('TimeSpentOnThePlatform'), - get_lang('LastConnexion'), - get_lang('NbStudents'), - get_lang('CountCours'), - get_lang('NumberOfSessions') + $csv_header[] = array ( + get_lang('FirstName', ''), + get_lang('LastName', ''), + get_lang('TimeSpentOnThePlatform', ''), + get_lang('LastConnexion', ''), + get_lang('NbStudents', ''), + get_lang('CountCours', ''), + get_lang('NumberOfSessions', '') ); } else { - $csv_header[] = array( - get_lang('LastName'), - get_lang('FirstName'), - get_lang('TimeSpentOnThePlatform'), - get_lang('LastConnexion'), - get_lang('NbStudents'), - get_lang('CountCours'), - get_lang('NumberOfSessions') + $csv_header[] = array ( + get_lang('LastName', ''), + get_lang('FirstName', ''), + get_lang('TimeSpentOnThePlatform', ''), + get_lang('LastConnexion', ''), + get_lang('NbStudents', ''), + get_lang('CountCours', ''), + get_lang('NumberOfSessions', '') ); } @@ -723,7 +739,9 @@ if (api_is_platform_admin() && $view == 'admin') { if ($export_csv && $tracking_column != 3) { usort($csv_content, 'sort_users'); } - $csv_content = array_merge($csv_header, $csv_content); + if ($export_csv) { + $csv_content = array_merge($csv_header, $csv_content); + } foreach ($all_datas as $row) { $table -> addRow($row, 'align="right"'); @@ -792,11 +810,11 @@ function export_tracking_user_overview() { $csv_row = array(); $csv_row[] = get_lang('OfficialCode'); if ($is_western_name_order) { - $csv_row[] = get_lang('FirstName'); - $csv_row[] = get_lang('LastName'); + $csv_row[] = get_lang('FirstName', ''); + $csv_row[] = get_lang('LastName', ''); } else { - $csv_row[] = get_lang('LastName'); - $csv_row[] = get_lang('FirstName'); + $csv_row[] = get_lang('LastName', ''); + $csv_row[] = get_lang('FirstName', ''); } $csv_row[] = get_lang('LoginName'); $csv_row[] = get_lang('CourseCode'); @@ -809,18 +827,18 @@ function export_tracking_user_overview() { $field_names_to_be_exported[] = 'extra_'.$fields[$extra_field_export][1]; } } - $csv_row[] = get_lang('AvgTimeSpentInTheCourse'); - $csv_row[] = get_lang('AvgStudentsProgress'); - $csv_row[] = get_lang('AvgCourseScore'); - $csv_row[] = get_lang('AvgExercisesScore'); - $csv_row[] = get_lang('AvgMessages'); - $csv_row[] = get_lang('AvgAssignments'); - $csv_row[] = get_lang('TotalExercisesScoreObtained'); - $csv_row[] = get_lang('TotalExercisesScorePossible'); - $csv_row[] = get_lang('TotalExercisesAnswered'); - $csv_row[] = get_lang('TotalExercisesScorePercentage'); - $csv_row[] = get_lang('FirstLogin'); - $csv_row[] = get_lang('LatestLogin'); + $csv_row[] = get_lang('AvgTimeSpentInTheCourse', ''); + $csv_row[] = get_lang('AvgStudentsProgress', ''); + $csv_row[] = get_lang('AvgCourseScore', ''); + $csv_row[] = get_lang('AvgExercisesScore', ''); + $csv_row[] = get_lang('AvgMessages', ''); + $csv_row[] = get_lang('AvgAssignments', ''); + $csv_row[] = get_lang('TotalExercisesScoreObtained', ''); + $csv_row[] = get_lang('TotalExercisesScorePossible', ''); + $csv_row[] = get_lang('TotalExercisesAnswered', ''); + $csv_row[] = get_lang('TotalExercisesScorePercentage', ''); + $csv_row[] = get_lang('FirstLogin', ''); + $csv_row[] = get_lang('LatestLogin', ''); $csv_content[] = $csv_row; // the other lines (the data) @@ -1039,7 +1057,7 @@ function course_info_tracking_filter($user_id, $url_params, $row) { $return .= '
'.Tracking :: count_student_assignments($user_id, $row[0]).'
'; // student exercises results (obtained score, maximum score, number of exercises answered, score percentage) $exercises_results = exercises_results($user_id, $row[0]); - $return .= '
'.$exercises_results['score_obtained'].'/'.$exercises_results['score_possible'].'('.$exercises_results['percentage'].'%)
'; + $return .= '
'.(is_null($exercises_results['percentage']) ? '' : $exercises_results['score_obtained'].'/'.$exercises_results['score_possible'].' ( '.$exercises_results['percentage'].'% )').'
'; //$return .= '
'.$exercises_results['score_possible'].'
'; $return .= '
'.$exercises_results['questions_answered'].'
'; //$return .= '
'.$exercises_results['percentage'].'%
'; diff --git a/main/mySpace/myStudents.php b/main/mySpace/myStudents.php index 81df5941d7..c47095e9a4 100644 --- a/main/mySpace/myStudents.php +++ b/main/mySpace/myStudents.php @@ -310,12 +310,12 @@ if (!empty ($_GET['student'])) { $time_spent_on_the_course = api_time_to_hms(Tracking :: get_time_spent_on_the_course($a_infosUser['user_id'], $course_id)); // cvs informations $csv_content[] = array ( - get_lang('Informations') + get_lang('Informations', '') ); $csv_content[] = array ( - get_lang('Name'), - get_lang('Email'), - get_lang('Tel') + get_lang('Name', ''), + get_lang('Email', ''), + get_lang('Tel', '') ); $csv_content[] = array ( $a_infosUser['name'], @@ -327,21 +327,21 @@ if (!empty ($_GET['student'])) { // csv tracking $csv_content[] = array ( - get_lang('Tracking') + get_lang('Tracking', '') ); $csv_content[] = array ( - get_lang('FirstLogin'), - get_lang('LatestLogin'), - get_lang('TimeSpentInTheCourse'), - get_lang('Progress'), - get_lang('Score') + get_lang('FirstLogin', ''), + get_lang('LatestLogin', ''), + get_lang('TimeSpentInTheCourse', ''), + get_lang('Progress', ''), + get_lang('Score', '') ); $csv_content[] = array ( strip_tags($first_connection_date), strip_tags($last_connection_date), $time_spent_on_the_course, - $avg_student_progress . ' %', - $avg_student_score . ' %' + $avg_student_progress . '%', + $avg_student_score . '%' ); ?> @@ -356,7 +356,7 @@ if (!empty ($_GET['student'])) { // get the path,width and height from original picture $image_file = $image_array['dir'] . $image_array['file']; $big_image = $image_array['dir'] . 'big_' . $image_array['file']; - $big_image_size = @ getimagesize(api_url_to_local_path($big_image)); + $big_image_size = @getimagesize(api_url_to_local_path($big_image)); $big_image_width = $big_image_size[0]; $big_image_height = $big_image_size[1]; $url_big_image = $big_image . '?rnd=' . time(); @@ -367,7 +367,7 @@ if (!empty ($_GET['student'])) { if ($image_array['file'] == 'unknown.jpg') { echo ''; } else { - echo ''; + echo ''; } echo ''; @@ -486,7 +486,7 @@ if (!empty ($_GET['student'])) { ?> - + @@ -501,7 +501,7 @@ if (!empty ($_GET['student'])) { ?> - + @@ -662,11 +662,11 @@ if (!empty ($_GET['student'])) { $csv_content[] = array (); $csv_content[] = array ( - get_lang('Learnpath'), - get_lang('Time'), - get_lang('Score'), - get_lang('Progress'), - get_lang('LastConnexion') + get_lang('Learnpath', ''), + get_lang('Time', ''), + get_lang('Score', ''), + get_lang('Progress', ''), + get_lang('LastConnexion', '') ); if (Database :: num_rows($resultLearnpath) > 0) { @@ -745,7 +745,7 @@ if (!empty ($_GET['student'])) { "; if ($a_essais['essais'] > 0) { - echo $pourcentageScore . ' %'; + echo $pourcentageScore . '%'; } else { echo '/'; $pourcentageScore = 0; @@ -1073,17 +1073,19 @@ if (!empty ($_GET['student'])) { if (count($a_courses) > 0) { $csv_content[] = array (); $csv_content[] = array ( - get_lang('Course'), - get_lang('Time'), - get_lang('Progress'), - get_lang('Score') + get_lang('Course', ''), + get_lang('Time', ''), + get_lang('Progress', ''), + get_lang('Score', '') ); foreach ($a_courses as $course_code) { if (CourseManager :: is_user_subscribed_in_course($student_id, $course_code, true)) { $course_infos = CourseManager :: get_course_information($course_code); $time_spent_on_course = api_time_to_hms(Tracking :: get_time_spent_on_the_course($a_infosUser['user_id'], $course_code)); - $progress = Tracking :: get_avg_student_progress($a_infosUser['user_id'], $course_code) . ' %'; - $score = Tracking :: get_avg_student_score($a_infosUser['user_id'], $course_code) . ' %'; + $progress = Tracking :: get_avg_student_progress($a_infosUser['user_id'], $course_code); + $score = Tracking :: get_avg_student_score($a_infosUser['user_id'], $course_code); + $progress = empty($progress) ? '0%' : $progress.'%'; + $score = empty($score) ? '0%' : $score.'%'; $csv_content[] = array ( $course_infos['title'], $time_spent_on_course, diff --git a/main/mySpace/progression.php b/main/mySpace/progression.php index 2b3ba44d55..85b0779746 100644 --- a/main/mySpace/progression.php +++ b/main/mySpace/progression.php @@ -98,7 +98,7 @@ if (Database::num_rows($resultCourse) > 0) { } else { $moyenneTest = null; } - echo ''.$a_course['title'].' '.$moyenneTest.'% '; + echo ''.$a_course['title'].' '.(is_null($moyenneTest) ? '' : $moyenneTest.'%').' '; } echo ''; echo "

"; diff --git a/main/mySpace/reussite.php b/main/mySpace/reussite.php index 3daf56eed3..b99d75cdd6 100644 --- a/main/mySpace/reussite.php +++ b/main/mySpace/reussite.php @@ -66,10 +66,10 @@ if (!empty($_GET['session'])) { if ($totalWeighting != 0) { $moyenneTest = round(($totalResult * 100) / $totalWeighting); } else { - $moyenneTest = 0; + $moyenneTest = null; } - echo ''.$a_session['name'].''.$moyenneTest.'% '; + echo ''.$a_session['name'].''.(is_null($moyenneTest) ? '' : $moyenneTest.'%').' '; } echo ''; } else { @@ -102,7 +102,7 @@ if (!empty($_GET['session'])) { } else { $moyenneTest = null; } - echo ''.$a_course['title'].''.$moyenneTest.'% '; + echo ''.$a_course['title'].''.(is_null($moyenneTest) ? '' : $moyenneTest.'%').' '; } echo ''; } else { diff --git a/main/mySpace/session.php b/main/mySpace/session.php index dc48117964..38ecd8cbe7 100644 --- a/main/mySpace/session.php +++ b/main/mySpace/session.php @@ -92,16 +92,16 @@ function rsort_sessions($a, $b) { */ if (isset($_GET['id_coach']) && $_GET['id_coach'] != '') { - $id_coach=$_GET['id_coach']; + $id_coach = $_GET['id_coach']; } else { - $id_coach=$_user['user_id']; + $id_coach = $_user['user_id']; } $a_sessions = Tracking :: get_sessions_coached_by_user($id_coach); $nb_sessions = count($a_sessions); if ($export_csv) { - $csv_content=array(); + $csv_content = array(); } if ($nb_sessions > 0) { @@ -121,14 +121,14 @@ if ($nb_sessions > 0) { $row[] = $session['name']; $row[] = $session['status']; - if ($session['date_start']!='0000-00-00' && $session['date_end']!='0000-00-00') { - $row[] = get_lang('From').' '.format_locale_date(get_lang('DateFormatLongWithoutDay'),strtotime($session['date_start'])).' '.get_lang('To').' '.format_locale_date(get_lang('DateFormatLongWithoutDay'),strtotime($session['date_end'])); + if ($session['date_start'] != '0000-00-00' && $session['date_end'] != '0000-00-00') { + $row[] = get_lang('From').' '.format_locale_date(get_lang('DateFormatLongWithoutDay'), strtotime($session['date_start'])).' '.get_lang('To').' '.format_locale_date(get_lang('DateFormatLongWithoutDay'), strtotime($session['date_end'])); } else { $row[] = ' - '; } if ($export_csv) { - $csv_content[]=$row; + $csv_content[] = $row; } if (isset($_GET['id_coach']) && $_GET['id_coach'] != '') { diff --git a/main/mySpace/student.php b/main/mySpace/student.php index 321e1456d5..3628476fa8 100644 --- a/main/mySpace/student.php +++ b/main/mySpace/student.php @@ -6,7 +6,7 @@ // name of the language file that needs to be included $language_file = array ('registration', 'index', 'tracking'); -$cidReset=true; +$cidReset = true; require '../inc/global.inc.php'; require_once api_get_path(LIBRARY_PATH).'tracking.lib.php'; require_once api_get_path(LIBRARY_PATH).'export.lib.inc.php'; @@ -20,7 +20,7 @@ if ($export_csv) { } $csv_content = array(); -if(isset($_GET['id_coach']) && intval($_GET['id_coach'])!=0) { +if (isset($_GET['id_coach']) && intval($_GET['id_coach']) != 0) { $nameTools = get_lang("CoachStudents"); $sql = 'SELECT lastname, firstname FROM '.Database::get_main_table(TABLE_MAIN_USER).' WHERE user_id='.intval($_GET['id_coach']); $rs = Database::query($sql, __FILE__, __LINE__); @@ -37,11 +37,11 @@ api_block_anonymous_users(); $interbreadcrumb[] = array ("url" => "index.php", "name" => get_lang('MySpace')); -if (isset($_GET["user_id"]) && $_GET["user_id"]!="" && !isset($_GET["type"])) { +if (isset($_GET["user_id"]) && $_GET["user_id"] != "" && !isset($_GET["type"])) { $interbreadcrumb[] = array ("url" => "teachers.php", "name" => get_lang('Teachers')); } -if (isset($_GET["user_id"]) && $_GET["user_id"]!="" && isset($_GET["type"]) && $_GET["type"]=="coach") { +if (isset($_GET["user_id"]) && $_GET["user_id"]!="" && isset($_GET["type"]) && $_GET["type"] == "coach") { $interbreadcrumb[] = array ("url" => "coaches.php", "name" => get_lang('Tutors')); } @@ -81,7 +81,7 @@ function sort_users($a, $b) { function rsort_users($a, $b) { global $tracking_column; - if($b[$tracking_column] > $a[$tracking_column]) { + if ($b[$tracking_column] > $a[$tracking_column]) { return 1; } else { return -1; @@ -96,6 +96,13 @@ function rsort_users($a, $b) if ($isCoach || api_is_platform_admin() || $_user['status'] == DRH) { + if ($export_csv) { + $is_western_name_order = api_is_western_name_order(PERSON_NAME_DATA_EXPORT); + } else { + $is_western_name_order = api_is_western_name_order(); + } + $sort_by_first_name = api_sort_by_first_name(); + echo '

'.$title.'

 '.get_lang('Print').' @@ -103,9 +110,9 @@ if ($isCoach || api_is_platform_admin() || $_user['status'] == DRH) {
'; if (isset($_GET['id_coach'])) { - $coach_id=intval($_GET['id_coach']); + $coach_id = intval($_GET['id_coach']); } else { - $coach_id=$_user['user_id']; + $coach_id = $_user['user_id']; } if (!isset($_GET['id_session'])) { @@ -124,42 +131,61 @@ if ($isCoach || api_is_platform_admin() || $_user['status'] == DRH) { $a_students = Tracking :: get_student_followed_by_coach_in_a_session($_GET['id_session'], $coach_id); } - $tracking_column = isset($_GET['tracking_column']) ? $_GET['tracking_column'] : 0; + $tracking_column = isset($_GET['tracking_column']) ? $_GET['tracking_column'] : ($is_western_name_order xor $sort_by_first_name) ? 1 : 0; $tracking_direction = isset($_GET['tracking_direction']) ? $_GET['tracking_direction'] : DESC; if (count($a_students) > 0) { - $table = new SortableTable('tracking', 'count_student_coached'); - - $table -> set_header(0, get_lang('LastName'), true, 'align="center'); - $table -> set_header(1, get_lang('FirstName'), true, 'align="center'); - $table -> set_header(2, get_lang('Time'),false); - $table -> set_header(3, get_lang('Progress'),false); - $table -> set_header(4, get_lang('Score'),false); - $table -> set_header(5, get_lang('Student_publication'),false); - $table -> set_header(6, get_lang('Messages'),false); + $table = new SortableTable('tracking', 'count_student_coached', null, ($is_western_name_order xor $sort_by_first_name) ? 1 : 0); + if ($is_western_name_order) { + $table -> set_header(0, get_lang('FirstName'), true, 'align="center'); + $table -> set_header(1, get_lang('LastName'), true, 'align="center'); + } else { + $table -> set_header(0, get_lang('LastName'), true, 'align="center'); + $table -> set_header(1, get_lang('FirstName'), true, 'align="center'); + } + $table -> set_header(2, get_lang('Time'), false); + $table -> set_header(3, get_lang('Progress'), false); + $table -> set_header(4, get_lang('Score'), false); + $table -> set_header(5, get_lang('Student_publication'), false); + $table -> set_header(6, get_lang('Messages'), false); $table -> set_header(7, get_lang('FirstLogin'), false); $table -> set_header(8, get_lang('LatestLogin'), false); - $table -> set_header(9, get_lang('Details'),false); - - if ($export_csv) { - $csv_content[] = array ( - get_lang('LastName'), - get_lang('FirstName'), - get_lang('Time'), - get_lang('Progress'), - get_lang('Score'), - get_lang('Student_publication'), - get_lang('Messages'), - get_lang('FirstLogin'), - get_lang('LatestLogin') - ); + $table -> set_header(9, get_lang('Details'), false); + + if ($export_csv) { + if ($is_western_name_order) { + $csv_header[] = array ( + get_lang('FirstName', ''), + get_lang('LastName', ''), + get_lang('Time', ''), + get_lang('Progress', ''), + get_lang('Score', ''), + get_lang('Student_publication', ''), + get_lang('Messages', ''), + get_lang('FirstLogin', ''), + get_lang('LatestLogin', '') + ); + } else { + $csv_header[] = array ( + get_lang('LastName', ''), + get_lang('FirstName', ''), + get_lang('Time', ''), + get_lang('Progress', ''), + get_lang('Score', ''), + get_lang('Student_publication', ''), + get_lang('Messages', ''), + get_lang('FirstLogin', ''), + get_lang('LatestLogin', '') + ); + } + } $all_datas = array(); foreach ($a_students as $student_id) { $student_datas = UserManager :: get_user_info_by_id($student_id); if(isset($_GET['id_session'])) { - $a_courses = Tracking :: get_course_list_in_session_from_student($student_id,$_GET['id_session']); + $a_courses = Tracking :: get_course_list_in_session_from_student($student_id, $_GET['id_session']); } $avg_time_spent = $avg_student_score = $avg_student_progress = $total_assignments = $total_messages = 0; @@ -174,22 +200,33 @@ if ($isCoach || api_is_platform_admin() || $_user['status'] == DRH) { $nb_courses_student++; } } - $avg_time_spent = $avg_time_spent / $nb_courses_student; - $avg_student_score = $avg_student_score / $nb_courses_student; - $avg_student_progress = $avg_student_progress / $nb_courses_student; - $row = array(); + if ($nb_courses_student > 0) { + $avg_time_spent = $avg_time_spent / $nb_courses_student; + $avg_student_score = $avg_student_score / $nb_courses_student; + $avg_student_progress = $avg_student_progress / $nb_courses_student; + } else { + $avg_time_spent = null; + $avg_student_score = null; + $avg_student_progress = null; + } - $row[] = $student_datas['lastname']; - $row[] = $student_datas['firstname']; + $row = array(); + if ($is_western_name_order) { + $row[] = $student_datas['firstname']; + $row[] = $student_datas['lastname']; + } else { + $row[] = $student_datas['lastname']; + $row[] = $student_datas['firstname']; + } $row[] = api_time_to_hms($avg_time_spent); - $row[] = round($avg_student_progress, 2).' %'; - $row[] = round($avg_student_score, 2).' %'; + $row[] = is_null($avg_student_progress) ? null : round($avg_student_progress, 2).'%'; + $row[] = is_null($avg_student_score) ? null : round($avg_student_score, 2).'%'; $row[] = $total_assignments; $row[] = $total_messages; - $string_date=Tracking :: get_last_connection_date($student_id,true); - $first_date=Tracking :: get_first_connection_date($student_id); + $string_date = Tracking :: get_last_connection_date($student_id, true); + $first_date = Tracking :: get_first_connection_date($student_id); $row[] = $first_date; $row[] = $string_date; @@ -197,7 +234,7 @@ if ($isCoach || api_is_platform_admin() || $_user['status'] == DRH) { $csv_content[] = $row; } - if (isset($_GET['id_coach']) && intval($_GET['id_coach']) !=0 ) { + if (isset($_GET['id_coach']) && intval($_GET['id_coach']) != 0) { $row[] = ''; } else { $row[] = ''; @@ -214,16 +251,17 @@ if ($isCoach || api_is_platform_admin() || $_user['status'] == DRH) { if ($export_csv) { usort($csv_content, 'sort_users'); + $csv_content = array_merge($csv_header, $csv_content); } foreach ($all_datas as $row) { - $table -> addRow($row,'align="right"'); + $table -> addRow($row, 'align="right"'); } - $table -> updateColAttributes(0, array('align'=>'left')); - $table -> updateColAttributes(1, array('align'=>'left')); - $table -> updateColAttributes(7, array('align'=>'left')); - $table -> updateColAttributes(8, array('align'=>'left')); - $table -> setColAttributes(9, array('align'=>'center')); + $table -> updateColAttributes(0, array('align' => 'left')); + $table -> updateColAttributes(1, array('align' => 'left')); + $table -> updateColAttributes(7, array('align' => 'left')); + $table -> updateColAttributes(8, array('align' => 'left')); + $table -> setColAttributes(9, array('align' => 'center')); $table -> display(); } else { echo get_lang('NoStudent'); @@ -241,5 +279,5 @@ if ($isCoach || api_is_platform_admin() || $_user['status'] == DRH) { FOOTER ============================================================================== */ - + Display :: display_footer(); diff --git a/main/mySpace/teachers.php b/main/mySpace/teachers.php index 9230892360..c9ddd5c22d 100644 --- a/main/mySpace/teachers.php +++ b/main/mySpace/teachers.php @@ -7,13 +7,13 @@ ob_start(); // names of the language file that needs to be included -$language_file = array ('registration', 'index','trad4all', 'tracking', 'admin'); +$language_file = array ('registration', 'index', 'trad4all', 'tracking', 'admin'); $cidReset = true; require '../inc/global.inc.php'; $this_section = "session_my_space"; -$nameTools= get_lang('Teachers'); +$nameTools = get_lang('Teachers'); api_block_anonymous_users(); $interbreadcrumb[] = array ("url" => "index.php", "name" => get_lang('MySpace')); @@ -59,11 +59,11 @@ function exportCsv($a_header, $a_data) { $info .= "\r\n"; } - fwrite($open,$info); + fwrite($open, $info); fclose($open); $perm = api_get_setting('permissions_for_new_files'); - $perm = octdec(!empty($perm)?$perm:'0660'); - chmod($fileName,$perm); + $perm = octdec(!empty($perm) ? $perm : '0660'); + chmod($fileName, $perm); header("Location:".$archiveURL.$fileName); } @@ -75,27 +75,41 @@ function exportCsv($a_header, $a_data) { * MAIN PART */ +if (isset($_POST['export'])) { + $is_western_name_order = api_is_western_name_order(PERSON_NAME_DATA_EXPORT); +} else { + $is_western_name_order = api_is_western_name_order(); +} +$sort_by_first_name = api_sort_by_first_name(); +$order_clause = $sort_by_first_name ? ' ORDER BY firstname, lastname' : ' ORDER BY lastname, firstname'; if (isset($_GET["teacher_id"]) && $_GET["teacher_id"] != 0) { - $i_teacher_id=$_GET["teacher_id"]; + $i_teacher_id = $_GET["teacher_id"]; $sqlFormateurs = "SELECT user_id,lastname,firstname,email FROM $tbl_user - WHERE user_id='$i_teacher_id' - ORDER BY lastname ASC"; + WHERE user_id='$i_teacher_id'".$order_clause; } else { $sqlFormateurs = "SELECT user_id,lastname,firstname,email FROM $tbl_user - WHERE status = 1 - ORDER BY lastname ASC"; + WHERE status = 1".$order_clause; } $resultFormateurs = Database::query($sqlFormateurs, __FILE__, __LINE__); -echo ''; +if ($is_western_name_order) { + echo '
'.get_lang('FirstName').''.get_lang('LastName').''.get_lang('Email').''.get_lang('AdminCourses').''.get_lang('Students').'
'; +} else { + echo '
'.get_lang('FirstName').''.get_lang('LastName').''.get_lang('Email').''.get_lang('AdminCourses').''.get_lang('Students').'
'; +} -$a_header[] = get_lang('FirstName'); -$a_header[] = get_lang('LastName'); -$a_header[] = get_lang('Email'); +if ($is_western_name_order) { + $a_header[] = get_lang('FirstName', ''); + $a_header[] = get_lang('LastName', ''); +} else { + $a_header[] = get_lang('LastName', ''); + $a_header[] = get_lang('FirstName', ''); +} +$a_header[] = get_lang('Email', ''); $a_data = array(); @@ -109,11 +123,15 @@ if (Database::num_rows($resultFormateurs) > 0) { $s_firstname = $a_formateurs["firstname"]; $s_email = $a_formateurs["email"]; - if ($i%2 == 0) { + if ($i % 2 == 0) { $s_css_class = "row_odd"; - if ($i%20 == 0 && $i != 0){ - echo ''; + if ($i % 20 == 0 && $i != 0){ + if ($is_western_name_order) { + echo ''; + } else { + echo ''; + } } } else { $s_css_class = "row_even"; @@ -121,11 +139,20 @@ if (Database::num_rows($resultFormateurs) > 0) { $i++; - $a_data[$i_user_id]["firstname"]=$s_firstname; - $a_data[$i_user_id]["lastname"]=$s_lastname; - $a_data[$i_user_id]["email"]=$s_email; + if ($is_western_name_order) { + $a_data[$i_user_id]["firstname"] = $s_firstname; + $a_data[$i_user_id]["lastname"] = $s_lastname; + } else { + $a_data[$i_user_id]["lastname"] = $s_lastname; + $a_data[$i_user_id]["firstname"] = $s_firstname; + } + $a_data[$i_user_id]["email"] = $s_email; - echo ''; + if ($is_western_name_order) { + echo ''; + } else { + echo ''; + } } } @@ -136,7 +163,7 @@ else { echo '
'.get_lang('LastName').''.get_lang('FirstName').''.get_lang('Email').''.get_lang('AdminCourses').''.get_lang('Students').'
'.get_lang('FirstName').''.get_lang('LastName').''.get_lang('Email').''.get_lang('AdminCourses').''.get_lang('Students').'
'.get_lang('FirstName').''.get_lang('LastName').''.get_lang('Email').''.get_lang('AdminCourses').''.get_lang('Students').'
'.get_lang('LastName').''.get_lang('FirstName').''.get_lang('Email').''.get_lang('AdminCourses').''.get_lang('Students').'
'.$s_firstname.''.$s_lastname.''.$s_email.'
'.$s_firstname.''.$s_lastname.''.$s_email.'
'.$s_lastname.''.$s_firstname.''.$s_email.'
'; if (isset($_POST['export'])) { - exportCsv($a_header,$a_data); + exportCsv($a_header, $a_data); } echo "

"; diff --git a/main/mySpace/user_add.php b/main/mySpace/user_add.php index 50d074e455..dba6cf928b 100644 --- a/main/mySpace/user_add.php +++ b/main/mySpace/user_add.php @@ -87,16 +87,29 @@ $interbreadcrumb[] = array ('url' => '../admin/index.php', 'name' => get_lang('P $tool_name = get_lang('AddUser'); // Create the form $form = new FormValidator('user_add'); -// Lastname -$form->addElement('text','lastname', get_lang('LastName')); -$form->applyFilter('lastname', 'html_filter'); -$form->applyFilter('lastname', 'trim'); -$form->addRule('lastname', get_lang('ThisFieldIsRequired'), 'required'); -// Firstname -$form->addElement('text','firstname', get_lang('FirstName')); -$form->applyFilter('firstname', 'html_filter'); -$form->applyFilter('firstname', 'trim'); -$form->addRule('firstname', get_lang('ThisFieldIsRequired'), 'required'); +if (api_is_western_name_order()) { + // Firstname + $form->addElement('text','firstname', get_lang('FirstName')); + $form->applyFilter('firstname', 'html_filter'); + $form->applyFilter('firstname', 'trim'); + $form->addRule('firstname', get_lang('ThisFieldIsRequired'), 'required'); + // Lastname + $form->addElement('text','lastname', get_lang('LastName')); + $form->applyFilter('lastname', 'html_filter'); + $form->applyFilter('lastname', 'trim'); + $form->addRule('lastname', get_lang('ThisFieldIsRequired'), 'required'); +} else { + // Lastname + $form->addElement('text','lastname', get_lang('LastName')); + $form->applyFilter('lastname', 'html_filter'); + $form->applyFilter('lastname', 'trim'); + $form->addRule('lastname', get_lang('ThisFieldIsRequired'), 'required'); + // Firstname + $form->addElement('text','firstname', get_lang('FirstName')); + $form->applyFilter('firstname', 'html_filter'); + $form->applyFilter('firstname', 'trim'); + $form->addRule('firstname', get_lang('ThisFieldIsRequired'), 'required'); +} // Official code $form->addElement('text', 'official_code', get_lang('OfficialCode'), array('size' => '40')); $form->applyFilter('official_code', 'html_filter'); @@ -145,7 +158,7 @@ $form->addGroup($group, 'mail', get_lang('SendMailToNewUser'), ' '); $form->addElement('radio', 'radio_expiration_date', get_lang('ExpirationDate'), get_lang('NeverExpires'), 0); $group = array (); $group[] = & $form->createElement('radio', 'radio_expiration_date', null, get_lang('On'), 1); -$group[] = & $form->createElement('datepicker', 'expiration_date', null, array('form_name' => $form->getAttribute('name'), 'onChange'=>'enable_expiration_date()')); +$group[] = & $form->createElement('datepicker', 'expiration_date', null, array('form_name' => $form->getAttribute('name'), 'onChange'=>'javascript: enable_expiration_date();')); $form->addGroup($group, 'max_member_group', null, '', false); // Active account or inactive account $form->addElement('radio', 'active', get_lang('ActiveAccount'), get_lang('Active'), 1); @@ -197,7 +210,7 @@ foreach ($extra as $id => $field_details) { $group = array(); foreach ($field_details[9] as $option_id => $option_details) { $options[$option_details[1]] = $option_details[2]; - $group[] =& HTML_QuickForm::createElement('radio', 'extra_'.$field_details[1], $option_details[1],$option_details[2].'
',$option_details[1]); + $group[] =& HTML_QuickForm::createElement('radio', 'extra_'.$field_details[1], $option_details[1], $option_details[2].'
', $option_details[1]); } $form->addGroup($group, 'extra_'.$field_details[1], $field_details[3], ''); break; @@ -206,14 +219,14 @@ foreach ($extra as $id => $field_details) { foreach ($field_details[9] as $option_id => $option_details) { $options[$option_details[1]] = $option_details[2]; } - $form->addElement('select','extra_'.$field_details[1],$field_details[3],$options,''); + $form->addElement('select', 'extra_'.$field_details[1], $field_details[3], $options, ''); break; case USER_FIELD_TYPE_SELECT_MULTIPLE: $options = array(); foreach ($field_details[9] as $option_id => $option_details) { $options[$option_details[1]] = $option_details[2]; } - $form->addElement('select','extra_'.$field_details[1],$field_details[3],$options,array('multiple' => 'multiple')); + $form->addElement('select', 'extra_'.$field_details[1], $field_details[3], $options, array('multiple' => 'multiple')); break; case USER_FIELD_TYPE_DATE: $form->addElement('datepickerdate', 'extra_'.$field_details[1], $field_details[3]); @@ -238,12 +251,12 @@ $defaults['admin']['platform_admin'] = 0; $defaults['mail']['send_mail'] = 0; $defaults['password']['password_auto'] = 1; $defaults['active'] = 1; -$defaults['expiration_date']=array(); +$defaults['expiration_date'] = array(); $days = api_get_setting('account_valid_duration'); $time = strtotime('+'.$days.' day'); -$defaults['expiration_date']['d'] = date('d',$time); -$defaults['expiration_date']['F'] = date('m',$time); -$defaults['expiration_date']['Y'] = date('Y',$time); +$defaults['expiration_date']['d'] = date('d', $time); +$defaults['expiration_date']['F'] = date('m', $time); +$defaults['expiration_date']['Y'] = date('Y', $time); $defaults['radio_expiration_date'] = 0; $defaults['status'] = STUDENT; $defaults['session_id'] = api_get_session_id(); @@ -291,14 +304,14 @@ if ($form->validate()) { $auth_source = PLATFORM_AUTH_SOURCE; $password = $user['password']['password_auto'] == '1' ? api_generate_password() : $user['password']['password']; } - if ($user['radio_expiration_date']=='1') { - $expiration_date=$user['expiration_date']; + if ($user['radio_expiration_date'] == '1') { + $expiration_date = $user['expiration_date']; } else { - $expiration_date='0000-00-00 00:00:00'; + $expiration_date = '0000-00-00 00:00:00'; } $active = intval($user['active']); // default status = student - $status =5; + $status = 5; //create user $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, $hr_dept_id); @@ -314,7 +327,7 @@ if ($form->validate()) { $result = Database::query("SELECT course_code FROM $tbl_session_rel_course WHERE id_session='$id_session'",__FILE__,__LINE__); $CourseList=array(); - while ($row=Database::fetch_array($result)) { + while ($row = Database::fetch_array($result)) { $CourseList[] = $row['course_code']; } @@ -351,9 +364,9 @@ if ($form->validate()) { Database::query($sql, __FILE__, __LINE__); } if (!empty ($email) && $send_mail) { - $emailto = '"'.$firstname.' '.$lastname.'" <'.$email.'>'; + $emailto = '"'.api_get_person_name($firstname, $lastname, null, PERSON_NAME_EMAIL_ADDRESS).'" <'.$email.'>'; $emailsubject = '['.api_get_setting('siteName').'] '.get_lang('YourReg').' '.api_get_setting('siteName'); - $emailheaders = 'From: '.api_get_setting('administratorName').' '.api_get_setting('administratorSurname').' <'.api_get_setting('emailAdministrator').">\n"; + $emailheaders = 'From: '.api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS).' <'.api_get_setting('emailAdministrator').">\n"; $emailheaders .= 'Reply-To: '.api_get_setting('emailAdministrator'); $portal_url = $_configuration['root_web']; @@ -364,7 +377,7 @@ if ($form->validate()) { $portal_url = $url['url']; } } - $emailbody=get_lang('Dear')." ".stripslashes("$firstname $lastname").",\n\n".get_lang('YouAreReg')." ". api_get_setting('siteName') ." ".get_lang('Settings')." ". $username ."\n". get_lang('Pass')." : ".stripslashes($password)."\n\n" .get_lang('Address') ." ". api_get_setting('siteName') ." ". get_lang('Is') ." : ".$portal_url."\n\n". get_lang('Problem'). "\n\n". get_lang('Formula').",\n\n".api_get_setting('administratorName')." ".api_get_setting('administratorSurname')."\n". get_lang('Manager'). " ".api_get_setting('siteName')."\nT. ".api_get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".api_get_setting('emailAdministrator'); + $emailbody=get_lang('Dear')." ".stripslashes(api_get_person_name($firstname, $lastname)).",\n\n".get_lang('YouAreReg')." ". api_get_setting('siteName') ." ".get_lang('Settings')." ". $username ."\n". get_lang('Pass')." : ".stripslashes($password)."\n\n" .get_lang('Address') ." ". api_get_setting('siteName') ." ". get_lang('Is') ." : ".$portal_url."\n\n". get_lang('Problem'). "\n\n". get_lang('Formula').",\n\n".api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'))."\n". get_lang('Manager'). " ".api_get_setting('siteName')."\nT. ".api_get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".api_get_setting('emailAdministrator'); @api_send_mail($emailto, $emailsubject, $emailbody, $emailheaders); } Security::clear_token(); @@ -384,7 +397,7 @@ if ($form->validate()) { Security::clear_token(); } $token = Security::get_token(); - $form->addElement('hidden','sec_token'); + $form->addElement('hidden', 'sec_token'); $form->setConstants(array('sec_token' => $token)); } // Display form diff --git a/main/mySpace/user_import.php b/main/mySpace/user_import.php index 13498516db..9ac87334c4 100644 --- a/main/mySpace/user_import.php +++ b/main/mySpace/user_import.php @@ -36,14 +36,27 @@ we give 2 variables to a possible sufix. Sufix means the last numbers of the use @param string lastname @author Julio Montoya Armas */ -function make_login($firstname, $lastname) { - $desired_username = ''; - if (api_strlen($lastname) < 17) { - $desired_username = api_substr($firstname, 0, 1).$lastname; +function make_login($firstname, $lastname, $encoding = null, $language = null) { + if (is_null($encoding)) { + $encoding = api_get_system_encoding(); + } + if (is_null($language)) { + $language = api_get_interface_language(); + } + if (!api_is_western_name_order(null, $language)) { + $temp = $firstname; + $firstname = $lastname; + $lastname = $temp; + } + $firstname = preg_replace('/[^0-9A-Za-z]/', '', api_transliterate($firstname, '', $encoding)); + $lastname = preg_replace('/[^0-9A-Za-z]/', '', api_transliterate($lastname, '', $encoding)); + $desired_username = ''; + if (strlen($lastname) < 17) { + $desired_username = substr($firstname, 0, 1).$lastname; } else { - $desired_username = api_substr($firstname, 0, 1).api_substr($lastname, 0, 16); - } - return api_strtolower($desired_username); + $desired_username = substr($firstname, 0, 1).substr($lastname, 0, 16); + } + return strtolower($desired_username); } /** @@ -56,7 +69,7 @@ the return array will be array(username=>'jmontoya', sufix='2') @return array with the username, the sufix @author Julio Montoya Armas */ -function make_username($firstname, $lastname, $username) { +function make_username($firstname, $lastname, $username, $encoding = null, $language = null) { $table_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); // if username exist @@ -68,7 +81,7 @@ function make_username($firstname, $lastname, $username) { } else { $sufix = $i; } - $desired_username = make_login($firstname, $lastname); + $desired_username = make_login($firstname, $lastname, $encoding, $language); if (UserManager::is_username_available($desired_username.$sufix)) { break; } else { @@ -277,7 +290,7 @@ function save_data($users, $CourseList, $id_session) { // coach only will registered users $default_status = '5'; if ($user['create'] == '1') { - $user['id'] = UserManager :: create_user($user['FirstName'], $user['LastName'], $default_status , $user['Email'], $user['UserName'], $user['Password'], $user['OfficialCode'], api_get_setting('PlatformLanguage'), $user['PhoneNumber'], ''); + $user['id'] = UserManager :: create_user($user['FirstName'], $user['LastName'], $default_status, $user['Email'], $user['UserName'], $user['Password'], $user['OfficialCode'], api_get_setting('PlatformLanguage'), $user['PhoneNumber'], ''); $user['added_at_platform'] = 1; } else { $user['id'] = $user['create']; @@ -297,7 +310,7 @@ function save_data($users, $CourseList, $id_session) { $userid = $user['id']; $sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session,course_code,id_user) VALUES('$id_session','$enreg_course','$userid')"; //echo "
"; - $course_session=array('course' => $enreg_course, 'added' => 1); + $course_session = array('course' => $enreg_course, 'added' => 1); //$user['added_at_session'] = $course_session; Database::query($sql, __FILE__, __LINE__); if (Database::affected_rows()) { @@ -337,10 +350,10 @@ function save_data($users, $CourseList, $id_session) { if ($sendMail) { $i = 0; foreach ($users as $index => $user) { - $emailto = $user['FirstName'].' '.$user['LastName'].' <'.$user['Email'].'>'; + $emailto = api_get_person_name($user['FirstName'], $user['LastName'], null, PERSON_NAME_EMAIL_ADDRESS).' <'.$user['Email'].'>'; $emailsubject = '['.api_get_setting('siteName').'] '.get_lang('YourReg').' '.api_get_setting('siteName'); - $emailbody = get_lang('Dear').' '.$user['FirstName'].' '.$user['LastName'].",\n\n".get_lang('YouAreReg')." ".api_get_setting('siteName')." ".get_lang('Settings')." $user[UserName]\n".get_lang('Pass')." : $user[Password]\n\n".get_lang('Address')." ".api_get_setting('siteName')." ".get_lang('Is')." : ".api_get_path('WEB_PATH')." \n\n".get_lang('Problem')."\n\n".get_lang('Formula').",\n\n".api_get_setting('administratorName')." ".api_get_setting('administratorSurname')."\n".get_lang('Manager')." ".api_get_setting('siteName')."\nT. ".api_get_setting('administratorTelephone')."\n".get_lang('Email')." : ".api_get_setting('emailAdministrator').""; - $emailheaders = 'From: '.api_get_setting('administratorName').' '.api_get_setting('administratorSurname').' <'.api_get_setting('emailAdministrator').">\n"; + $emailbody = get_lang('Dear').' '.api_get_person_name($user['FirstName'], $user['LastName']).",\n\n".get_lang('YouAreReg')." ".api_get_setting('siteName')." ".get_lang('Settings')." $user[UserName]\n".get_lang('Pass')." : $user[Password]\n\n".get_lang('Address')." ".api_get_setting('siteName')." ".get_lang('Is')." : ".api_get_path('WEB_PATH')." \n\n".get_lang('Problem')."\n\n".get_lang('Formula').",\n\n".api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'))."\n".get_lang('Manager')." ".api_get_setting('siteName')."\nT. ".api_get_setting('administratorTelephone')."\n".get_lang('Email')." : ".api_get_setting('emailAdministrator').""; + $emailheaders = 'From: '.api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS).' <'.api_get_setting('emailAdministrator').">\n"; $emailheaders .= 'Reply-To: '.api_get_setting('emailAdministrator'); @api_send_mail($emailto, $emailsubject, $emailbody, $emailheaders); @@ -354,10 +367,10 @@ function save_data($users, $CourseList, $id_session) { if ($user['added_at_session'] == 1) { $addedto .= get_lang('UserInSession'); } - $registered_users .= "".$user['FirstName']." ".$user['LastName']." - ".$addedto.'
'; + $registered_users .= "".api_get_person_name($user['FirstName'], $user['LastName'])." - ".$addedto.'
'; } else { $addedto = get_lang('UserNotAdded'); - $registered_users .= "".$user['FirstName']." ".$user['LastName']." - ".$addedto.'
'; + $registered_users .= "".api_get_person_name($user['FirstName'], $user['LastName'])." - ".$addedto.'
'; } } } else { @@ -374,10 +387,10 @@ function save_data($users, $CourseList, $id_session) { $addedto .= ' '.get_lang('UserInSession'); } - $registered_users .= "".$user['FirstName']." ".$user['LastName']." - ".$addedto.'
'; + $registered_users .= "".api_get_person_name($user['FirstName'], $user['LastName'])." - ".$addedto.'
'; } else { $addedto = get_lang('UserNotAdded'); - $registered_users .= "".$user['FirstName']." ".$user['LastName']." - ".$addedto.'
'; + $registered_users .= "".api_get_person_name($user['FirstName'], $user['LastName'])." - ".$addedto.'
'; } } } @@ -519,7 +532,7 @@ if ($_POST['formSent'] && $_FILES['import_file']['size'] !== 0) { } else { $users = parse_xml_data($_FILES['import_file']['tmp_name']); } - if (count($users) >0) { + if (count($users) > 0) { $results = validate_data($users); $errors = $results['errors']; $users = $results['users']; @@ -558,7 +571,7 @@ if (count($errors) != 0) { $error_message = '';