You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
264 lines
10 KiB
264 lines
10 KiB
<?php
|
|
/* For licensing terms, see /license.txt */
|
|
// TODO: Is this file deprecated?
|
|
|
|
/**
|
|
* @author Thomas Depraetere
|
|
* @author Hugues Peeters
|
|
* @author Christophe Gesche
|
|
* @author Sebastien Piraux
|
|
*
|
|
* @package chamilo.tracking
|
|
*/
|
|
/**
|
|
* Code
|
|
*/
|
|
|
|
/* INIT SECTION */
|
|
|
|
$tool = $_REQUEST['tool'];
|
|
$period = $_REQUEST['period'];
|
|
$reqDate = $_REQUEST['reqDate'];
|
|
include '../inc/global.inc.php';
|
|
|
|
$nameTools = get_lang('ToolName');
|
|
|
|
$interbreadcrumb[]= array ("url"=>"courseLog.php", "name"=> "Statistics");
|
|
|
|
$htmlHeadXtra[] = "<style type='text/css'>
|
|
/*<![CDATA[*/
|
|
.mainLine {font-weight : bold;color : #FFFFFF;background-color : $colorDark;padding-left : 15px;padding-right : 15px;}
|
|
.secLine {color : #000000;background-color : $666666;padding-left : 15px;padding-right : 15px;}
|
|
.content {padding-left : 25px;}
|
|
.specialLink{color : #0000FF;}
|
|
.minilink{}
|
|
.minitext{}
|
|
/*]]>*/
|
|
</style>
|
|
<style media='print' type='text/css'>
|
|
/*<![CDATA[*/
|
|
td {border-bottom: thin dashed gray;}
|
|
/*]]>*/
|
|
</style>";
|
|
Display::display_header($nameTools,"Tracking");
|
|
?>
|
|
|
|
<h3>
|
|
<?php echo $nameTools; ?>
|
|
</h3>
|
|
|
|
<?php
|
|
|
|
// 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();
|
|
|
|
$tool=$_REQUEST['tool'];
|
|
$period=$_REQUEST['period'];
|
|
$reqdate=$_REQUEST['reqdate'];
|
|
?>
|
|
<table width="100%" cellpadding="2" cellspacing="0" border="0">
|
|
<?php
|
|
$TABLETRACK_ACCESS = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ACCESS);
|
|
$courseId = api_get_course_int_id();
|
|
//stats for the current course
|
|
if(isset($_cid)) {
|
|
// to see stats of one course user must be courseAdmin of this course
|
|
$is_allowedToTrack = $is_courseAdmin;
|
|
$courseCodeEqualcidIfNeeded = "AND c_id = '$courseId'";
|
|
} else {
|
|
// stats for all courses
|
|
// to see stats of all courses user must be platformAdmin
|
|
$is_allowedToTrack = $is_platformAdmin;
|
|
$courseCodeEqualcidIfNeeded = "";
|
|
}
|
|
if( $is_allowedToTrack) {
|
|
// list of all tools
|
|
if (!isset($tool)) {
|
|
$sql = "SELECT access_tool, count( access_tool )
|
|
FROM $TABLETRACK_ACCESS
|
|
WHERE access_tool IS NOT NULL
|
|
$courseCodeEqualcidIfNeeded
|
|
GROUP BY access_tool";
|
|
echo "<tr><td>";
|
|
echo "<tr>
|
|
<td>
|
|
";
|
|
if(isset($_cid)) echo "<b>$_cid : </b>";
|
|
echo " <b>".get_lang('ToolList')."</b>
|
|
</td>
|
|
</tr>
|
|
";
|
|
|
|
$results = StatsUtils::getManyResults2Col($sql);
|
|
echo "<table cellpadding='0' cellspacing='0' border='0' align=center>";
|
|
echo "<tr bgcolor='#E6E6E6'>
|
|
<td width='70%'>
|
|
$langToolTitleToolnameColumn
|
|
</td>
|
|
<td width='30%'>
|
|
$langToolTitleCountColumn
|
|
</td>
|
|
</tr>";
|
|
if (is_array($results))
|
|
{
|
|
for($j = 0 ; $j < count($results) ; $j++)
|
|
{
|
|
echo "<tr>";
|
|
echo "<td><a href='toolaccess_details.php?tool=".urlencode($results[$j][0])."'>".get_lang($results[$j][0])."</a></td>";
|
|
echo "<td align='right'>".$results[$j][1]."</td>";
|
|
echo"</tr>";
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
echo "<tr>";
|
|
echo "<td colspan='2'><center>".get_lang('NoResult')."</center></td>";
|
|
echo"</tr>";
|
|
}
|
|
echo "</table></td></tr>";
|
|
}
|
|
else
|
|
{
|
|
// this can prevent bug if there is special chars in $tool
|
|
$encodedTool = urlencode($tool);
|
|
$tool = urldecode($tool);
|
|
|
|
if( !isset($reqdate) )
|
|
$reqdate = time();
|
|
echo "<tr>
|
|
<td>
|
|
";
|
|
if(isset($_cid)) echo "<b>$_cid : </b>";
|
|
echo " <b>".get_lang($tool)."</b>
|
|
</td>
|
|
</tr>
|
|
";
|
|
|
|
/* ------ display ------ */
|
|
// displayed period
|
|
echo "<tr><td>";
|
|
switch($period)
|
|
{
|
|
case "month" :
|
|
echo $MonthsLong[date("n", $reqdate)-1].date(" Y", $reqdate);
|
|
break;
|
|
case "week" :
|
|
$weeklowreqdate = ($reqdate-(86400*date("w" , $reqdate)));
|
|
$weekhighreqdate = ($reqdate+(86400*(6-date("w" , $reqdate)) ));
|
|
echo "<b>".$langFrom."</b> ".date("d " , $weeklowreqdate).$MonthsLong[date("n", $weeklowreqdate)-1].date(" Y" , $weeklowreqdate);
|
|
echo " <b>".$langTo."</b> ".date("d " , $weekhighreqdate ).$MonthsLong[date("n", $weekhighreqdate)-1].date(" Y" , $weekhighreqdate);
|
|
break;
|
|
// default == day
|
|
default :
|
|
$period = "day";
|
|
case "day" :
|
|
echo $DaysLong[date("w" , $reqdate)].date(" d " , $reqdate).$MonthsLong[date("n", $reqdate)-1].date(" Y" , $reqdate);
|
|
break;
|
|
}
|
|
echo "</tr></td>";
|
|
// periode choice
|
|
echo "<tr>
|
|
<td>
|
|
<small>
|
|
[<a href='".api_get_self()."?tool=$encodedTool&period=day&reqdate=$reqdate' class='specialLink'>$langPeriodDay</a>]
|
|
[<a href='".api_get_self()."?tool=$encodedTool&period=week&reqdate=$reqdate' class='specialLink'>$langPeriodWeek</a>]
|
|
[<a href='".api_get_self()."?tool=$encodedTool&period=month&reqdate=$reqdate' class='specialLink'>$langPeriodMonth</a>]
|
|
||
|
|
|
|
";
|
|
switch($period)
|
|
{
|
|
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()."?tool=$encodedTool&period=month&reqdate=$previousReqDate' class='specialLink'>$langPreviousMonth</a>]
|
|
[<a href='".api_get_self()."?tool=$encodedTool&period=month&reqdate=$nextReqDate' class='specialLink'>$langNextMonth</a>]
|
|
";
|
|
break;
|
|
case "week" :
|
|
// previous and next date must be evaluated
|
|
$previousReqDate = $reqdate - 7*86400;
|
|
$nextReqDate = $reqdate + 7*86400;
|
|
echo "
|
|
[<a href='".api_get_self()."?tool=$encodedTool&period=week&reqdate=$previousReqDate' class='specialLink'>$langPreviousWeek</a>]
|
|
[<a href='".api_get_self()."?tool=$encodedTool&period=week&reqdate=$nextReqDate' class='specialLink'>$langNextWeek</a>]
|
|
";
|
|
break;
|
|
case "day" :
|
|
// previous and next date must be evaluated
|
|
$previousReqDate = $reqdate - 86400;
|
|
$nextReqDate = $reqdate + 86400;
|
|
echo "
|
|
[<a href='".api_get_self()."?tool=$encodedTool&period=day&reqdate=$previousReqDate' class='specialLink'>$langPreviousDay</a>]
|
|
[<a href='".api_get_self()."?tool=$encodedTool&period=day&reqdate=$nextReqDate' class='specialLink'>$langNextDay</a>]
|
|
";
|
|
break;
|
|
}
|
|
|
|
echo" ||
|
|
[<a href='".api_get_self()."' class='specialLink'>$langViewToolList</a>]
|
|
</small>
|
|
</td>
|
|
</tr>
|
|
";
|
|
// display information about this period
|
|
switch($period)
|
|
{
|
|
// all days
|
|
case "month" :
|
|
$sql = "SELECT UNIX_TIMESTAMP(access_date)
|
|
FROM $TABLETRACK_ACCESS
|
|
WHERE access_tool = '$tool'
|
|
$courseCodeEqualcidIfNeeded
|
|
AND MONTH(access_date) = MONTH(FROM_UNIXTIME('$reqdate'))
|
|
AND YEAR(access_date) = YEAR(FROM_UNIXTIME('$reqdate'))
|
|
ORDER BY access_date ASC";
|
|
|
|
$days_array = StatsUtils::daysTab($sql);
|
|
StatsUtils::makeHitsTable($days_array,$langDay);
|
|
break;
|
|
// all days
|
|
case "week" :
|
|
$sql = "SELECT UNIX_TIMESTAMP(access_date)
|
|
FROM $TABLETRACK_ACCESS
|
|
WHERE access_tool = '$tool'
|
|
$courseCodeEqualcidIfNeeded
|
|
AND WEEK(access_date) = WEEK(FROM_UNIXTIME('$reqdate'))
|
|
AND YEAR(access_date) = YEAR(FROM_UNIXTIME('$reqdate'))
|
|
ORDER BY access_date ASC";
|
|
|
|
$days_array = StatsUtils::daysTab($sql);
|
|
StatsUtils::makeHitsTable($days_array,$langDay);
|
|
break;
|
|
// all hours
|
|
case "day" :
|
|
$sql = "SELECT UNIX_TIMESTAMP(access_date)
|
|
FROM $TABLETRACK_ACCESS
|
|
WHERE access_tool = '$tool'
|
|
$courseCodeEqualcidIfNeeded
|
|
AND DAYOFYEAR(access_date) = DAYOFYEAR(FROM_UNIXTIME('$reqdate'))
|
|
AND YEAR(access_date) = YEAR(FROM_UNIXTIME('$reqdate'))
|
|
ORDER BY access_date ASC";
|
|
|
|
$hours_array = StatsUtils::hoursTab($sql,$reqdate);
|
|
StatsUtils::makeHitsTable($hours_array,$langHour);
|
|
break;
|
|
}
|
|
}
|
|
} else { // not allowed to track
|
|
echo get_lang('NotAllowed');
|
|
}
|
|
echo '</table>';
|
|
// footer
|
|
Display::display_footer();
|
|
|