123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- <?php
- /* For licensing terms, see /license.txt */
- /**
- * @author Thomas Depraetere
- * @author Hugues Peeters
- * @author Christophe Gesche
- * @author Sebastien Piraux
- *
- * @package chamilo.tracking
- */
- /**
- * Code
- */
- // TODO: Is this file deprecated?
- /* INIT SECTION */
- $uInfo = $_REQUEST['uInfo'];
- if (!isset($_REQUEST['reqdate'])) {
- $reqdate = time();
- } else {
- $reqdate = $_REQUEST['reqdate'];
- }
- $period = $_REQUEST['period'];
- if (!isset($_REQUEST['view'])) {
- $view = "0000000";
- } else {
- $view = $_REQUEST['view'];
- }
- //include('../inc/global.inc.php');
- $interbreadcrumb[] = array("url" => "../user/user.php", "name" => get_lang('Users'));
- $nameTools = get_lang('ToolName');
- $htmlHeadXtra[] = "<style type='text/css'>
- /*<![CDATA[*/
- .secLine {background-color : #E6E6E6;}
- .content {padding-left : 15px;padding-right : 15px; }
- .specialLink{color : #0000FF;}
- /*]]>*/
- </style>
- <style media='print' type='text/css'>
- /*<![CDATA[*/
- td {border-bottom: thin dashed gray;}
- /*]]>*/
- </style>";
- $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
- ?>
- <h3>
- <?php echo $nameTools ?>
- </h3>
- <table width="100%" cellpadding="2" cellspacing="3" border="0">
- <?php
- // check if uid is tutor of this group
- $courseId = api_get_course_int_id();
- if (( $is_allowedToTrack || $is_allowedToTrackEverybodyInCourse)) {
- if ($is_allowedToTrackEverybodyInCourse) {
- $sql = "SELECT u.firstname,u.lastname, u.email
- FROM $TABLECOURSUSER cu , $TABLEUSER u
- WHERE
- cu.user_id = u.user_id AND
- cu.relation_type<>" . 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 "<tr><td>";
- echo $informationsAbout . " : <br>";
- echo "<ul>\n"
- . "<li>" . get_lang('FirstName') . " : " . $res[0] . "</li>\n"
- . "<li>" . get_lang('LastName') . " : " . $res[1] . "</li>\n"
- . "<li>" . get_lang('Email') . " : " . $res2 . "</li>\n"
- . "</ul>";
- echo "</td></tr>";
- /* * ***** MENU ******* */
- echo "<tr>
- <td>
- [<a href='userLog.php?uInfo=$uInfo&view=$view'>" . get_lang('Back') . "</a>]
- ";
- echo " ||
- [<a href='" . api_get_self() . "?uInfo=$uInfo&view=$view&period=week&reqdate=$reqdate' class='specialLink'>" . get_lang('PeriodWeek') . "</a>]
- [<a href='" . api_get_self() . "?uInfo=$uInfo&view=$view&period=month&reqdate=$reqdate' class='specialLink'>" . get_lang('PeriodMonth') . "</a>]
- ||
- ";
- switch ($period) {
- case "week" :
- // previous and next date must be evaluated
- $previousReqDate = $reqdate - 7 * 86400;
- $nextReqDate = $reqdate + 7 * 86400;
- echo "
- [<a href='" . api_get_self() . "?uInfo=$uInfo&view=$view&period=week&reqdate=$previousReqDate' class='specialLink'>" . get_lang('PreviousWeek') . "</a>]
- [<a href='" . api_get_self() . "?uInfo=$uInfo&view=$view&period=week&reqdate=$nextReqDate' class='specialLink'>" . get_lang('NextWeek') . "</a>]
- ";
- 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 "
- [<a href='" . api_get_self() . "?uInfo=$uInfo&view=$view&period=month&reqdate=$previousReqDate' class='specialLink'>" . get_lang('PreviousMonth') . "</a>]
- [<a href='" . api_get_self() . "?uInfo=$uInfo&view=$view&period=month&reqdate=$nextReqDate' class='specialLink'>" . get_lang('NextMonth') . "</a>]
- ";
- break;
- }
- echo "
- </td>
- </tr>
- ";
- /* * ***** 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 "<tr><td>";
- $results = StatsUtils::getManyResults1Col($sql);
- /* * * display of the displayed period ** */
- echo "<table width='100%' cellpadding='2' cellspacing='1' border='0' align=center>";
- echo "<td bgcolor='#E6E6E6'>" . $displayedDate . "</td>";
- 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 "<tr>";
- echo "<td style='padding-left : 40px;' valign='top'>" . $beautifulDateTime . "</td>";
- echo"</tr>";
- // $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 "<tr><td colspan='2'>\n";
- echo "<table width='50%' cellpadding='0' cellspacing='0' border='0'>\n";
- for ($k = 0; $k < count($results2); $k++) {
- echo "<tr>\n";
- echo "<td width='70%' style='padding-left : 60px;'>" . get_lang($results2[$k][0]) . "</td>\n";
- echo "<td width='30%' align='right' style='padding-right : 40px'>" . $results2[$k][1] . " " . get_lang('Visits') . "</td>\n";
- echo "</tr>";
- }
- echo "</table>\n";
- echo "</td></tr>\n";
- }
- $previousDate = $value;
- }
- } else {
- echo "<tr>";
- echo "<td colspan='2' bgcolor='#eeeeee'>" . get_lang('NoResult') . "</td>";
- echo "</tr>";
- }
- echo "</table>";
- echo "</td></tr>";
- } else {
- echo get_lang('ErrorUserNotInGroup');
- }
- } else {
- // not allowed
- api_not_allowed();
- }
- ?>
- </table>
- <?php
- Display::display_footer();
|