"../user/user.php", "name" => get_lang('Users'));
$nameTools = get_lang('ToolName');
$htmlHeadXtra[] = "
";
$TABLECOURSUSER = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$TABLECOURSE_GROUPSUSER = Database::get_course_table(TABLE_GROUP_USER);
$TABLEUSER = Database::get_main_table(TABLE_MAIN_USER);
$TABLETRACK_ACCESS = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ACCESS);
Display::display_header($nameTools, "Tracking");
$courseId = api_get_course_int_id();
// the variables for the days and the months
// Defining the shorts for the days
$DaysShort = api_get_week_days_short();
// Defining the days of the week to allow translation of the days
$DaysLong = api_get_week_days_long();
// Defining the months of the year to allow translation of the months
$MonthsLong = api_get_months_long();
// Defining the months of the year to allow translation of the months
$MonthsShort = api_get_months_short();
$is_allowedToTrack = $is_groupTutor; // allowed to track only user of one group
$is_allowedToTrackEverybodyInCourse = $is_courseAdmin; // allowed to track all student in course
?>
" . COURSE_RELATION_TYPE_RRHH . " AND
cu.c_id = '$courseId' AND
u.user_id = '$uInfo'";
} else {
$sql = "SELECT u.firstname,u.lastname, u.email
FROM $TABLECOURSE_GROUPSUSER gu , $TABLEUSER u
WHERE gu.user_id = u.user_id
AND gu.group_id = '$_gid'
AND u.user_id = '$uInfo'";
}
$query = Database::query($sql);
$res = @Database::fetch_array($query);
if (is_array($res)) {
$res[2] == "" ? $res2 = get_lang('NoEmail') : $res2 = Display::encrypted_mailto_link($res[2]);
echo "";
echo $informationsAbout . " : ";
echo "\n"
. "- " . get_lang('FirstName') . " : " . $res[0] . "
\n"
. "- " . get_lang('LastName') . " : " . $res[1] . "
\n"
. "- " . get_lang('Email') . " : " . $res2 . "
\n"
. " ";
echo " |
";
/* * ***** MENU ******* */
echo "
[" . get_lang('Back') . "]
";
echo " ||
[" . get_lang('PeriodWeek') . "]
[" . get_lang('PeriodMonth') . "]
||
";
switch ($period) {
case "week" :
// previous and next date must be evaluated
$previousReqDate = $reqdate - 7 * 86400;
$nextReqDate = $reqdate + 7 * 86400;
echo "
[" . get_lang('PreviousWeek') . "]
[" . get_lang('NextWeek') . "]
";
break;
default :
$period = "month";
case "month" :
// previous and next date must be evaluated
// 30 days should be a good approximation
$previousReqDate = mktime(1, 1, 1, date("m", $reqdate) - 1, 1, date("Y", $reqdate));
$nextReqDate = mktime(1, 1, 1, date("m", $reqdate) + 1, 1, date("Y", $reqdate));
echo "
[" . get_lang('PreviousMonth') . "]
[" . get_lang('NextMonth') . "]
";
break;
}
echo "
|
";
/* * ***** END OF MENU ******* */
switch ($period) {
case "month" :
$sql = "SELECT access_date
FROM $TABLETRACK_ACCESS
WHERE access_user_id = $uInfo
AND c_id = $courseId
AND MONTH(access_date) = MONTH( FROM_UNIXTIME('$reqdate') )
AND YEAR(access_date) = YEAR(FROM_UNIXTIME('$reqdate'))
GROUP BY DAYOFMONTH(access_date)
ORDER BY access_date ASC";
$displayedDate = $MonthsLong[date("n", $reqdate) - 1] . date(" Y", $reqdate);
break;
case "week" :
$sql = "SELECT access_date
FROM $TABLETRACK_ACCESS
WHERE access_user_id = $uInfo
AND c_id = $courseId
AND WEEK(access_date) = WEEK( FROM_UNIXTIME('$reqdate') )
AND YEAR(access_date) = YEAR(FROM_UNIXTIME('$reqdate'))
GROUP BY DAYOFMONTH(access_date)
ORDER BY access_date ASC";
$weeklowreqdate = ($reqdate - (86400 * date("w", $reqdate)));
$weekhighreqdate = ($reqdate + (86400 * (6 - date("w", $reqdate)) ));
$displayedDate = get_lang('From') . " " . date("d ", $weeklowreqdate) . $MonthsLong[date("n", $weeklowreqdate) - 1] . date(" Y", $weeklowreqdate)
. " " . get_lang('To') . " " . date("d ", $weekhighreqdate) . $MonthsLong[date("n", $weekhighreqdate) - 1] . date(" Y", $weekhighreqdate);
break;
}
echo "";
$results = StatsUtils::getManyResults1Col($sql);
/* * * display of the displayed period ** */
echo "";
echo "" . $displayedDate . " | ";
if (is_array($results)) {
for ($j = 0; $j < sizeof($results); $j++) {
$beautifulDateTime = api_convert_and_format_date($results[$j], null, date_default_timezone_get());
echo "";
echo "" . $beautifulDateTime . " | ";
echo" ";
// $limit is used to select only results between $results[$j] (current login) and next one
if ($j == ( sizeof($results) - 1 ))
$limit = date("Y-m-d H:i:s", $nextReqDate);
else
$limit = $results[$j + 1];
// select all access to tool between displayed date and next displayed date or now() if
// displayed date is the last login date
$sql = "SELECT access_tool, count(access_tool)
FROM $TABLETRACK_ACCESS
WHERE access_user_id = $uInfo
AND access_tool IS NOT NULL
AND access_date > '" . $results[$j] . "'
AND access_date < '" . $limit . "'
AND c_id = $courseId
GROUP BY access_tool
ORDER BY access_tool ASC";
$results2 = StatsUtils::getManyResults2Col($sql);
if (is_array($results2)) {
echo "\n";
echo "\n";
for ($k = 0; $k < count($results2); $k++) {
echo "\n";
echo "" . get_lang($results2[$k][0]) . " | \n";
echo "" . $results2[$k][1] . " " . get_lang('Visits') . " | \n";
echo " ";
}
echo " \n";
echo " | \n";
}
$previousDate = $value;
}
} else {
echo "";
echo "" . get_lang('NoResult') . " | ";
echo " ";
}
echo " ";
echo " |
";
} else {
echo get_lang('ErrorUserNotInGroup');
}
} else {
// not allowed
api_not_allowed();
}
?>