@ -4,15 +4,15 @@
use Chamilo\CourseBundle\Entity\CLpCategory;
use ChamiloSession as Session;
if (!isset($_GET['course'])) {
$cidReset = true;
}
/**
* Implements the tracking of students in the Reporting pages.
*
* @package chamilo.reporting
*/
if (!isset($_GET['course'])) {
$cidReset = true;
}
require_once __DIR__.'/../inc/global.inc.php';
api_block_anonymous_users();
@ -105,7 +105,7 @@ if (isset($_GET['from']) && $_GET['from'] === 'myspace') {
$this_section = SECTION_TRACKING;
}
$nameTools = get_lang('StudentD etails');
$nameTools = get_lang('Learner d etails');
if (!empty($details)) {
if ($origin === 'user_course') {
@ -123,84 +123,84 @@ if (!empty($details)) {
if ($origin === 'tracking_course') {
$interbreadcrumb[] = [
'url' => '../tracking/courseLog.php?cidReq='.$course_code.'& id_session='.api_get_session_id(),
'name' => get_lang('Track ing'),
'name' => get_lang('Report ing'),
];
} else {
if ($origin === 'resume_session') {
$interbreadcrumb[] = [
'url' => "../session/session_list.php",
'name' => get_lang('SessionL ist'),
'name' => get_lang('Session l ist'),
];
$interbreadcrumb[] = [
'url' => '../session/resume_session.php?id_session='.$sessionId,
'name' => get_lang('SessionO verview'),
'name' => get_lang('Session o verview'),
];
} else {
$interbreadcrumb[] = [
'url' => api_is_student_boss() ? '#' : 'index.php',
'name' => get_lang('MySpace '),
'name' => get_lang('Reporting '),
];
if (!empty($coachId)) {
$interbreadcrumb[] = [
'url' => 'student.php?id_coach='.$coachId,
'name' => get_lang('CoachStudents '),
'name' => get_lang('Learners of trainer '),
];
$interbreadcrumb[] = [
'url' => 'myStudents.php?student='.$student_id.'& id_coach='.$coachId,
'name' => get_lang('StudentD etails'),
'name' => get_lang('Learner d etails'),
];
} else {
$interbreadcrumb[] = [
'url' => 'student.php',
'name' => get_lang('MyStudent s'),
'name' => get_lang('My learner s'),
];
$interbreadcrumb[] = [
'url' => 'myStudents.php?student='.$student_id,
'name' => get_lang('StudentD etails'),
'name' => get_lang('Learner d etails'),
];
}
}
}
}
$nameTools = get_lang('DetailsStudentInC ourse');
$nameTools = get_lang('Learner details in c ourse');
} else {
if ($origin === 'resume_session') {
$interbreadcrumb[] = [
'url' => '../session/session_list.php',
'name' => get_lang('SessionL ist'),
'name' => get_lang('Session l ist'),
];
if (!empty($sessionId)) {
$interbreadcrumb[] = [
'url' => '../session/resume_session.php?id_session='.$sessionId,
'name' => get_lang('SessionO verview'),
'name' => get_lang('Session o verview'),
];
}
} elseif ($origin === 'teacher_details') {
$this_section = SECTION_TRACKING;
$interbreadcrumb[] = ['url' => 'index.php', 'name' => get_lang('MySpace ')];
$interbreadcrumb[] = ['url' => 'teachers.php', 'name' => get_lang('Teach ers')];
$interbreadcrumb[] = ['url' => 'index.php', 'name' => get_lang('Reporting ')];
$interbreadcrumb[] = ['url' => 'teachers.php', 'name' => get_lang('Train ers')];
$nameTools = $user_info['complete_name'];
} else {
$interbreadcrumb[] = [
'url' => api_is_student_boss() ? '#' : 'index.php',
'name' => get_lang('MySpace '),
'name' => get_lang('Reporting '),
];
if (!empty($coachId)) {
if ($sessionId) {
$interbreadcrumb[] = [
'url' => 'student.php?id_coach='.$coachId.'& id_session='.$sessionId,
'name' => get_lang('CoachStudents '),
'name' => get_lang('Learners of trainer '),
];
} else {
$interbreadcrumb[] = [
'url' => 'student.php?id_coach='.$coachId,
'name' => get_lang('CoachStudents '),
'name' => get_lang('Learners of trainer '),
];
}
} else {
$interbreadcrumb[] = [
'url' => 'student.php',
'name' => get_lang('MyStudent s'),
'name' => get_lang('My learner s'),
];
}
}
@ -250,11 +250,11 @@ switch ($action) {
$column = 0;
$row = 0;
$headers = [
get_lang('TimeS pent'),
get_lang('NumberOfV isits'),
get_lang('GlobalP rogress'),
get_lang('FirstLogi n'),
get_lang('LastConnexionD ate'),
get_lang('Time s pent'),
get_lang('Number of v isits'),
get_lang('Global p rogress'),
get_lang('First connectio n'),
get_lang('Last connexion d ate'),
];
foreach ($headers as $header) {
@ -273,8 +273,8 @@ switch ($action) {
$courseTable .= '< table class = "data_table" > ';
$courseTable .= '< thead > ';
$courseTable .= '< tr >
< th > '.get_lang('FormationU nit').'< / th >
< th > '.get_lang('ConnectionT ime').'< / th >
< th > '.get_lang('Formation u nit').'< / th >
< th > '.get_lang('Connection t ime').'< / th >
< th > '.get_lang('Progress').'< / th >
< th > '.get_lang('Score').'< / th >
< / tr > ';
@ -369,12 +369,12 @@ switch ($action) {
$studentInfo = api_get_user_info($student_id);
$tpl = new Template('', false, false, false, true, false, false);
$tpl->assign('title', get_lang('AttestationOfA ttendance'));
$tpl->assign('title', get_lang('Attestation of a ttendance'));
$tpl->assign('session_title', $sessionInfo['name']);
$tpl->assign('student', $studentInfo['complete_name']);
$tpl->assign('table_progress', $table->toHtml());
$tpl->assign('subtitle', sprintf(
get_lang('InSessionXYouHadTheFollowingR esults'),
get_lang('In session %s, you had the following r esults'),
$sessionInfo['name']
));
$tpl->assign('table_course', $courseTable);
@ -459,9 +459,9 @@ switch ($action) {
foreach ($bossList as $boss) {
MessageManager::send_message_simple(
$boss['boss_id'],
sprintf(get_lang('BossAlertMsgSentToUserXTitle '), $user_info['complete_name']),
sprintf(get_lang('Follow up message about student %s '), $user_info['complete_name']),
sprintf(
get_lang('BossAlertUserXSentMessageToUserYWithLinkZ '),
get_lang('Hi,< br / > < br / > '),
$currentUserInfo['complete_name'],
$user_info['complete_name'],
$link
@ -470,7 +470,7 @@ switch ($action) {
}
}
Display::addFlash(Display::return_message(get_lang('MessageSent')));
Display::addFlash(Display::return_message(get_lang('Message Sent')));
header('Location: '.$currentUrl);
exit;
}
@ -493,9 +493,9 @@ switch ($action) {
case 'send_legal':
$isBoss = UserManager::userIsBossOfStudent(api_get_user_id(), $student_id);
if ($isBoss || api_is_platform_admin()) {
$subject = get_lang('SendLegalSubject ');
$subject = get_lang('Legal conditions ');
$content = sprintf(
get_lang('SendTermsDescriptionToUrlX '),
get_lang('Hello,< br / > Your tutor sent you your terms and conditions. You can sign it following this URL: %s '),
api_get_path(WEB_PATH)
);
MessageManager::send_message_simple($student_id, $subject, $content);
@ -534,7 +534,7 @@ switch ($action) {
// @todo delete the stats.track_e_exercises records.
// First implement this http://support.chamilo.org/issues/1334
Display::addFlash(Display::return_message(get_lang('LPWasReset '), 'success'));
Display::addFlash(Display::return_message(get_lang('Learning path was reset for the learner '), 'success'));
Security::clear_token();
}
break;
@ -658,28 +658,28 @@ echo '<a href="javascript: void(0);" onclick="javascript: window.print();">'
.Display::return_icon('printer.png', get_lang('Print'), '', ICON_SIZE_MEDIUM).'< / a > ';
echo '< a href = "'.api_get_self().'?'.Security::remove_XSS($_SERVER['QUERY_STRING']).'&export=csv" > '
.Display::return_icon('export_csv.png', get_lang('ExportAsCSV '), '', ICON_SIZE_MEDIUM).'< / a > ';
.Display::return_icon('export_csv.png', get_lang('CSV export '), '', ICON_SIZE_MEDIUM).'< / a > ';
echo '< a href = "'.api_get_self().'?'.Security::remove_XSS($_SERVER['QUERY_STRING']).'&export=xls" > '
.Display::return_icon('export_excel.png', get_lang('ExportAsXLS '), '', ICON_SIZE_MEDIUM).'< / a > ';
.Display::return_icon('export_excel.png', get_lang('Excel ex port'), '', ICON_SIZE_MEDIUM).'< / a > ';
echo Display::url(
Display::return_icon('attendance.png', get_lang('AccessD etails'), '', ICON_SIZE_MEDIUM),
Display::return_icon('attendance.png', get_lang('Access d etails'), '', ICON_SIZE_MEDIUM),
api_get_path(WEB_CODE_PATH).'mySpace/access_details_session.php?user_id='.$student_id
);
if (!empty($user_info['email'])) {
$send_mail = '< a href = "mailto:'.$user_info['email'].'" > '.
Display::return_icon('mail_send.png', get_lang('SendM ail'), '', ICON_SIZE_MEDIUM).'< / a > ';
Display::return_icon('mail_send.png', get_lang('Send message m ail'), '', ICON_SIZE_MEDIUM).'< / a > ';
} else {
$send_mail = Display::return_icon('mail_send_na.png', get_lang('SendM ail'), '', ICON_SIZE_MEDIUM);
$send_mail = Display::return_icon('mail_send_na.png', get_lang('Send message m ail'), '', ICON_SIZE_MEDIUM);
}
echo $send_mail;
if (!empty($student_id) & & !empty($course_code)) {
// Only show link to connection details if course and student were defined in the URL
echo '< a href = "access_details.php?student='.$student_id.'&course='.$course_code.'&origin='.$origin.'&cidReq='
.$course_code.'& id_session='.$sessionId.'">'
.Display::return_icon('statistics.png', get_lang('AccessD etails'), '', ICON_SIZE_MEDIUM)
.Display::return_icon('statistics.png', get_lang('Access d etails'), '', ICON_SIZE_MEDIUM)
.'< / a > ';
}
@ -695,14 +695,14 @@ if ($notebookTeacherEnable && !empty($student_id) && !empty($course_code)) {
if (api_can_login_as($student_id)) {
echo '< a href = "'.api_get_path(WEB_CODE_PATH).'admin/user_list.php?action=login_as&user_id='.$student_id
.'& sec_token='.$token.'">'
.Display::return_icon('login_as.png', get_lang('LoginA s'), null, ICON_SIZE_MEDIUM).'< / a > ';
.Display::return_icon('login_as.png', get_lang('Login a s'), null, ICON_SIZE_MEDIUM).'< / a > ';
}
if (Skill::isAllowed($student_id, false)) {
echo Display::url(
Display::return_icon(
'skill-badges.png',
get_lang('AssignS kill'),
get_lang('Assign s kill'),
null,
ICON_SIZE_MEDIUM
),
@ -781,7 +781,7 @@ if (!empty($courseInfo)) {
// 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('NoConnex ion');
$first_connection_date = get_lang('No connect ion');
}
$last_connection_date = Tracking::get_last_connection_date(
@ -789,7 +789,7 @@ $last_connection_date = Tracking::get_last_connection_date(
true
);
if ($last_connection_date == '') {
$last_connection_date = get_lang('NoConnex ion');
$last_connection_date = get_lang('No connect ion');
}
// cvs information
@ -798,7 +798,7 @@ $csv_content[] = [
];
$csv_content[] = [
get_lang('Name'),
get_lang('E mail'),
get_lang('e- mail'),
get_lang('Tel'),
];
$csv_content[] = [
@ -811,12 +811,12 @@ $csv_content[] = [];
// csv tracking
$csv_content[] = [
get_lang('Track ing'),
get_lang('Report ing'),
];
$csv_content[] = [
get_lang('FirstLogi nInPlatform'),
get_lang('LatestLoginInP latform'),
get_lang('TimeS pentInTheCourse'),
get_lang('First connectio nInPlatform'),
get_lang('Latest login in p latform'),
get_lang('Time s pentInTheCourse'),
get_lang('Progress'),
get_lang('Score'),
];
@ -858,7 +858,7 @@ $userInfo = [
if (!empty($course_code)) {
$userInfo['url_access'] = Display::url(
get_lang('SeeA ccesses'),
get_lang('See a ccesses'),
'access_details.php?'
.http_build_query(
[
@ -920,18 +920,18 @@ if (api_get_setting('allow_terms_conditions') === 'true') {
list($legalId, $legalLanguageId, $legalTime) = explode(':', $value['value']);
$icon = Display::return_icon('accept.png');
$btn = Display::url(
get_lang('DeleteLegal '),
get_lang('Delete legal agreement '),
api_get_self().'?action=delete_legal& student='.$student_id.'& course='.$course_code,
['class' => 'btn btn-danger']
);
$timeLegalAccept = api_get_local_time($legalTime);
} else {
$btn = Display::url(
get_lang('SendLegal '),
get_lang('Send message legal agreement '),
api_get_self().'?action=send_legal& student='.$student_id.'& course='.$course_code,
['class' => 'btn btn-primary']
);
$timeLegalAccept = get_lang('NotRegistered');
$timeLegalAccept = get_lang('Not Registered');
}
}
$userInfo['legal'] = [
@ -1028,7 +1028,7 @@ if (empty($details)) {
get_lang('Time'),
get_lang('Progress'),
get_lang('Score'),
get_lang('AttendancesFaults '),
get_lang('Not attended '),
get_lang('Evaluations'),
];
@ -1068,7 +1068,7 @@ if (empty($details)) {
< th > '.get_lang('Time').'< / th >
< th > '.get_lang('Progress').'< / th >
< th > '.get_lang('Score').'< / th >
< th > '.get_lang('AttendancesFaults ').'< / th >
< th > '.get_lang('Not attended ').'< / th >
< th > '.get_lang('Evaluations').'< / th >
< th > '.get_lang('Details').'< / th >
< / tr > ';
@ -1081,7 +1081,7 @@ if (empty($details)) {
get_lang('Time'),
get_lang('Progress'),
get_lang('Score'),
get_lang('AttendancesFaults '),
get_lang('Not attended '),
get_lang('Evaluations'),
get_lang('Details'),
];
@ -1135,7 +1135,7 @@ if (empty($details)) {
$attendances_faults_avg = '0/0 (0%)';
if (!empty($results_faults_avg['total'])) {
if (api_is_drh()) {
$attendances_faults_avg = '< a title = "'.get_lang('GoAttendance ').'" href = "'.api_get_path(WEB_CODE_PATH)
$attendances_faults_avg = '< a title = "'.get_lang('Go to attendances ').'" href = "'.api_get_path(WEB_CODE_PATH)
.'attendance/index.php?cidReq='.$courseCodeItem.'& id_session='.$sId.'& student_id='
.$student_id.'">'
.$results_faults_avg['faults'].'/'.$results_faults_avg['total'].' ('
@ -1270,7 +1270,7 @@ if (empty($details)) {
$csv_content[] = $csvRow;
$exportCourseList[$sId][] = $csvRow;
$sessionAction = Display::url(
Display::return_icon('export_csv.png', get_lang('ExportAsCSV '), [], ICON_SIZE_MEDIUM),
Display::return_icon('export_csv.png', get_lang('CSV export '), [], ICON_SIZE_MEDIUM),
$currentUrl
.'& '
.http_build_query(
@ -1278,7 +1278,7 @@ if (empty($details)) {
)
);
$sessionAction .= Display::url(
Display::return_icon('export_excel.png', get_lang('ExportAsXLS '), [], ICON_SIZE_MEDIUM),
Display::return_icon('export_excel.png', get_lang('Excel ex port'), [], ICON_SIZE_MEDIUM),
$currentUrl
.'& '
.http_build_query(
@ -1288,7 +1288,7 @@ if (empty($details)) {
if (!empty($sId)) {
$sessionAction .= Display::url(
Display::return_icon('pdf.png', get_lang('ExportTo PDF'), [], ICON_SIZE_MEDIUM),
Display::return_icon('pdf.png', get_lang('Export to PDF'), [], ICON_SIZE_MEDIUM),
$currentUrl
.'& '
.http_build_query(
@ -1298,7 +1298,7 @@ if (empty($details)) {
}
echo $sessionAction;
} else {
echo "< tr > < td colspan = '5' > ".get_lang('NoCourse ')."< / td > < / tr > ";
echo "< tr > < td colspan = '5' > ".get_lang('This course could not be found ')."< / td > < / tr > ";
}
Session::write('export_course_list', $exportCourseList);
echo '< / tbody > ';
@ -1307,30 +1307,30 @@ if (empty($details)) {
}
} else {
$columnHeaders = [
'lp' => get_lang('LearningPath '),
'lp' => get_lang('Learning paths '),
'time' => get_lang('Time').
Display::return_icon(
'info3.gif',
get_lang('TotalTimeByC ourse'),
get_lang('Total time in c ourse'),
['align' => 'absmiddle', 'hspace' => '3px']
),
'best_score' => get_lang('BestS core'),
'latest_attempt_avg_score' => get_lang('LatestAttemptAverageS core').
'best_score' => get_lang('Best s core'),
'latest_attempt_avg_score' => get_lang('Latest attempt average s core').
Display::return_icon(
'info3.gif',
get_lang('AverageIsCalculatedBasedInTheLatestA ttempts'),
get_lang('Average is calculated based on the latest a ttempts'),
['align' => 'absmiddle', 'hspace' => '3px']
),
'progress' => get_lang('Progress').
Display::return_icon(
'info3.gif',
get_lang('LPProgressScore '),
get_lang('% of learning objects visited '),
['align' => 'absmiddle', 'hspace' => '3px']
),
'last_connection' => get_lang('LastConnexio n').
'last_connection' => get_lang('Latest logi n').
Display::return_icon(
'info3.gif',
get_lang('LastTimeTheCourseWasUsed '),
get_lang('Last time learner entered the course '),
['align' => 'absmiddle', 'hspace' => '3px']
),
];
@ -1369,7 +1369,7 @@ if (empty($details)) {
$categoriesTempList = learnpath::getCategories($courseInfo['real_id']);
$categoryTest = new CLpCategory();
$categoryTest->setId(0);
$categoryTest->setName(get_lang('WithOutC ategory'));
$categoryTest->setName(get_lang('Without c ategory'));
$categoryTest->setPosition(0);
$categories = [
$categoryTest,
@ -1410,7 +1410,7 @@ if (empty($details)) {
echo $headers;
echo '< th > '.get_lang('Details').'< / th > ';
if (api_is_allowed_to_edit()) {
echo '< th > '.get_lang('ResetLP ').'< / th > ';
echo '< th > '.get_lang('Reset Learning path ').'< / th > ';
}
echo '< / tr > < / thead > < tbody > ';
@ -1586,7 +1586,7 @@ if (empty($details)) {
[
'onclick' => "javascript:if(!confirm('"
.addslashes(
api_htmlentities(get_lang('AreYouSureToD elete'))
api_htmlentities(get_lang('Are you sure you want to d elete'))
)
."')) return false;",
]
@ -1605,24 +1605,24 @@ if (empty($details)) {
< table class = "table table-striped table-hover" >
< thead >
< tr > ';
echo '< th > '.get_lang('Exercise s').'< / th > ';
echo '< th > '.get_lang('LearningPath ').'< / th > ';
echo '< th > '.get_lang('AvgCourseScore ').' '.
echo '< th > '.get_lang('Test s').'< / th > ';
echo '< th > '.get_lang('Learning paths ').'< / th > ';
echo '< th > '.get_lang('Average score in learning paths ').' '.
Display::return_icon(
'info3.gif',
get_lang('AverageS core'),
get_lang('Average s core'),
['align' => 'absmiddle', 'hspace' => '3px']
).'< / th > ';
echo '< th > '.get_lang('Attempts').'< / th > ';
echo '< th > '.get_lang('LatestA ttempt').'< / th > ';
echo '< th > '.get_lang('AllA ttempts').'< / th > ';
echo '< th > '.get_lang('Latest a ttempt').'< / th > ';
echo '< th > '.get_lang('All a ttempts').'< / th > ';
echo '< / tr > < / thead > < tbody > ';
$csv_content[] = [];
$csv_content[] = [
get_lang('Exercise s'),
get_lang('LearningPath '),
get_lang('AvgCourseScore '),
get_lang('Test s'),
get_lang('Learning paths '),
get_lang('Average score in learning paths '),
get_lang('Attempts'),
];
@ -1678,7 +1678,7 @@ if (empty($details)) {
$score_percentage = $scores_lp[0];
$lp_name = $scores_lp[1];
}
$lp_name = !empty($lp_name) ? $lp_name : get_lang('NoLearn path');
$lp_name = !empty($lp_name) ? $lp_name : get_lang('No learning path');
$css_class = 'row_even';
if ($i % 2) {
@ -1729,7 +1729,7 @@ if (empty($details)) {
.'& id_session='.$sessionId.'& session_id='.$sessionId.'& student='.$student_id.'& origin='
.(empty($origin) ? 'tracking' : $origin).$qualifyLink;
echo Display::url(
Display::return_icon('quiz.png', get_lang('Exercise ')),
Display::return_icon('quiz.png', get_lang('Test ')),
$attemptLink
);
}
@ -1743,7 +1743,7 @@ if (empty($details)) {
echo Display::url(
Display::return_icon(
'test_results.png',
get_lang('AllA ttempts'),
get_lang('All a ttempts'),
[],
ICON_SIZE_SMALL
),
@ -1766,7 +1766,7 @@ if (empty($details)) {
$i++;
}
} else {
echo '< tr > < td colspan = "6" > '.get_lang('NoExercise ').'< / td > < / tr > ';
echo '< tr > < td colspan = "6" > '.get_lang('NoTest ').'< / td > < / tr > ';
}
echo '< / tbody > < / table > < / div > ';
}
@ -1784,7 +1784,7 @@ if (empty($details)) {
);
$survey_done = Display::return_icon(
"accept_na.png",
get_lang('NoAnswer '),
get_lang('There is no answer for the moment '),
[],
ICON_SIZE_SMALL
);
@ -1834,11 +1834,11 @@ if (empty($details)) {
< thead >
< tr >
< th > '.get_lang('Tasks').'< / th >
< th class = "text-center" > '.get_lang('DocumentNumber ').'< / th >
< th class = "text-center" > '.get_lang('Document ID ').'< / th >
< th class = "text-center" > '.get_lang('Note').'< / th >
< th class = "text-center" > '.get_lang('HandedO ut').'< / th >
< th class = "text-center" > '.get_lang('HandOutDateLimit ').'< / th >
< th class = "text-center" > '.get_lang('ConsideredWorkingT ime').'< / th >
< th class = "text-center" > '.get_lang('Handed o ut').'< / th >
< th class = "text-center" > '.get_lang('Deadline ').'< / th >
< th class = "text-center" > '.get_lang('Assignment work t ime').'< / th >
< / tr >
< / thead >
< tbody >
@ -1888,11 +1888,11 @@ if (empty($details)) {
$csv_content[] = [];
$csv_content[] = [
get_lang('OtherTools '),
get_lang('OTI (Online Training Interaction) settings report '),
];
$csv_content[] = [
get_lang('Student_publication '),
get_lang('Assignments '),
$nb_assignments,
];
$csv_content[] = [
@ -1900,19 +1900,19 @@ if (empty($details)) {
$messages,
];
$csv_content[] = [
get_lang('LinksDetails '),
get_lang('Links accessed '),
$links,
];
$csv_content[] = [
get_lang('DocumentsDetails '),
get_lang('Documents downloaded '),
$documents,
];
$csv_content[] = [
get_lang('UploadedD ocuments'),
get_lang('Uploaded d ocuments'),
$uploaded_documents,
];
$csv_content[] = [
get_lang('ChatLastC onnection'),
get_lang('Latest chat c onnection'),
$chat_last_connection,
];
} //end details
@ -1922,7 +1922,7 @@ if ($allowMessages === true) {
echo Display::page_subheader2(get_lang('Messages'));
echo MessageManager::getMessagesAboutUserToString($user_info);
echo Display::url(
get_lang('NewM essage'),
get_lang('New m essage'),
'javascript: void(0);',
[
'onClick' => "$('#compose_message').show();",
@ -1938,7 +1938,7 @@ if ($allowMessages === true) {
$form->addHtml('< div id = "compose_message" style = "display:none;" > ');
$form->addText('subject', get_lang('Subject'));
$form->addHtmlEditor('message', get_lang('Message'));
$form->addButtonSend(get_lang('Send'));
$form->addButtonSend(get_lang('Send message '));
$form->addHidden('sec_token', $token);
$form->addHtml('< / div > ');
$form->display();
@ -1947,7 +1947,7 @@ if ($allowMessages === true) {
$allow = api_get_configuration_value('allow_user_message_tracking');
if ($allow & & (api_is_drh() || api_is_platform_admin())) {
$users = MessageManager::getUsersThatHadConversationWithUser($student_id);
echo Display::page_subheader2(get_lang('MessageTrack ing'));
echo Display::page_subheader2(get_lang('MessageReport ing'));
$table = new HTML_Table(['class' => 'table']);
$column = 0;