示例#1
0
 while ($timestart < $timenow) {
     $timefinish = $timestart + 86400;
     if ($reducedays) {
         if ($i % $reducedays) {
             $days[$i] = "";
         } else {
             $days[$i] = userdate($timestart, "%a %d %b");
         }
     } else {
         $days[$i] = userdate($timestart, "%a %d %b");
     }
     $logs[$i] = 0;
     $i++;
     $timestart = $timefinish;
 }
 $rawlogs = report_log_usercourse($user->id, $courseselect, $coursestart, $logreader);
 if (empty($rawlogs)) {
     return;
 }
 foreach ($rawlogs as $rawlog) {
     $logs[$rawlog->day] = $rawlog->num;
 }
 $graph = new graph(750, 400);
 $a = new stdClass();
 $a->coursename = format_string($course->shortname, true, array('context' => $coursecontext));
 $a->username = fullname($user, true);
 $graph->parameter['title'] = get_string("hitsoncourse", "", $a);
 $graph->x_data = $days;
 $graph->y_data['logs'] = $logs;
 $graph->y_order = array('logs');
 if (!empty($CFG->preferlinegraphs)) {
示例#2
0
/**
 * Fetch logs since the start of the courses and structure in series and labels to be sent to Chart API.
 *
 * @param stdClass $course the course object
 * @param stdClass $user user object
 * @param string $logreader the log reader where the logs are.
 * @return array structured array to be sent to chart API, split in two indexes (series and labels).
 */
function report_log_userall_data($course, $user, $logreader)
{
    global $CFG;
    $site = get_site();
    $timenow = time();
    $logs = [];
    if ($course->id == $site->id) {
        $courseselect = 0;
    } else {
        $courseselect = $course->id;
    }
    $maxseconds = REPORT_LOG_MAX_DISPLAY * 3600 * 24;
    // Seconds.
    if ($timenow - $course->startdate > $maxseconds) {
        $course->startdate = $timenow - $maxseconds;
    }
    if (!empty($CFG->loglifetime)) {
        $maxseconds = $CFG->loglifetime * 3600 * 24;
        // Seconds.
        if ($timenow - $course->startdate > $maxseconds) {
            $course->startdate = $timenow - $maxseconds;
        }
    }
    $timestart = $coursestart = usergetmidnight($course->startdate);
    $i = 0;
    $logs['series'][$i] = 0;
    $logs['labels'][$i] = 0;
    while ($timestart < $timenow) {
        $timefinish = $timestart + 86400;
        $logs['labels'][$i] = userdate($timestart, "%a %d %b");
        $logs['series'][$i] = 0;
        $i++;
        $timestart = $timefinish;
    }
    $rawlogs = report_log_usercourse($user->id, $courseselect, $coursestart, $logreader);
    foreach ($rawlogs as $rawlog) {
        if (isset($logs['labels'][$rawlog->day])) {
            $logs['series'][$rawlog->day] = $rawlog->num;
        }
    }
    return $logs;
}