Minor - format code.

1.9.x
Julio Montoya 11 years ago
parent e4c1f270f5
commit cb1df90ba8
  1. 205
      main/inc/lib/tracking.lib.php
  2. 152
      main/session/index.php

@ -2817,12 +2817,13 @@ class Tracking
*/
static function show_user_progress($user_id, $session_id = 0, $extra_params = '', $show_courses = true)
{
$tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE);
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
$tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$tbl_access_rel_course = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_access_rel_session = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE);
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
$tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$tbl_access_rel_course = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_access_rel_session = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$user_id = intval($user_id);
// get course list
@ -2906,22 +2907,33 @@ class Tracking
);
$html .= '<table class="data_table" width="100%">';
$html .= '<tr>
'.Display::tag('th', get_lang('Course'), array('width'=>'300px')).'
'.Display::tag('th', get_lang('TimeSpentInTheCourse'), array('class'=>'head')).'
'.Display::tag('th', get_lang('Progress'), array('class'=>'head')).'
'.Display::tag('th', get_lang('Course'), array('width'=>'300px')).'
'.Display::tag('th', get_lang('TimeSpentInTheCourse'), array('class'=>'head')).'
'.Display::tag('th', get_lang('Progress'), array('class'=>'head')).'
'.Display::tag('th', get_lang('Score').Display::return_icon('info3.gif', get_lang('ScormAndLPTestTotalAverage'), array('align' => 'absmiddle', 'hspace' => '3px')),array('class'=>'head')).'
'.Display::tag('th', get_lang('LastConnexion'), array('class'=>'head')).'
'.Display::tag('th', get_lang('Details'), array('class'=>'head')).'
'.Display::tag('th', get_lang('LastConnexion'), array('class'=>'head')).'
'.Display::tag('th', get_lang('Details'), array('class'=>'head')).'
</tr>';
foreach ($courses as $course_code => $course_title) {
$weighting = 0;
$total_time_login = Tracking :: get_time_spent_on_the_course($user_id, $course_code);
$time = api_time_to_hms($total_time_login);
$progress = Tracking :: get_avg_student_progress($user_id, $course_code);
$percentage_score = Tracking :: get_avg_student_score($user_id, $course_code, array());
$last_connection = Tracking :: get_last_connection_date_on_the_course($user_id, $course_code);
$total_time_login = Tracking :: get_time_spent_on_the_course(
$user_id,
$course_code
);
$time = api_time_to_hms($total_time_login);
$progress = Tracking :: get_avg_student_progress(
$user_id,
$course_code
);
$percentage_score = Tracking :: get_avg_student_score(
$user_id,
$course_code,
array()
);
$last_connection = Tracking :: get_last_connection_date_on_the_course(
$user_id,
$course_code
);
if (is_null($progress)) {
$progress = '0%';
@ -2967,97 +2979,100 @@ class Tracking
// Session list
if (!empty($course_in_session)) {
$main_session_graph = '';
//Load graphics only when calling to an specific session
$session_graph = array();
//if (!isset($_GET['session_id']) && !isset($_GET['course'])) {
//Load graphics only when calling to an specific session
$session_graph = array();
$all_exercise_graph_name_list = array();
$my_results = array();
$all_exercise_graph_list = array();
$all_exercise_start_time = array();
foreach ($course_in_session as $my_session_id => $session_data) {
$course_list = $session_data['course_list'];
$session_name = $session_data['name'];
$all_exercise_graph_name_list = array();
$my_results = array();
$all_exercise_graph_list = array();
$user_count = count(SessionManager::get_users_by_session($my_session_id));
$all_exercise_start_time = array();
$exercise_graph_name_list = array();
//$user_results = array();
$exercise_graph_list = array();
foreach ($course_in_session as $my_session_id => $session_data) {
foreach ($course_list as $course_data) {
$course_list = $session_data['course_list'];
$session_name = $session_data['name'];
$exercise_list = get_all_exercises($course_data, $my_session_id);
$user_count = count(SessionManager::get_users_by_session($my_session_id));
foreach ($exercise_list as $exercise_data) {
$exercise_obj = new Exercise($course_data['id']);
$exercise_obj->read($exercise_data['id']);
//Exercise is not necessary to be visible to show results check the result_disable configuration instead
//$visible_return = $exercise_obj->is_visible();
$exercise_graph_name_list = array();
//$user_results = array();
$exercise_graph_list = array();
if ($exercise_data['results_disabled'] == 0 || $exercise_data['results_disabled'] == 2) {
//if ($visible_return['value'] == true) {
$best_average = intval(get_best_average_score_by_exercise($exercise_data['id'], $course_data['code'], $my_session_id, $user_count));
$exercise_graph_list[] = $best_average;
$all_exercise_graph_list[] = $best_average;
foreach ($course_list as $course_data) {
$user_result_data = get_best_attempt_by_user(api_get_user_id(), $exercise_data['id'], $course_data['code'], $my_session_id);
$score = 0;
if (!empty($user_result_data['exe_weighting']) && intval($user_result_data['exe_weighting']) != 0) {
$score = intval($user_result_data['exe_result']/$user_result_data['exe_weighting'] * 100);
}
//$user_results[] = $score;
$time = api_strtotime($exercise_data['start_time']) ? api_strtotime($exercise_data['start_time'], 'UTC') : 0;
$all_exercise_start_time[] = $time;
$my_results[] = $score;
if (count($exercise_list)<=10) {
$title = cut($course_data['title'], 30)." \n ".cut($exercise_data['title'], 30);
$exercise_graph_name_list[]= $title;
$all_exercise_graph_name_list[] = $title;
} else {
// if there are more than 10 results, space becomes difficult to find, so only show the title of the exercise, not the tool
$title = cut($exercise_data['title'], 30);
$exercise_graph_name_list[]= $title;
$all_exercise_graph_name_list[]= $title;
}
$exercise_list = get_all_exercises($course_data, $my_session_id);
foreach ($exercise_list as $exercise_data) {
$exercise_obj = new Exercise($course_data['id']);
$exercise_obj->read($exercise_data['id']);
//Exercise is not necessary to be visible to show results check the result_disable configuration instead
//$visible_return = $exercise_obj->is_visible();
if ($exercise_data['results_disabled'] == 0 || $exercise_data['results_disabled'] == 2) {
//if ($visible_return['value'] == true) {
$best_average = intval(get_best_average_score_by_exercise($exercise_data['id'], $course_data['code'], $my_session_id, $user_count));
$exercise_graph_list[] = $best_average;
$all_exercise_graph_list[] = $best_average;
$user_result_data = get_best_attempt_by_user(
api_get_user_id(),
$exercise_data['id'],
$course_data['code'],
$my_session_id
);
$score = 0;
if (!empty($user_result_data['exe_weighting']) && intval($user_result_data['exe_weighting']) != 0) {
$score = intval($user_result_data['exe_result']/$user_result_data['exe_weighting'] * 100);
}
$time = api_strtotime($exercise_data['start_time']) ? api_strtotime($exercise_data['start_time'], 'UTC') : 0;
$all_exercise_start_time[] = $time;
$my_results[] = $score;
if (count($exercise_list)<=10) {
$title = cut($course_data['title'], 30)." \n ".cut($exercise_data['title'], 30);
$exercise_graph_name_list[]= $title;
$all_exercise_graph_name_list[] = $title;
} else {
// if there are more than 10 results, space becomes difficult to find, so only show the title of the exercise, not the tool
$title = cut($exercise_data['title'], 30);
$exercise_graph_name_list[]= $title;
$all_exercise_graph_name_list[]= $title;
}
}
}
}
}
//Complete graph
if (!empty($my_results) && !empty($all_exercise_graph_list)) {
asort($all_exercise_start_time);
// Complete graph
if (!empty($my_results) && !empty($all_exercise_graph_list)) {
asort($all_exercise_start_time);
//Fix exams order
$final_all_exercise_graph_name_list = array();
$my_results_final = array();
$final_all_exercise_graph_list = array();
//Fix exams order
$final_all_exercise_graph_name_list = array();
$my_results_final = array();
$final_all_exercise_graph_list = array();
foreach ($all_exercise_start_time as $key => $time) {
$label_time = '';
if (!empty($time)) {
$label_time = date('d-m-y', $time);
//$label_time = api_format_date($time, DATE_FORMAT_NUMBER);
}
$final_all_exercise_graph_name_list[] = $all_exercise_graph_name_list[$key].' '.$label_time;
$my_results_final[] = $my_results[$key];
$final_all_exercise_graph_list[] = $all_exercise_graph_list[$key];
foreach ($all_exercise_start_time as $key => $time) {
$label_time = '';
if (!empty($time)) {
$label_time = date('d-m-y', $time);
//$label_time = api_format_date($time, DATE_FORMAT_NUMBER);
}
$main_session_graph = self::generate_session_exercise_graph($final_all_exercise_graph_name_list, $my_results_final, $final_all_exercise_graph_list);
$final_all_exercise_graph_name_list[] = $all_exercise_graph_name_list[$key].' '.$label_time;
$my_results_final[] = $my_results[$key];
$final_all_exercise_graph_list[] = $all_exercise_graph_list[$key];
}
//}
$main_session_graph = self::generate_session_exercise_graph(
$final_all_exercise_graph_name_list,
$my_results_final,
$final_all_exercise_graph_list
);
}
$html .= Display::page_subheader(Display::return_icon('session.png', get_lang('Sessions'), array(), ICON_SIZE_SMALL).' '.get_lang('Sessions'));
$html .= '<table class="data_table" width="100%">';
//'.Display::tag('th', get_lang('DoneExercises'), array('class'=>'head')).'
$html .= '<tr>
'.Display::tag('th', get_lang('Session'), array('width'=>'300px')).'
'.Display::tag('th', get_lang('PublishedExercises'), array('width'=>'300px')).'
@ -3104,10 +3119,10 @@ class Tracking
}
}
//Average
$average = get_average_score_by_course($course_data['code'], $my_session_id);
// Average
$average = get_average_score_by_course($course_data['code'], $my_session_id);
$all_exercises += $count_exercises;
$all_exercises += $count_exercises;
$all_unanswered_exercises_by_user += $count_exercises - $answered_exercises;
//$all_done_exercise += $done_exercises;
@ -3122,7 +3137,7 @@ class Tracking
} else {
$html .= '<tr>';
}
$url = api_get_path(WEB_CODE_PATH)."session/?session_id={$my_session_id}";
$url = api_get_path(WEB_CODE_PATH)."session/index.php?session_id={$my_session_id}";
$html .= Display::tag('td', Display::url($session_name, $url, array('target'=>SESSION_LINK_TARGET)));
$html .= Display::tag('td', $all_exercises);
@ -3142,7 +3157,7 @@ class Tracking
$html .= '</table><br />';
$html .= Display::div($main_session_graph, array('id'=>'session_graph','class'=>'chart-session', 'style'=>'position:relative; text-align: center;') );
//Checking selected session
// Checking selected session.
if (isset($_GET['session_id'])) {
$session_id_from_get = intval($_GET['session_id']);
@ -3218,7 +3233,7 @@ class Tracking
$html .= '<tr class="row_even">';
}
$url = api_get_course_url($course_code, $session_id_from_get);
$url = api_get_course_url($course_code, $session_id_from_get);
$course_url = Display::url($course_title, $url, array('target'=>SESSION_LINK_TARGET));
$html .= Display::tag('td', $course_url);
@ -3251,7 +3266,7 @@ class Tracking
$details .=Display::return_icon('2rightarrow_na.gif', get_lang('Details'));
} else {
$details = '<a href="'.api_get_self().'?course='.$course_code.'&session_id='.$session_id_from_get.$extra_params.'">';
$details .=Display::return_icon('2rightarrow.gif', get_lang('Details'));
$details .= Display::return_icon('2rightarrow.gif', get_lang('Details'));
}
$details .= '</a>';
$html .= Display::tag('td', $details, array('align'=>'center'));

@ -40,11 +40,11 @@ if (isset($_SESSION['objExercise'])) {
Session::erase('objExercise');
}
$session_info = SessionManager::fetch($session_id);
$session_list = SessionManager::get_sessions_by_coach(api_get_user_id());
$course_list = SessionManager::get_course_list_by_session_id($session_id);
$session_info = SessionManager::fetch($session_id);
$session_list = SessionManager::get_sessions_by_coach(api_get_user_id());
$course_list = SessionManager::get_course_list_by_session_id($session_id);
//Getting all sessions where I'm subscribed
// Getting all sessions where I'm subscribed
$new_session_list = UserManager::get_personal_session_course_list(api_get_user_id());
$user_course_list = array();
@ -118,20 +118,21 @@ if (!empty($course_list)) {
'publicated_on ASC',
true
);
$lp_list = $list->get_flat_list();
$lp_list = $list->get_flat_list();
$lp_count = 0;
if(!empty($lp_list)) {
if (!empty($lp_list)) {
foreach ($lp_list as $valLp) {
if($valLp['lp_visibility']) {
if ($valLp['lp_visibility']) {
$lp_count++;
}
}
}
$course_info = api_get_course_info($course_data['code']);
$exercise_count = count(get_all_exercises($course_info, $session_id, true));
$max_mutation_date = '';
$last_date = Tracking::get_last_connection_date_on_the_course(
@ -146,11 +147,11 @@ if (!empty($course_list)) {
if ($item['modified_on'] == '0000-00-00 00:00:00' || empty($item['modified_on'])) {
$lp_date_original = $item['created_on'];
$image = 'new.gif';
$label = get_lang('LearnpathAdded');
$label = get_lang('LearnpathAdded');
} else {
$lp_date_original = $item['modified_on'];
$image = 'moderator_star.png';
$label = get_lang('LearnpathUpdated');
$image = 'moderator_star.png';
$label = get_lang('LearnpathUpdated');
}
$mutation_date = api_strtotime($item['publicated_on']) > api_strtotime($lp_date_original) ? $item['publicated_on'] : $lp_date_original;
@ -161,7 +162,10 @@ if (!empty($course_list)) {
if (strtotime($last_date) < strtotime($lp_date_original)) {
if (empty($icons)) {
$icons .= ' '.Display::return_icon($image, get_lang('TitleNotification').': '.$label.' - '.$lp_date_original).' ';
$icons .= ' '.Display::return_icon(
$image,
get_lang('TitleNotification').': '.$label.' - '.$lp_date_original
).' ';
}
}
}
@ -205,9 +209,9 @@ if (count($session_select) > 1) {
}
if (empty($session_id)) {
$user_list = UserManager::get_user_list();
$user_list = UserManager::get_user_list();
} else {
$user_list = SessionManager::get_users_by_session($session_id);
$user_list = SessionManager::get_users_by_session($session_id);
}
//Final data to be show
@ -230,7 +234,7 @@ foreach ($final_array as $session_data) {
$best_score = '';
if (!empty($best_score_data)) {
$best_score = show_score($best_score_data['exe_result'], $best_score_data['exe_weighting']);
$best_score = show_score($best_score_data['exe_result'], $best_score_data['exe_weighting']);
}
// Exercise results
$counter = 1;
@ -250,12 +254,22 @@ foreach ($final_array as $session_data) {
if(!empty($exercise_result['exe_weighting']) && intval($exercise_result['exe_weighting']) != 0) {
$my_score = $exercise_result['exe_result']/$exercise_result['exe_weighting'];
}
$position = get_exercise_result_ranking($my_score, $exercise_result['exe_id'], $my_exercise_id, $my_course_code, $session_id, $user_list);
//$exercise_info->exercise = Display::url($exercise_info->exercise, api_get_path(WEB_CODE_PATH)."exercice/exercice.php?cidReq=$my_course_code&exerciseId={$exercise_info->id}&id_session=$session_id&show=result", array('target'=>SESSION_LINK_TARGET,'class'=>'exercise-result-link'));
$exercise_info->exercise = Display::url($exercise_info->exercise, api_get_path(WEB_CODE_PATH)."exercice/result.php?cidReq=$my_course_code&id={$exercise_result['exe_id']}&id_session=$session_id&show_headers=1", array('target'=>SESSION_LINK_TARGET,'class'=>'exercise-result-link'));
$position = get_exercise_result_ranking(
$my_score,
$exercise_result['exe_id'],
$my_exercise_id,
$my_course_code,
$session_id,
$user_list
);
$exercise_info->exercise = Display::url(
$exercise_info->exercise,
api_get_path(WEB_CODE_PATH)."exercice/result.php?cidReq=$my_course_code&id={$exercise_result['exe_id']}&id_session=$session_id&show_headers=1",
array('target'=>SESSION_LINK_TARGET,'class'=>'exercise-result-link')
);
$my_real_array[]= array(
//'date' => api_get_local_time($exercise_result['exe_date']),
'status' => Display::return_icon('quiz.gif', get_lang('Attempted'),'', ICON_SIZE_SMALL),
'date' => $start_date,
'course' => $course_data['name'],
@ -268,16 +282,20 @@ foreach ($final_array as $session_data) {
$counter++;
}
} else {
//We check the date validation of the exercise if the user can make it
// We check the date validation of the exercise if the user can make it
if ($exercise_info->start_time != '0000-00-00 00:00:00') {
$allowed_time = api_strtotime($exercise_info->start_time, 'UTC');
if ($now < $allowed_time) {
continue;
}
}
$exercise_info->exercise = Display::url($exercise_info->exercise, api_get_path(WEB_CODE_PATH)."exercice/overview.php?cidReq=$my_course_code&exerciseId={$exercise_info->id}&id_session=$session_id", array('target'=>SESSION_LINK_TARGET));
$exercise_info->exercise = Display::url(
$exercise_info->exercise,
api_get_path(WEB_CODE_PATH)."exercice/overview.php?cidReq=$my_course_code&exerciseId={$exercise_info->id}&id_session=$session_id",
array('target'=>SESSION_LINK_TARGET)
);
$new_exercises[]= array(
//'date' => api_get_local_time($exercise_result['exe_date']),
'status' => Display::return_icon('star.png', get_lang('New'), array('width'=>ICON_SIZE_SMALL)),
'date' => $start_date,
'course' => $course_data['name'],
@ -321,7 +339,7 @@ if (!empty($start) && !empty($end)) {
echo Display::tag('h1', $session_info['name']);
echo $dates.'<br />';
//All Learnpaths grid settings (First tab, first subtab)
// All Learnpaths grid settings (First tab, first subtab)
$columns_courses = array(
get_lang('Title'), get_lang('NumberOfPublishedExercises'), get_lang('NumberOfPublishedLps')
@ -348,12 +366,21 @@ $extra_params_courses['pgbuttons'] = false;*/
//$extra_params_courses['width'] = '50%';
//$extra_params_courses['autowidth'] = 'true';
$url = api_get_path(WEB_AJAX_PATH).'course_home.ajax.php?a=session_courses_lp_default&session_id='.$session_id.'&course_id='.$course_id;
$columns = array(get_lang('PublicationDate'),get_lang('Course'), get_lang('LearningPaths'));
$column_model = array(array('name'=>'date', 'index'=>'date', 'width'=>'120', 'align'=>'left', 'sortable'=>'true'),
array('name'=>'course', 'index'=>'course', 'width'=>'300', 'align'=>'left', 'sortable'=>'true', 'wrap_cell' => 'true'),
array('name'=>'lp', 'index'=>'lp', 'width'=>'440', 'align'=>'left', 'sortable'=>'true'));
$url = api_get_path(WEB_AJAX_PATH).'course_home.ajax.php?a=session_courses_lp_default&session_id='.$session_id.'&course_id='.$course_id;
$columns = array(
get_lang('PublicationDate'),
get_lang('Course'),
get_lang('LearningPaths')
);
$column_model = array(
array('name'=>'date', 'index'=>'date', 'width'=>'120', 'align'=>'left', 'sortable'=>'true'),
array('name'=>'course', 'index'=>'course', 'width'=>'300', 'align'=>'left', 'sortable'=>'true', 'wrap_cell' => 'true'),
array('name'=>'lp', 'index'=>'lp', 'width'=>'440', 'align'=>'left', 'sortable'=>'true')
);
$extra_params = array();
/*
$extra_params['sortname'] = 'date';
$extra_params['sortorder'] = 'asc';
@ -386,11 +413,15 @@ $extra_params_course['autowidth'] = 'true'; //use the width of the parent
$extra_params_course['height'] = "100%";
//Per Week grid
$url_week = api_get_path(WEB_AJAX_PATH).'course_home.ajax.php?a=session_courses_lp_by_week&session_id='.$session_id.'&course_id='.$course_id;
$column_week = array(
get_lang('PeriodWeek'), get_lang('PublicationDate'), get_lang('Course'), get_lang('LearningPaths')
$url_week = api_get_path(WEB_AJAX_PATH).'course_home.ajax.php?a=session_courses_lp_by_week&session_id='.$session_id.'&course_id='.$course_id;
$column_week = array(
get_lang('PeriodWeek'),
get_lang('PublicationDate'),
get_lang('Course'),
get_lang('LearningPaths')
);
$column_week_model = array (
$column_week_model = array(
array('name'=>'week', 'index'=>'week', 'width'=>'40', 'align'=>'left', 'sortable'=>'false'),
array('name'=>'date', 'index'=>'date', 'width'=>'120', 'align'=>'left', 'sortable'=>'false'),
array('name'=>'course', 'index'=>'course', 'width'=>'300', 'align'=>'left', 'sortable'=>'true', 'wrap_cell' => 'true'),
@ -401,12 +432,12 @@ $extra_params_week = array();
$extra_params_week['grouping'] = 'true';
//For more details see http://www.trirand.com/jqgridwiki/doku.php?id=wiki:grouping
$extra_params_week['groupingView'] = array(
'groupCollapse' => false,
'groupDataSorted' => false,
'groupField' => array('week'),
'groupOrder' => array('desc'),
'groupColumnShow' => 'false',
'groupText' => array('<b>'.get_lang('PeriodWeek').' {0}</b>')
'groupCollapse' => false,
'groupDataSorted' => false,
'groupField' => array('week'),
'groupOrder' => array('desc'),
'groupColumnShow' => 'false',
'groupText' => array('<b>' . get_lang('PeriodWeek') . ' {0}</b>')
);
$extra_params_week['autowidth'] = 'true'; //use the width of the parent
$extra_params_week['height'] = '100%';
@ -458,6 +489,7 @@ $(function() {
width:550,
modal: true
});
$(".opener").click(function() {
var my_id = $(this).attr('id');
var big_image = '#main_graph_' + my_id;
@ -477,7 +509,7 @@ $(function() {
echo Display::grid_js('list_week', $url_week, $column_week, $column_week_model, $extra_params_week,array(),'');
echo Display::grid_js('exercises', '', $column_exercise, $column_exercise_model, $extra_params_exercise, $my_real_array);
?>
//Generate tabs with jquery-ui
// Generate tabs with jquery-ui
$('#tabs').tabs();
$( "#sub_tab" ).tabs();
});
@ -493,14 +525,40 @@ if (empty($my_reporting)) {
}
// Main headers
$headers = array(get_lang('Courses'), get_lang('LearningPaths'), get_lang('MyQCM'), get_lang('MyStatistics'));
// Subheaders
$sub_header = array(get_lang('AllLearningPaths'), get_lang('PerWeek'), get_lang('ByCourse'));
$headers = array(
get_lang('Courses'),
get_lang('LearningPaths'),
get_lang('MyQCM'),
get_lang('MyStatistics')
);
// Sub headers
$sub_header = array(
get_lang('AllLearningPaths'),
get_lang('PerWeek'),
get_lang('ByCourse')
);
// Sub headers data
$lp_tabs = Display::tabs($sub_header, array(Display::grid_html('list_default'), Display::grid_html('list_week'), Display::grid_html('list_course')), 'sub_tab');
$courses_tab = Display::grid_html('courses');
$lp_tabs = Display::tabs(
$sub_header,
array(
Display::grid_html('list_default'),
Display::grid_html('list_week'),
Display::grid_html('list_course')
),
'sub_tab'
);
$courses_tab = Display::grid_html('courses');
// Main headers data
echo Display::tabs($headers, array($courses_tab, $lp_tabs, Display::grid_html('exercises'), $my_reporting));
echo Display::tabs(
$headers,
array(
$courses_tab,
$lp_tabs,
Display::grid_html('exercises'),
$my_reporting
)
);
Display::display_footer();

Loading…
Cancel
Save