<?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>]
                    &nbsp;&nbsp;&nbsp;||&nbsp;&nbsp;&nbsp;

                    ";
            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"   &nbsp;&nbsp;&nbsp;||&nbsp;&nbsp;&nbsp;
                    [<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();
