Only show forum group information, the rest depends in the course.

See BT#5758
1.10.x
Julio Montoya 10 years ago
parent 27105de8d4
commit 412f946093
  1. 12
      main/inc/lib/tracking.lib.php
  2. 454
      main/tracking/course_log_tools.php

@ -3502,7 +3502,6 @@ class Tracking
//protect data //protect data
$last_days = intval($last_days); $last_days = intval($last_days);
$course_code = Database::escape_string($course_code);
$session_id = intval($session_id); $session_id = intval($session_id);
$tbl_stats_access = Database :: get_main_table(TABLE_STATISTIC_TRACK_E_ACCESS); $tbl_stats_access = Database :: get_main_table(TABLE_STATISTIC_TRACK_E_ACCESS);
$now = api_get_utc_datetime(); $now = api_get_utc_datetime();
@ -3863,7 +3862,7 @@ class Tracking
*/ */
public static function get_tools_most_used_by_course($courseId, $session_id = null) public static function get_tools_most_used_by_course($courseId, $session_id = null)
{ {
$course_code = intval($courseId); $courseId = intval($courseId);
$data = array(); $data = array();
$TABLETRACK_ACCESS = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LASTACCESS); $TABLETRACK_ACCESS = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LASTACCESS);
$condition_session = ''; $condition_session = '';
@ -3871,7 +3870,10 @@ class Tracking
$session_id = intval($session_id); $session_id = intval($session_id);
$condition_session = ' AND access_session_id = '. $session_id; $condition_session = ' AND access_session_id = '. $session_id;
} }
$sql = "SELECT access_tool, COUNT(DISTINCT access_user_id),count( access_tool ) as count_access_tool $sql = "SELECT
access_tool,
COUNT(DISTINCT access_user_id),
count(access_tool) as count_access_tool
FROM $TABLETRACK_ACCESS FROM $TABLETRACK_ACCESS
WHERE WHERE
access_tool IS NOT NULL AND access_tool IS NOT NULL AND
@ -4070,8 +4072,8 @@ class Tracking
$data = array(); $data = array();
$TABLETRACK_LINKS = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LINKS); $TABLETRACK_LINKS = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LINKS);
$TABLECOURSE_LINKS = Database::get_course_table(TABLE_LINK); $TABLECOURSE_LINKS = Database::get_course_table(TABLE_LINK);
$condition_session = ''; $condition_session = '';
if (isset($session_id)) { if (isset($session_id)) {

@ -30,6 +30,22 @@ if (!$is_allowedToTrack) {
exit; exit;
} }
$showChatReporting = true;
$showTrackingReporting = true;
$documentReporting = true;
$linkReporting = true;
$exerciseReporting = true;
$lpReporting = true;
if (!empty($groupId)) {
$showChatReporting = false;
$showTrackingReporting = false;
$documentReporting = false;
$linkReporting = false;
$exerciseReporting = false;
$lpReporting = false;
}
// Including additional libraries. // Including additional libraries.
require_once api_get_path(SYS_CODE_PATH).'resourcelinker/resourcelinker.inc.php'; require_once api_get_path(SYS_CODE_PATH).'resourcelinker/resourcelinker.inc.php';
@ -129,110 +145,133 @@ echo '</div>';
$course_code = api_get_course_id(); $course_code = api_get_course_id();
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
$list = new LearnpathList(null, $course_code, $session_id); if ($lpReporting) {
$flat_list = $list->get_flat_list(); $list = new LearnpathList(null, $course_code, $session_id);
$flat_list = $list->get_flat_list();
if (count($flat_list) > 0) { if (count($flat_list) > 0) {
// learning path tracking
echo '<div class="report_section">
'.Display::page_subheader(
Display::return_icon('scorms.gif',get_lang('AverageProgressInLearnpath')).get_lang('AverageProgressInLearnpath')
).'
<table class="data_table">';
if ($export_csv) { // learning path tracking
$temp = array(get_lang('AverageProgressInLearnpath', ''), ''); echo '<div class="report_section">
$csv_content[] = array('', ''); '.Display::page_subheader(
$csv_content[] = $temp; Display::return_icon(
} 'scorms.gif',
get_lang('AverageProgressInLearnpath')
).get_lang('AverageProgressInLearnpath')
).'
<table class="data_table">';
foreach ($flat_list as $lp_id => $lp) { if ($export_csv) {
$lp_avg_progress = 0; $temp = array(get_lang('AverageProgressInLearnpath', ''), '');
foreach ($a_students as $student_id => $student) { $csv_content[] = array('', '');
// get the progress in learning pathes $csv_content[] = $temp;
$lp_avg_progress += Tracking::get_avg_student_progress(
$student_id,
$course_code,
array($lp_id),
$session_id
);
}
if ($studentCount > 0) {
$lp_avg_progress = $lp_avg_progress / $studentCount;
} else {
$lp_avg_progress = null;
} }
// Separated presentation logic.
if (is_null($lp_avg_progress)) { foreach ($flat_list as $lp_id => $lp) {
$lp_avg_progress = '0%'; $lp_avg_progress = 0;
} else { foreach ($a_students as $student_id => $student) {
$lp_avg_progress = round($lp_avg_progress, 1).'%'; // get the progress in learning pathes
$lp_avg_progress += Tracking::get_avg_student_progress(
$student_id,
$course_code,
array($lp_id),
$session_id
);
}
if ($studentCount > 0) {
$lp_avg_progress = $lp_avg_progress / $studentCount;
} else {
$lp_avg_progress = null;
}
// Separated presentation logic.
if (is_null($lp_avg_progress)) {
$lp_avg_progress = '0%';
} else {
$lp_avg_progress = round($lp_avg_progress, 1).'%';
}
echo '<tr><td>'.$lp['lp_name'].'</td><td align="right">'.$lp_avg_progress.'</td></tr>';
if ($export_csv) {
$temp = array($lp['lp_name'], $lp_avg_progress);
$csv_content[] = $temp;
}
} }
echo '<tr><td>'.$lp['lp_name'].'</td><td align="right">'.$lp_avg_progress.'</td></tr>'; echo '</table></div>';
} else {
if ($export_csv) { if ($export_csv) {
$temp = array($lp['lp_name'], $lp_avg_progress); $temp = array(get_lang('NoLearningPath', ''), '');
$csv_content[] = $temp; $csv_content[] = $temp;
} }
} }
echo '</table></div>';
} else {
if ($export_csv) {
$temp = array(get_lang('NoLearningPath', ''), '');
$csv_content[] = $temp;
}
} }
// Exercices tracking. if ($exerciseReporting) {
echo '<div class="report_section">
'.Display::page_subheader(
Display::return_icon('quiz.gif',get_lang('AverageResultsToTheExercices')).get_lang('AverageResultsToTheExercices')
).'
<table class="data_table">';
$course_id = api_get_course_int_id(); // Exercices tracking.
echo '<div class="report_section">
'.Display::page_subheader(
Display::return_icon(
'quiz.gif',
get_lang('AverageResultsToTheExercices')
).get_lang('AverageResultsToTheExercices')
).'
<table class="data_table">';
$sql = "SELECT id, title FROM $TABLEQUIZ $course_id = api_get_course_int_id();
WHERE c_id = $course_id AND active <> -1 AND session_id = $session_id";
$rs = Database::query($sql);
if ($export_csv) { $sql = "SELECT id, title FROM $TABLEQUIZ
$temp = array(get_lang('AverageProgressInLearnpath'), ''); WHERE c_id = $course_id AND active <> -1 AND session_id = $session_id";
$csv_content[] = array('', ''); $rs = Database::query($sql);
$csv_content[] = $temp;
}
$course_path_params = '&cidReq='.$course_code.'&id_session='.$session_id; if ($export_csv) {
$temp = array(get_lang('AverageProgressInLearnpath'), '');
$csv_content[] = array('', '');
$csv_content[] = $temp;
}
if (Database::num_rows($rs) > 0) { $course_path_params = '&cidReq='.$course_code.'&id_session='.$session_id;
while ($quiz = Database::fetch_array($rs)) {
$quiz_avg_score = 0; if (Database::num_rows($rs) > 0) {
if ($studentCount > 0) { while ($quiz = Database::fetch_array($rs)) {
foreach ($student_ids as $student_id) { $quiz_avg_score = 0;
$avg_student_score = Tracking::get_avg_student_exercise_score($student_id, $course_code, $quiz['id'], $session_id); if ($studentCount > 0) {
$quiz_avg_score += $avg_student_score; foreach ($student_ids as $student_id) {
$avg_student_score = Tracking::get_avg_student_exercise_score(
$student_id,
$course_code,
$quiz['id'],
$session_id
);
$quiz_avg_score += $avg_student_score;
}
}
$studentCount = ($studentCount == 0 || is_null(
$studentCount
) || $studentCount == '') ? 1 : $studentCount;
$quiz_avg_score = round(($quiz_avg_score / $studentCount), 2).'%';
$url = api_get_path(
WEB_CODE_PATH
).'exercice/overview.php?exerciseId='.$quiz['id'].$course_path_params;
echo '<tr><td>'.Display::url(
$quiz['title'],
$url
).'</td><td align="right">'.$quiz_avg_score.'</td></tr>';
if ($export_csv) {
$temp = array($quiz['title'], $quiz_avg_score);
$csv_content[] = $temp;
} }
} }
$studentCount = ($studentCount == 0 || is_null($studentCount) || $studentCount == '') ? 1 : $studentCount; } else {
$quiz_avg_score = round(($quiz_avg_score / $studentCount), 2).'%'; echo '<tr><td>'.get_lang('NoExercises').'</td></tr>';
$url = api_get_path(WEB_CODE_PATH).'exercice/overview.php?exerciseId='.$quiz['id'].$course_path_params;
echo '<tr><td>'.Display::url($quiz['title'], $url).'</td><td align="right">'.$quiz_avg_score.'</td></tr>';
if ($export_csv) { if ($export_csv) {
$temp = array($quiz['title'], $quiz_avg_score); $temp = array(get_lang('NoExercises', ''), '');
$csv_content[] = $temp; $csv_content[] = $temp;
} }
} }
} else {
echo '<tr><td>'.get_lang('NoExercises').'</td></tr>';
if ($export_csv) {
$temp = array(get_lang('NoExercises', ''), '');
$csv_content[] = $temp;
}
}
echo '</table></div>'; echo '</table></div>';
echo '<div class="clear"></div>'; echo '<div class="clear"></div>';
}
$filterByUsers = array(); $filterByUsers = array();
@ -259,10 +298,10 @@ $count_number_of_posts_by_course = Tracking:: count_number_of_posts_by_course(
); );
if ($export_csv) { if ($export_csv) {
$csv_content[] = array(get_lang('Forum'), ''); $csv_content[] = array(get_lang('Forum'));
$csv_content[] = array(get_lang('ForumForumsNumber', ''), $count_number_of_forums_by_course); $csv_content[] = array(get_lang('ForumForumsNumber'), $count_number_of_forums_by_course);
$csv_content[] = array(get_lang('ForumThreadsNumber', ''), $count_number_of_threads_by_course); $csv_content[] = array(get_lang('ForumThreadsNumber'), $count_number_of_threads_by_course);
$csv_content[] = array(get_lang('ForumPostsNumber', ''), $count_number_of_posts_by_course); $csv_content[] = array(get_lang('ForumPostsNumber'), $count_number_of_posts_by_course);
} }
// Forums tracking. // Forums tracking.
@ -282,124 +321,197 @@ echo '</table></div>';
echo '<div class="clear"></div>'; echo '<div class="clear"></div>';
// Chat tracking. // Chat tracking.
if ($showChatReporting) {
echo '<div class="report_section">
'.Display::page_subheader(
Display::return_icon('chat.gif', get_lang('Chat')).get_lang('Chat')
).'
<table class="data_table">';
$chat_connections_during_last_x_days_by_course = Tracking::chat_connections_during_last_x_days_by_course(
$course_code,
7,
$session_id
);
if ($export_csv) {
$csv_content[] = array(get_lang('Chat', ''), '');
$csv_content[] = array(
sprintf(
get_lang('ChatConnectionsDuringLastXDays', ''),
'7'
),
$chat_connections_during_last_x_days_by_course
);
}
echo '<tr><td>'.sprintf(
get_lang('ChatConnectionsDuringLastXDays'),
'7'
).'</td><td align="right">'.$chat_connections_during_last_x_days_by_course.'</td></tr>';
echo '<div class="report_section"> echo '</table></div>';
'.Display::page_subheader(Display::return_icon('chat.gif',get_lang('Chat')).get_lang('Chat')).' echo '<div class="clear"></div>';
<table class="data_table">';
$chat_connections_during_last_x_days_by_course = Tracking::chat_connections_during_last_x_days_by_course($course_code, 7, $session_id);
if ($export_csv) {
$csv_content[] = array(get_lang('Chat', ''), '');
$csv_content[] = array(sprintf(get_lang('ChatConnectionsDuringLastXDays', ''), '7'), $chat_connections_during_last_x_days_by_course);
} }
echo '<tr><td>'.sprintf(get_lang('ChatConnectionsDuringLastXDays'), '7').'</td><td align="right">'.$chat_connections_during_last_x_days_by_course.'</td></tr>';
echo '</table></div>';
echo '<div class="clear"></div>';
// Tools tracking. // Tools tracking.
echo '<div class="report_section"> if ($showTrackingReporting) {
'.Display::page_subheader(Display::return_icon('acces_tool.gif', get_lang('ToolsMostUsed')).get_lang('ToolsMostUsed')).' echo '<div class="report_section">
'.Display::page_subheader(
Display::return_icon(
'acces_tool.gif',
get_lang('ToolsMostUsed')
).get_lang('ToolsMostUsed')
).'
<table class="data_table">'; <table class="data_table">';
$tools_most_used = Tracking::get_tools_most_used_by_course($course_id, $session_id); $tools_most_used = Tracking::get_tools_most_used_by_course(
$course_id,
$session_id
);
if ($export_csv) { if ($export_csv) {
$temp = array(get_lang('ToolsMostUsed'), ''); $temp = array(get_lang('ToolsMostUsed'), '');
$csv_content[] = $temp; $csv_content[] = $temp;
} }
if (!empty($tools_most_used)) { if (!empty($tools_most_used)) {
foreach ($tools_most_used as $row) { foreach ($tools_most_used as $row) {
echo ' <tr> echo ' <tr>
<td>'.get_lang(ucfirst($row['access_tool'])).'</td> <td>'.get_lang(ucfirst($row['access_tool'])).'</td>
<td align="right">'.$row['count_access_tool'].' '.get_lang('Clicks').'</td> <td align="right">'.$row['count_access_tool'].' '.get_lang(
'Clicks'
).'</td>
</tr>'; </tr>';
if ($export_csv) { if ($export_csv) {
$temp = array(get_lang(ucfirst($row['access_tool']), ''), $row['count_access_tool'].' '.get_lang('Clicks', '')); $temp = array(
$csv_content[] = $temp; get_lang(ucfirst($row['access_tool']), ''),
$row['count_access_tool'].' '.get_lang('Clicks', '')
);
$csv_content[] = $temp;
}
} }
} }
}
echo '</table></div>';
echo '<div class="clear"></div>';
// Documents tracking. echo '</table></div>';
if (!isset($_GET['num']) || empty($_GET['num'])) { echo '<div class="clear"></div>';
$num = 3;
$link = '&nbsp;-&nbsp;<a href="'.api_get_self().'?'.api_get_cidreq().'&num=1#documents_tracking">'.get_lang('SeeDetail').'</a>';
} else {
$num = 1000;
$link = '&nbsp;-&nbsp;<a href="'.api_get_self().'?'.api_get_cidreq().'&num=0#documents_tracking">'.get_lang('ViewMinus').'</a>';
} }
echo '<a name="documents_tracking" id="a"></a><div class="report_section"> if ($documentReporting) {
'.Display::page_subheader(Display::return_icon('documents.gif',get_lang('DocumentsMostDownloaded')).'&nbsp;'.get_lang('DocumentsMostDownloaded').$link).' // Documents tracking.
<table class="data_table">'; if (!isset($_GET['num']) || empty($_GET['num'])) {
$num = 3;
$link = '&nbsp;-&nbsp;<a href="'.api_get_self().'?'.api_get_cidreq(
).'&num=1#documents_tracking">'.get_lang('SeeDetail').'</a>';
} else {
$num = 1000;
$link = '&nbsp;-&nbsp;<a href="'.api_get_self().'?'.api_get_cidreq(
).'&num=0#documents_tracking">'.get_lang('ViewMinus').'</a>';
}
$documents_most_downloaded = Tracking::get_documents_most_downloaded_by_course($course_code, $session_id, $num); echo '<a name="documents_tracking" id="a"></a><div class="report_section">
'.Display::page_subheader(
Display::return_icon(
'documents.gif',
get_lang('DocumentsMostDownloaded')
).'&nbsp;'.get_lang('DocumentsMostDownloaded').$link
).'
<table class="data_table">';
if ($export_csv) { $documents_most_downloaded = Tracking::get_documents_most_downloaded_by_course(
$temp = array(get_lang('DocumentsMostDownloaded', ''), ''); $course_code,
$csv_content[] = array('', ''); $session_id,
$csv_content[] = $temp; $num
} );
if ($export_csv) {
$temp = array(get_lang('DocumentsMostDownloaded', ''), '');
$csv_content[] = array('', '');
$csv_content[] = $temp;
}
if (!empty($documents_most_downloaded)) { if (!empty($documents_most_downloaded)) {
foreach ($documents_most_downloaded as $row) { foreach ($documents_most_downloaded as $row) {
echo '<tr> echo '<tr>
<td>'.Display::url($row['down_doc_path'], api_get_path(WEB_CODE_PATH).'document/show_content.php?file='.$row['down_doc_path'].$course_path_params).'</td> <td>'.Display::url(
<td align="right">'.$row['count_down'].' '.get_lang('Clicks').'</td> $row['down_doc_path'],
</tr>'; api_get_path(
WEB_CODE_PATH
).'document/show_content.php?file='.$row['down_doc_path'].$course_path_params
).'</td>
<td align="right">'.$row['count_down'].' '.get_lang(
'Clicks'
).'</td>
</tr>';
if ($export_csv) {
$temp = array(
$row['down_doc_path'],
$row['count_down'].' '.get_lang('Clicks', '')
);
$csv_content[] = $temp;
}
}
} else {
echo '<tr><td>'.get_lang('NoDocumentDownloaded').'</td></tr>';
if ($export_csv) { if ($export_csv) {
$temp = array($row['down_doc_path'], $row['count_down'].' '.get_lang('Clicks', '')); $temp = array(get_lang('NoDocumentDownloaded', ''), '');
$csv_content[] = $temp; $csv_content[] = $temp;
} }
} }
} else { echo '</table></div>';
echo '<tr><td>'.get_lang('NoDocumentDownloaded').'</td></tr>';
if ($export_csv) { echo '<div class="clear"></div>';
$temp = array(get_lang('NoDocumentDownloaded', ''), '');
$csv_content[] = $temp;
}
} }
echo '</table></div>';
echo '<div class="clear"></div>'; if ($linkReporting) {
// links tracking // links tracking
echo '<div class="report_section"> echo '<div class="report_section">
'.Display::page_subheader(Display::return_icon('link.gif',get_lang('LinksMostClicked')).'&nbsp;'.get_lang('LinksMostClicked')).' '.Display::page_subheader(
<table class="data_table">'; Display::return_icon(
'link.gif',
get_lang('LinksMostClicked')
).'&nbsp;'.get_lang('LinksMostClicked')
).'
<table class="data_table">';
$links_most_visited = Tracking::get_links_most_visited_by_course($course_code, $session_id); $links_most_visited = Tracking::get_links_most_visited_by_course(
$course_code,
$session_id
);
if ($export_csv) { if ($export_csv) {
$temp = array(get_lang('LinksMostClicked'), ''); $temp = array(get_lang('LinksMostClicked'), '');
$csv_content[] = array('', ''); $csv_content[] = array('', '');
$csv_content[] = $temp; $csv_content[] = $temp;
} }
if (!empty($links_most_visited)) { if (!empty($links_most_visited)) {
foreach ($links_most_visited as $row) { foreach ($links_most_visited as $row) {
echo ' <tr> echo ' <tr>
<td>'.Display::url($row['title'].' ('.$row['url'].')', $row['url']).'</td> <td>'.Display::url(
<td align="right">'.$row['count_visits'].' '.get_lang('Clicks').'</td> $row['title'].' ('.$row['url'].')',
</tr>'; $row['url']
if ($export_csv){ ).'</td>
$temp = array($row['title'], $row['count_visits'].' '.get_lang('Clicks', '')); <td align="right">'.$row['count_visits'].' '.get_lang(
'Clicks'
).'</td>
</tr>';
if ($export_csv) {
$temp = array(
$row['title'],
$row['count_visits'].' '.get_lang('Clicks', '')
);
$csv_content[] = $temp;
}
}
} else {
echo '<tr><td>'.get_lang('NoLinkVisited').'</td></tr>';
if ($export_csv) {
$temp = array(get_lang('NoLinkVisited'), '');
$csv_content[] = $temp; $csv_content[] = $temp;
} }
} }
} else { echo '</table></div>';
echo '<tr><td>'.get_lang('NoLinkVisited').'</td></tr>'; echo '<div class="clear"></div>';
if ($export_csv) {
$temp = array(get_lang('NoLinkVisited'), '');
$csv_content[] = $temp;
}
} }
echo '</table></div>';
echo '<div class="clear"></div>';
// send the csv file if asked // send the csv file if asked
if ($export_csv) { if ($export_csv) {

Loading…
Cancel
Save