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();
 | 
						|
 |