Example #1
0
$csvContent[] = get_lang('Information');
$data = array(get_lang('Name') => $user['complete_name'], get_lang('Email') => $user['email'], get_lang('Phone') => $user['phone'], get_lang('OfficialCode') => $user['official_code'], get_lang('Online') => $user['user_is_online'] ? Display::return_icon('online.png') : Display::return_icon('offline.png'), get_lang('Status') => $user['status'] == 1 ? get_lang('Teacher') : get_lang('Student'), null => sprintf(get_lang('CreatedByXYOnZ'), 'user_information.php?user_id=' . $creatorId, $creatorInfo['username'], api_get_utc_datetime($registrationDate)));
$row = 1;
foreach ($data as $label => $item) {
    if (!empty($label)) {
        $label = $label . ': ';
    }
    $table->setCellContents($row, 0, $label . $item);
    $csvContent[] = array($label, strip_tags($item));
    $row++;
}
$userInformation = $table->toHtml();
$table = new HTML_Table(array('class' => 'data_table'));
$table->setHeaderContents(0, 0, get_lang('Tracking'));
$csvContent[] = get_lang('Tracking');
$data = array(get_lang('FirstLogin') => Tracking::get_first_connection_date($user['user_id']), get_lang('LatestLogin') => Tracking::get_last_connection_date($user['user_id'], true));
$row = 1;
foreach ($data as $label => $item) {
    if (!empty($label)) {
        $label = $label . ': ';
    }
    $table->setCellContents($row, 0, $label . $item);
    $csvContent[] = array($label, strip_tags($item));
    $row++;
}
$trackingInformation = $table->toHtml();
$tbl_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
             $result = $result . ' (' . $user_info_stat['attempts'] . ' ' . get_lang('Attempts') . ')';
             $counter++;
         } else {
             $result = '-';
         }
         $html_result .= $result;
         $html_result .= "</td>";
     }
     if (empty($counter)) {
         $total_student = '-';
     } else {
         $total_student = $total_result_by_user / $counter;
         $total_average_score += $total_student;
         $total_average_score_count++;
     }
     $string_date = Tracking::get_last_connection_date($user['user_id'], true);
     $html_result .= "<td>{$total_student}</td><td>{$string_date}</td></tr>";
 }
 $html_result .= "<tr><th>" . get_lang('AverageScore') . "</th>";
 $total_average = 0;
 $counter = 0;
 foreach ($course_list as $course_item) {
     if (!empty($course_average_counter[$course_item['code']])) {
         $average_per_course = round($course_average[$course_item['code']] / ($course_average_counter[$course_item['code']] * 100) * 100, 2);
     } else {
         $average_per_course = '-';
     }
     if (!empty($average_per_course)) {
         $counter++;
     }
     $total_average = $total_average + $average_per_course;
Example #3
0
                        $sql_session_coach = 'SELECT session.id_coach, user_id, lastname, firstname, MAX(login_date) as login_date
					FROM ' . $tbl_user . ',' . $tbl_sessions . ' as session,' . $tbl_track_login . ' , ' . $tbl_session_rel_access_url . ' as session_rel_url
					WHERE id_coach=user_id AND login_user_id=user_id  AND access_url_id = ' . $access_url_id . ' AND  session_rel_url.session_id=session.id
					GROUP BY user_id
					ORDER BY login_date ' . $tracking_direction;
                    }
                }
                $result_sessions_coach = Database::query($sql_session_coach);
                $total_no_coaches += Database::num_rows($result_sessions_coach);
                while ($coach = Database::fetch_array($result_sessions_coach)) {
                    $global_coaches[$coach['user_id']] = $coach;
                }
                $all_datas = array();
                foreach ($global_coaches as $id_coach => $coaches) {
                    $time_on_platform = api_time_to_hms(Tracking::get_time_spent_on_the_platform($coaches['user_id']));
                    $last_connection = Tracking::get_last_connection_date($coaches['user_id']);
                    $nb_students = count(Tracking::get_student_followed_by_coach($coaches['user_id']));
                    $nb_courses = count(Tracking::get_courses_followed_by_coach($coaches['user_id']));
                    $nb_sessions = count(Tracking::get_sessions_coached_by_user($coaches['user_id']));
                    $table_row = array();
                    if ($is_western_name_order) {
                        $table_row[] = $coaches['firstname'];
                        $table_row[] = $coaches['lastname'];
                    } else {
                        $table_row[] = $coaches['lastname'];
                        $table_row[] = $coaches['firstname'];
                    }
                    $table_row[] = $time_on_platform;
                    $table_row[] = $last_connection;
                    $table_row[] = $nb_students;
                    $table_row[] = $nb_courses;
Example #4
0
function get_users($from, $limit, $column, $direction)
{
    $active = isset($_GET['active']) ? $_GET['active'] : 1;
    $keyword = isset($_GET['keyword']) ? Security::remove_XSS($_GET['keyword']) : null;
    $sleepingDays = isset($_GET['sleeping_days']) ? intval($_GET['sleeping_days']) : null;
    $lastConnectionDate = null;
    if (!empty($sleepingDays)) {
        $lastConnectionDate = api_get_utc_datetime(strtotime($sleepingDays . ' days ago'));
    }
    $is_western_name_order = api_is_western_name_order();
    $coach_id = api_get_user_id();
    $drhLoaded = false;
    if (api_is_drh()) {
        $column = 'u.user_id';
        if (api_drh_can_access_all_session_content()) {
            $students = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus('drh_all', api_get_user_id(), false, $from, $limit, $column, $direction, $keyword, $active, $lastConnectionDate, null, null, api_is_student_boss() ? null : STUDENT);
            $drhLoaded = true;
        }
    }
    if ($drhLoaded == false) {
        $students = UserManager::getUsersFollowedByUser(api_get_user_id(), api_is_student_boss() ? null : STUDENT, false, false, false, $from, $limit, $column, $direction, $active, $lastConnectionDate, api_is_student_boss() ? STUDENT_BOSS : COURSEMANAGER, $keyword);
    }
    $all_datas = array();
    foreach ($students as $student_data) {
        $student_id = $student_data['user_id'];
        if (isset($_GET['id_session'])) {
            $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;
        $nb_courses_student = 0;
        if (!empty($courses)) {
            foreach ($courses as $course_code) {
                $courseInfo = api_get_course_info($course_code);
                $courseId = $courseInfo['real_id'];
                if (CourseManager::is_user_subscribed_in_course($student_id, $course_code, true)) {
                    $avg_time_spent += Tracking::get_time_spent_on_the_course($student_id, $courseId, $_GET['id_session']);
                    $my_average = Tracking::get_avg_student_score($student_id, $course_code);
                    if (is_numeric($my_average)) {
                        $avg_student_score += $my_average;
                    }
                    $avg_student_progress += Tracking::get_avg_student_progress($student_id, $course_code);
                    $total_assignments += Tracking::count_student_assignments($student_id, $course_code);
                    $total_messages += Tracking::count_student_messages($student_id, $course_code);
                    $nb_courses_student++;
                }
            }
        }
        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 = array();
        if ($is_western_name_order) {
            $row[] = $student_data['firstname'];
            $row[] = $student_data['lastname'];
        } else {
            $row[] = $student_data['lastname'];
            $row[] = $student_data['firstname'];
        }
        $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;
        if (isset($_GET['id_coach']) && intval($_GET['id_coach']) != 0) {
            $detailsLink = '<a href="myStudents.php?student=' . $student_id . '&id_coach=' . $coach_id . '&id_session=' . $_GET['id_session'] . '">
				          <img src="' . api_get_path(WEB_IMG_PATH) . '2rightarrow.gif" border="0" /></a>';
        } else {
            $detailsLink = '<a href="myStudents.php?student=' . $student_id . '">
				             <img src="' . api_get_path(WEB_IMG_PATH) . '2rightarrow.gif" border="0" /></a>';
        }
        $row[] = $detailsLink;
        $all_datas[] = $row;
    }
    return $all_datas;
}
    /**
     * This method return a content html, it's used inside get_block method for showing it inside dashboard interface
     * @return string  content html
     */
    public function get_teachers_content_html_for_platform_admin()
    {
        $teachers = $this->teachers;
        //$content = '<div style="margin:10px;">';
        $content = '<h4>' . get_lang('YourTeachers') . '</h4>';
        $teachers_table = null;
        if (count($teachers) > 0) {
            $teachers_table .= '<table class="data_table" width:"95%">';
            $teachers_table .= '
								<tr>
									<th>' . get_lang('User') . '</th>
									<th>' . get_lang('TimeSpentOnThePlatform') . '</th>
									<th>' . get_lang('LastConnexion') . '</th>
								</tr>
							';
            $i = 1;
            foreach ($teachers as $teacher) {
                $teacher_id = $teacher['user_id'];
                $firstname = $teacher['firstname'];
                $lastname = $teacher['lastname'];
                $username = $teacher['username'];
                $time_on_platform = api_time_to_hms(Tracking::get_time_spent_on_the_platform($teacher_id));
                $last_connection = Tracking::get_last_connection_date($teacher_id);
                if ($i % 2 == 0) {
                    $class_tr = 'row_odd';
                } else {
                    $class_tr = 'row_even';
                }
                $teachers_table .= '
									<tr class="' . $class_tr . '">
										<td>' . api_get_person_name($firstname, $lastname) . ' (' . $username . ')</td>
										<td align="right">' . $time_on_platform . '</td>
										<td align="right">' . $last_connection . '</td>
									</tr>
									';
                $i++;
            }
            $teachers_table .= '</table>';
        } else {
            $teachers_table .= get_lang('ThereIsNoInformationAboutYourTeachers');
        }
        $content .= $teachers_table;
        if (count($teachers) > 0) {
            $content .= '<div style="text-align:right;margin-top:10px;">
			<a href="' . api_get_path(WEB_CODE_PATH) . 'mySpace/index.php?view=admin">' . get_lang('SeeMore') . '</a></div>';
        }
        //$content .= '</div>';
        return $content;
    }
Example #6
0
/**
 * Formats user information into a standard array
 * This function should be only used inside api_get_user_info()
 *
 * @param array Non-standard user array
 * @param bool $add_password
 *
 * @return array Standard user array
 */
function _api_format_user($user, $add_password = false)
{
    $result = array();
    $firstname = null;
    $lastname = null;
    if (isset($user['firstname']) && isset($user['lastname'])) {
        $firstname = $user['firstname'];
        $lastname = $user['lastname'];
    } elseif (isset($user['firstName']) && isset($user['lastName'])) {
        $firstname = isset($user['firstName']) ? $user['firstName'] : null;
        $lastname = isset($user['lastName']) ? $user['lastName'] : null;
    }
    $result['complete_name'] = api_get_person_name($firstname, $lastname);
    $result['complete_name_with_username'] = $result['complete_name'];
    if (!empty($user['username'])) {
        $result['complete_name_with_username'] = $result['complete_name'] . ' (' . $user['username'] . ')';
    }
    $result['firstname'] = $firstname;
    $result['lastname'] = $lastname;
    // Kept for historical reasons
    $result['firstName'] = $firstname;
    $result['lastName'] = $lastname;
    $attributes = array('phone', 'picture_uri', 'official_code', 'status', 'active', 'auth_source', 'username', 'theme', 'language', 'creator_id', 'registration_date', 'hr_dept_id', 'expiration_date');
    foreach ($attributes as $attribute) {
        $result[$attribute] = isset($user[$attribute]) ? $user[$attribute] : null;
    }
    if (isset($user['email'])) {
        $result['mail'] = isset($user['email']) ? $user['email'] : null;
        $result['email'] = isset($user['email']) ? $user['email'] : null;
    } else {
        $result['mail'] = isset($user['mail']) ? $user['mail'] : null;
        $result['email'] = isset($user['mail']) ? $user['mail'] : null;
    }
    $user_id = intval($user['user_id']);
    // Maintain the user_id index for backwards compatibility
    $result['user_id'] = $result['id'] = $user_id;
    $saveUserLastLogin = api_get_configuration_value('save_user_last_login');
    if ($saveUserLastLogin) {
        $last_login = $user['last_login'];
    } else {
        if (!isset($user['lastLogin']) && !isset($user['last_login'])) {
            $timestamp = Tracking::get_last_connection_date($result['user_id'], false, true);
            // Convert the timestamp back into a datetime
            // NOTE: this timestamp has ALREADY been converted to the local timezone in the get_last_connection_date function
            $last_login = date('Y-m-d H:i:s', $timestamp);
        } else {
            if (isset($user['lastLogin'])) {
                $last_login = $user['lastLogin'];
            } else {
                $last_login = $user['last_login'];
            }
        }
    }
    $result['last_login'] = $last_login;
    // Kept for historical reasons
    $result['lastLogin'] = $last_login;
    // Getting user avatar.
    $originalFile = UserManager::getUserPicture($user_id, USER_IMAGE_SIZE_ORIGINAL, $result);
    $smallFile = UserManager::getUserPicture($user_id, USER_IMAGE_SIZE_SMALL, $result);
    $result['avatar'] = $originalFile;
    $avatarString = explode('?', $originalFile);
    $result['avatar_no_query'] = reset($avatarString);
    $result['avatar_small'] = $smallFile;
    //$result['avatar_sys_path'] = api_get_path(SYS_CODE_PATH).'img/unknown.jpg';
    if (isset($user['user_is_online'])) {
        $result['user_is_online'] = $user['user_is_online'] == true ? 1 : 0;
    }
    if (isset($user['user_is_online_in_chat'])) {
        $result['user_is_online_in_chat'] = intval($user['user_is_online_in_chat']);
    }
    if ($add_password) {
        $result['password'] = $user['password'];
    }
    $result['profile_url'] = api_get_path(WEB_CODE_PATH) . 'social/profile.php?u=' . $user_id;
    if (isset($user['extra'])) {
        $result['extra'] = $user['extra'];
    }
    return $result;
}
Example #7
0
    public static function display_tracking_coach_overview($export_csv)
    {
        global $charset;
        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();
        $tracking_column = isset($_GET['tracking_list_coaches_column']) ? $_GET['tracking_list_coaches_column'] : ($is_western_name_order xor $sort_by_first_name) ? 1 : 0;
        $tracking_direction = isset($_GET['tracking_list_coaches_direction']) && in_array(strtoupper($_GET['tracking_list_coaches_direction']), array('ASC', 'DESC', 'ASCENDING', 'DESCENDING', '0', '1')) ? $_GET['tracking_list_coaches_direction'] : 'DESC';
        // Prepare array for column order - when impossible, use some of user names.
        if ($is_western_name_order) {
            $order = array(0 => 'firstname', 1 => 'lastname', 2 => $sort_by_first_name ? 'firstname' : 'lastname', 3 => 'login_date', 4 => $sort_by_first_name ? 'firstname' : 'lastname', 5 => $sort_by_first_name ? 'firstname' : 'lastname');
        } else {
            $order = array(0 => 'lastname', 1 => 'firstname', 2 => $sort_by_first_name ? 'firstname' : 'lastname', 3 => 'login_date', 4 => $sort_by_first_name ? 'firstname' : 'lastname', 5 => $sort_by_first_name ? 'firstname' : 'lastname');
        }
        $table = new SortableTable('tracking_list_coaches_myspace', array('MySpace', 'count_coaches'), null, ($is_western_name_order xor $sort_by_first_name) ? 1 : 0);
        $parameters['view'] = 'admin';
        $table->set_additional_parameters($parameters);
        if ($is_western_name_order) {
            $table->set_header(0, get_lang('FirstName'), true);
            $table->set_header(1, get_lang('LastName'), true);
        } else {
            $table->set_header(0, get_lang('LastName'), true);
            $table->set_header(1, get_lang('FirstName'), true);
        }
        $table->set_header(2, get_lang('TimeSpentOnThePlatform'), false);
        $table->set_header(3, get_lang('LastConnexion'), false);
        $table->set_header(4, get_lang('NbStudents'), false);
        $table->set_header(5, get_lang('CountCours'), false);
        $table->set_header(6, get_lang('NumberOfSessions'), false);
        $table->set_header(7, get_lang('Sessions'), false);
        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', ''));
        } 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', ''));
        }
        $tbl_track_login = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LOGIN);
        $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
        $tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
        $tbl_sessions = Database::get_main_table(TABLE_MAIN_SESSION);
        $sqlCoachs = "SELECT DISTINCT\n                        scu.user_id as id_coach,\n                        u.id as user_id,\n                        lastname,\n                        firstname,\n                        MAX(login_date) as login_date\n                        FROM {$tbl_user} u, {$tbl_session_course_user} scu, {$tbl_track_login}\n                        WHERE\n                            scu.user_id = u.id AND scu.status=2 AND login_user_id=u.id\n                        GROUP BY user_id ";
        if (api_is_multiple_url_enabled()) {
            $tbl_session_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
            $access_url_id = api_get_current_access_url_id();
            if ($access_url_id != -1) {
                $sqlCoachs = "SELECT DISTINCT\n                                    scu.user_id as id_coach,\n                                    u.id as user_id,\n                                    lastname,\n                                    firstname,\n                                    MAX(login_date) as login_date\n                                FROM {$tbl_user} u,\n                                {$tbl_session_course_user} scu,\n                                {$tbl_track_login} ,\n                                {$tbl_session_rel_access_url} session_rel_url\n                                WHERE\n                                    scu.user_id = u.id AND\n                                    scu.status = 2 AND\n                                    login_user_id = u.id AND\n                                    access_url_id = {$access_url_id} AND\n                                    session_rel_url.session_id = scu.session_id\n                                GROUP BY u.id";
            }
        }
        if (!empty($order[$tracking_column])) {
            $sqlCoachs .= "ORDER BY " . $order[$tracking_column] . " " . $tracking_direction;
        }
        $result_coaches = Database::query($sqlCoachs);
        $total_no_coaches = Database::num_rows($result_coaches);
        $global_coaches = array();
        while ($coach = Database::fetch_array($result_coaches)) {
            $global_coaches[$coach['user_id']] = $coach;
        }
        $sql_session_coach = 'SELECT session.id_coach, u.id as user_id, lastname, firstname, MAX(login_date) as login_date
                                FROM ' . $tbl_user . ' u ,' . $tbl_sessions . ' as session,' . $tbl_track_login . '
                                WHERE id_coach = u.id AND login_user_id = u.id
                                GROUP BY u.id
                                ORDER BY login_date ' . $tracking_direction;
        if (api_is_multiple_url_enabled()) {
            $tbl_session_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
            $access_url_id = api_get_current_access_url_id();
            if ($access_url_id != -1) {
                $sql_session_coach = 'SELECT session.id_coach, u.id as user_id, lastname, firstname, MAX(login_date) as login_date
					FROM ' . $tbl_user . ' u ,' . $tbl_sessions . ' as session, ' . $tbl_track_login . ' , ' . $tbl_session_rel_access_url . ' as session_rel_url
					WHERE
					    id_coach = u.id AND
					    login_user_id = u.id  AND
					    access_url_id = ' . $access_url_id . ' AND
					    session_rel_url.session_id = session.id
					GROUP BY  u.id
					ORDER BY login_date ' . $tracking_direction;
            }
        }
        $result_sessions_coach = Database::query($sql_session_coach);
        $total_no_coaches += Database::num_rows($result_sessions_coach);
        while ($coach = Database::fetch_array($result_sessions_coach)) {
            $global_coaches[$coach['user_id']] = $coach;
        }
        $all_datas = array();
        foreach ($global_coaches as $id_coach => $coaches) {
            $time_on_platform = api_time_to_hms(Tracking::get_time_spent_on_the_platform($coaches['user_id']));
            $last_connection = Tracking::get_last_connection_date($coaches['user_id']);
            $nb_students = count(Tracking::get_student_followed_by_coach($coaches['user_id']));
            $nb_courses = count(Tracking::get_courses_followed_by_coach($coaches['user_id']));
            $nb_sessions = count(Tracking::get_sessions_coached_by_user($coaches['user_id']));
            $table_row = array();
            if ($is_western_name_order) {
                $table_row[] = $coaches['firstname'];
                $table_row[] = $coaches['lastname'];
            } else {
                $table_row[] = $coaches['lastname'];
                $table_row[] = $coaches['firstname'];
            }
            $table_row[] = $time_on_platform;
            $table_row[] = $last_connection;
            $table_row[] = $nb_students;
            $table_row[] = $nb_courses;
            $table_row[] = $nb_sessions;
            $table_row[] = '<a href="session.php?id_coach=' . $coaches['user_id'] . '"><img src="' . api_get_path(WEB_IMG_PATH) . 'icons/22/2rightarrow.png" border="0" /></a>';
            $all_datas[] = $table_row;
            if ($is_western_name_order) {
                $csv_content[] = array(api_html_entity_decode($coaches['firstname'], ENT_QUOTES), api_html_entity_decode($coaches['lastname'], ENT_QUOTES), $time_on_platform, $last_connection, $nb_students, $nb_courses, $nb_sessions);
            } else {
                $csv_content[] = array(api_html_entity_decode($coaches['lastname'], ENT_QUOTES), api_html_entity_decode($coaches['firstname'], ENT_QUOTES), $time_on_platform, $last_connection, $nb_students, $nb_courses, $nb_sessions);
            }
        }
        if ($tracking_column != 3) {
            if ($tracking_direction == 'DESC') {
                usort($all_datas, array('MySpace', 'rsort_users'));
            } else {
                usort($all_datas, array('MySpace', 'sort_users'));
            }
        }
        if ($export_csv && $tracking_column != 3) {
            usort($csv_content, 'sort_users');
        }
        if ($export_csv) {
            $csv_content = array_merge($csv_header, $csv_content);
        }
        foreach ($all_datas as $row) {
            $table->addRow($row, 'align="right"');
        }
        $table->display();
    }
Example #8
0
     //the score inside the Reporting table
     $avg_student_score = Tracking::get_avg_student_score($user_info['user_id'], $course_code, array(), $sessionId);
 }
 $avg_student_progress = round($avg_student_progress, 2);
 // time spent on the course
 $courseInfo = api_get_course_info($course_code);
 $time_spent_on_the_course = 0;
 if (!empty($courseInfo)) {
     $time_spent_on_the_course = api_time_to_hms(Tracking::get_time_spent_on_the_course($user_info['user_id'], $courseInfo['real_id'], $sessionId));
 }
 // get information about connections on the platform by student
 $first_connection_date = Tracking::get_first_connection_date($user_info['user_id']);
 if ($first_connection_date == '') {
     $first_connection_date = get_lang('NoConnexion');
 }
 $last_connection_date = Tracking::get_last_connection_date($user_info['user_id'], true);
 if ($last_connection_date == '') {
     $last_connection_date = get_lang('NoConnexion');
 }
 // cvs information
 $csv_content[] = array(get_lang('Information', ''));
 $csv_content[] = array(get_lang('Name', ''), get_lang('Email', ''), get_lang('Tel', ''));
 $csv_content[] = array($user_info['complete_name'], $user_info['email'], $user_info['phone']);
 $csv_content[] = array();
 // csv tracking
 $csv_content[] = array(get_lang('Tracking', ''));
 $csv_content[] = array(get_lang('FirstLoginInPlatform', ''), get_lang('LatestLoginInPlatform', ''), 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);
 //Show title
 $info_course = CourseManager::get_course_information($course_code);
 $coachs_name = '';
Example #9
0
/**
 * Formats user information into a standard array
 * This function should be only used inside api_get_user_info()
 *
 * @param array User array
 * @param bool add password key in array
 *
 * @return array user info
 */
function api_format_user($user, $add_password = false)
{
    $result = array();
    // If user is anonymous we don't have anything to provide
    if (isset($user['is_anonymous']) && $user['is_anonymous']) {
        return $user;
    }
    $firstname = $lastname = null;
    if (isset($user['firstname']) && isset($user['lastname'])) {
        $firstname = $user['firstname'];
        $lastname = $user['lastname'];
    } elseif (isset($user['firstName']) && isset($user['lastName'])) {
        $firstname = $user['firstName'];
        $lastname = $user['lastName'];
    }
    $result['phone'] = $user['phone'];
    $result['complete_name'] = api_get_person_name($firstname, $lastname);
    $result['complete_name_with_username'] = $result['complete_name'];
    if (!empty($user['username'])) {
        $result['complete_name_with_username'] = $result['complete_name'] . ' (' . $user['username'] . ')';
    }
    $result['complete_name_login_as'] = $result['complete_name'];
    $result['profile_url'] = api_get_path(WEB_PUBLIC_PATH) . 'user/' . $user['username'];
    if (!empty($user['username'])) {
        //$result['complete_name_login_as'] = $result['complete_name'].' ('.sprintf(get_lang('LoginX'), $user['username']).')';
        $result['complete_name_login_as'] = $result['complete_name'] . ' (' . $user['username'] . ')';
    }
    $result['firstname'] = $firstname;
    $result['lastname'] = $lastname;
    // Kept for historical reasons
    $result['firstName'] = $firstname;
    $result['lastName'] = $lastname;
    if (isset($user['email'])) {
        $result['mail'] = $user['email'];
        $result['email'] = $user['email'];
    } else {
        $result['mail'] = $user['mail'];
        $result['email'] = $user['mail'];
    }
    $user_id = intval($user['user_id']);
    $result['picture_uri'] = $user['picture_uri'];
    $result['user_id'] = $user_id;
    $result['official_code'] = $user['official_code'];
    $result['status'] = $user['status'];
    $result['auth_source'] = $user['auth_source'];
    $result['active'] = $user['active'];
    $result['expiration_date'] = $user['expiration_date'];
    $result['registration_date'] = $user['registration_date'];
    $result['creator_id'] = $user['creator_id'];
    if (isset($user['username'])) {
        $result['username'] = $user['username'];
    }
    $result['theme'] = $user['theme'];
    $result['language'] = $user['language'];
    if (!empty($result['user_id'])) {
        if (!isset($user['lastLogin']) && !isset($user['last_login'])) {
            $timestamp = Tracking::get_last_connection_date($result['user_id'], false, true);
            // Convert the timestamp back into a datetime
            // NOTE: this timestamp has ALREADY been converted to the local timezone in the get_last_connection_date function
            $last_login = date('Y-m-d H:i:s', $timestamp);
        } else {
            if (isset($user['lastLogin'])) {
                $last_login = $user['lastLogin'];
            } else {
                $last_login = $user['last_login'];
            }
        }
    } else {
        $last_login = api_get_utc_datetime();
    }
    $result['last_login'] = $last_login;
    // Kept for historical reasons
    $result['lastLogin'] = $last_login;
    //Getting user avatar
    $picture_filename = trim($user['picture_uri']);
    $avatar = api_get_path(WEB_IMG_PATH) . 'unknown.jpg';
    $avatar_small = api_get_path(WEB_IMG_PATH) . 'unknown_22.jpg';
    $avatar_sys_path = api_get_path(SYS_IMG_PATH) . 'unknown.jpg';
    $dir = 'upload/users/' . $user_id . '/';
    if (!empty($picture_filename)) {
        /*if (api_get_setting('split_users_upload_directory') === 'true') {
              $dir = 'upload/users/'.substr((string)$user_id, 0, 1).'/'.$user_id.'/';
          }*/
    }
    $image_sys_path = api_get_path(SYS_CODE_PATH) . $dir . $picture_filename;
    if (file_exists($image_sys_path) && !is_dir($image_sys_path)) {
        $avatar = api_get_path(WEB_CODE_PATH) . $dir . $picture_filename;
        $avatar_small = api_get_path(WEB_CODE_PATH) . $dir . 'small_' . $picture_filename;
        $avatar_sys_path = api_get_path(SYS_CODE_PATH) . $dir . $picture_filename;
    }
    $result['avatar'] = $avatar;
    $result['avatar_sys_path'] = $avatar_sys_path;
    $result['avatar_small'] = $avatar_small;
    if (isset($user['user_is_online'])) {
        $result['user_is_online'] = $user['user_is_online'] == true ? 1 : 0;
    }
    if (isset($user['user_is_online_in_chat'])) {
        $result['user_is_online_in_chat'] = intval($user['user_is_online_in_chat']);
    }
    if ($add_password) {
        $result['password'] = $user['password'];
    }
    $result['extra_fields'] = isset($user['extra_fields']) ? $user['extra_fields'] : array();
    return $result;
}
Example #10
0
         $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 = array();
     if ($is_western_name_order) {
         $row[] = $student_data['firstname'];
         $row[] = $student_data['lastname'];
     } else {
         $row[] = $student_data['lastname'];
         $row[] = $student_data['firstname'];
     }
     $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;
     if ($export_csv) {
         $row[count($row) - 1] = strip_tags($row[count($row) - 1]);
         $row[count($row) - 2] = strip_tags($row[count($row) - 2]);
         $csv_content[] = $row;
     }
     if (isset($_GET['id_coach']) && intval($_GET['id_coach']) != 0) {
         $row[] = '<a href="myStudents.php?student=' . $student_id . '&id_coach=' . $coach_id . '&id_session=' . $session_id . '"><img src="' . api_get_path(WEB_IMG_PATH) . '2rightarrow.gif" border="0" /></a>';
     } else {
         $row[] = '<a href="myStudents.php?student=' . $student_id . '"><img src="' . api_get_path(WEB_IMG_PATH) . '2rightarrow.gif" border="0" /></a>';
     }
     $all_datas[] = $row;
 }
Example #11
0
/**
 * Formats user information into a standard array
 * This function should be only used inside api_get_user_info()
 *
 * @param array Non-standard user array
 * @return array Standard user array
 */
function _api_format_user($user, $add_password = false)
{
    $result = array();
    $firstname = null;
    $lastname = null;
    if (isset($user['firstname']) && isset($user['lastname'])) {
        $firstname = $user['firstname'];
        $lastname = $user['lastname'];
    } elseif (isset($user['firstName']) && isset($user['lastName'])) {
        $firstname = isset($user['firstName']) ? $user['firstName'] : null;
        $lastname = isset($user['lastName']) ? $user['lastName'] : null;
    }
    $result['complete_name'] = api_get_person_name($firstname, $lastname);
    $result['complete_name_with_username'] = $result['complete_name'];
    if (!empty($user['username'])) {
        $result['complete_name_with_username'] = $result['complete_name'] . ' (' . $user['username'] . ')';
    }
    $result['firstname'] = $firstname;
    $result['lastname'] = $lastname;
    // Kept for historical reasons
    $result['firstName'] = $firstname;
    $result['lastName'] = $lastname;
    $attributes = array('phone', 'picture_uri', 'official_code', 'status', 'active', 'auth_source', 'username', 'theme', 'language', 'creator_id', 'registration_date');
    foreach ($attributes as $attribute) {
        $result[$attribute] = isset($user[$attribute]) ? $user[$attribute] : null;
    }
    if (isset($user['email'])) {
        $result['mail'] = isset($user['email']) ? $user['email'] : null;
        $result['email'] = isset($user['email']) ? $user['email'] : null;
    } else {
        $result['mail'] = isset($user['mail']) ? $user['mail'] : null;
        $result['email'] = isset($user['mail']) ? $user['mail'] : null;
    }
    $user_id = intval($user['user_id']);
    $result['user_id'] = $user_id;
    if (isset($_configuration['save_user_last_login']) && $_configuration['save_user_last_login']) {
        $last_login = $user['last_login'];
    } else {
        if (!isset($user['lastLogin']) && !isset($user['last_login'])) {
            require_once api_get_path(LIBRARY_PATH) . 'tracking.lib.php';
            $timestamp = Tracking::get_last_connection_date($result['user_id'], false, true);
            // Convert the timestamp back into a datetime
            // NOTE: this timestamp has ALREADY been converted to the local timezone in the get_last_connection_date function
            $last_login = date('Y-m-d H:i:s', $timestamp);
        } else {
            if (isset($user['lastLogin'])) {
                $last_login = $user['lastLogin'];
            } else {
                $last_login = $user['last_login'];
            }
        }
    }
    $result['last_login'] = $last_login;
    // Kept for historical reasons
    $result['lastLogin'] = $last_login;
    // Getting user avatar.
    $picture_filename = trim($result['picture_uri']);
    $avatar = api_get_path(WEB_CODE_PATH) . 'img/unknown.jpg';
    $avatar_small = api_get_path(WEB_CODE_PATH) . 'img/unknown_22.jpg';
    $avatar_sys_path = api_get_path(SYS_CODE_PATH) . 'img/unknown.jpg';
    $dir = 'upload/users/' . $user_id . '/';
    //if (!empty($picture_filename) && api_is_anonymous() ) {  //Why you have to be anonymous?
    if (!empty($picture_filename)) {
        if (api_get_setting('split_users_upload_directory') === 'true') {
            $dir = 'upload/users/' . substr((string) $user_id, 0, 1) . '/' . $user_id . '/';
        }
    }
    $image_sys_path = api_get_path(SYS_CODE_PATH) . $dir . $picture_filename;
    if (file_exists($image_sys_path) && !is_dir($image_sys_path)) {
        $avatar = api_get_path(WEB_CODE_PATH) . $dir . $picture_filename;
        $avatar_small = api_get_path(WEB_CODE_PATH) . $dir . 'small_' . $picture_filename;
        $avatar_sys_path = api_get_path(SYS_CODE_PATH) . $dir . $picture_filename;
    }
    $result['avatar'] = $avatar;
    $result['avatar_sys_path'] = $avatar_sys_path;
    $result['avatar_small'] = $avatar_small;
    if (isset($user['user_is_online'])) {
        $result['user_is_online'] = $user['user_is_online'] == true ? 1 : 0;
    }
    if (isset($user['user_is_online_in_chat'])) {
        $result['user_is_online_in_chat'] = intval($user['user_is_online_in_chat']);
    }
    if ($add_password) {
        $result['password'] = $user['password'];
    }
    return $result;
}