FIxed bug 3383 ... intro texts no longer center-justified in standard
[moodle.git] / course / loggraph.php
blobd074d765bc369507bb670a0825d63943c10130b1
1 <?php // $Id$
2 // Produces a graph of log accesses
4 require_once("../config.php");
5 require_once("lib.php");
6 require_once("$CFG->libdir/graphlib.php");
8 require_variable($id); // Course ID
9 require_variable($type); // Graph Type
10 optional_variable($user); // Student ID
11 optional_variable($date); // A time of a day (in GMT)
13 if (! $course = get_record("course", "id", $id)) {
14 error("Course is misconfigured");
17 require_login($course->id);
19 if (! (isteacher($course->id) or ($course->showreports and $USER->id == $user))) {
20 error("Sorry, you aren't allowed to see this.");
23 if ($user) {
24 if (! $user = get_record("user", "id", $user)) {
25 error("Can not find that user");
29 $logs = array();
31 $timenow = time();
33 switch ($type) {
34 case "usercourse.png":
36 $site = get_site();
38 if ($course->id == $site->id) {
39 $courseselect = 0;
40 } else {
41 $courseselect = $course->id;
44 $maxseconds = COURSE_MAX_LOG_DISPLAY * 3600 * 24; // seconds
45 //$maxseconds = 60 * 3600 * 24; // seconds
46 if ($timenow - $course->startdate > $maxseconds) {
47 $course->startdate = $timenow - $maxseconds;
50 if (!empty($CFG->loglifetime)) {
51 $maxseconds = $CFG->loglifetime * 3600 * 24; // seconds
52 if ($timenow - $course->startdate > $maxseconds) {
53 $course->startdate = $timenow - $maxseconds;
57 $timestart = $coursestart = usergetmidnight($course->startdate);
59 if ((($timenow - $timestart)/86400.0) > 40) {
60 $reducedays = 7;
61 } else {
62 $reducedays = 0;
65 $i = 0;
66 while ($timestart < $timenow) {
67 $timefinish = $timestart + 86400;
68 if ($reducedays) {
69 if ($i % $reducedays) {
70 $days[$i] = "";
71 } else {
72 $days[$i] = userdate($timestart, "%a %d %b");
74 } else {
75 $days[$i] = userdate($timestart, "%a %d %b");
77 $logs[$i] = 0;
78 $i++;
79 $timestart = $timefinish;
82 if ($rawlogs = get_logs_usercourse($user->id, $courseselect, $coursestart)) {
83 foreach ($rawlogs as $rawlog) {
84 $logs[$rawlog->day] = $rawlog->num;
88 $graph = new graph(750, 400);
90 $a->coursename = $course->shortname;
91 $a->username = fullname($user, true);
92 $graph->parameter['title'] = get_string("hitsoncourse", "", $a);
94 $graph->x_data = $days;
96 $graph->y_data['logs'] = $logs;
97 $graph->y_order = array('logs');
99 if (!empty($CFG->preferlinegraphs)) {
100 $graph->y_format['logs'] = array('colour' => 'blue','line' => 'line');
101 } else {
102 $graph->y_format['logs'] = array('colour' => 'blue','bar' => 'fill','bar_size' => 0.6);
103 $graph->parameter['bar_spacing'] = 0;
107 $graph->parameter['y_label_left'] = get_string("hits");
108 $graph->parameter['label_size'] = "12";
109 $graph->parameter['x_axis_angle'] = 90;
110 $graph->parameter['x_label_angle'] = 0;
111 $graph->parameter['tick_length'] = 0;
114 $graph->parameter['shadow'] = 'none';
116 error_reporting(5); // ignore most warnings such as font problems etc
117 $graph->draw_stack();
119 break;
121 case "userday.png":
123 $site = get_site();
125 if ($course->id == $site->id) {
126 $courseselect = 0;
127 } else {
128 $courseselect = $course->id;
131 if ($date) {
132 $daystart = usergetmidnight($date);
133 } else {
134 $daystart = usergetmidnight(time());
136 $dayfinish = $daystart + 86400;
138 for ($i=0; $i<=23; $i++) {
139 $logs[$i] = 0;
140 $hour = $daystart + $i * 3600;
141 $hours[$i] = $i;
144 if ($rawlogs = get_logs_userday($user->id, $courseselect, $daystart)) {
145 foreach ($rawlogs as $rawlog) {
146 $logs[$rawlog->hour] = $rawlog->num;
150 $graph = new graph(750, 400);
152 $a->coursename = $course->shortname;
153 $a->username = fullname($user, true);
154 $graph->parameter['title'] = get_string("hitsoncoursetoday", "", $a);
156 $graph->x_data = $hours;
158 $graph->y_data['logs'] = $logs;
159 $graph->y_order = array('logs');
161 if (!empty($CFG->preferlinegraphs)) {
162 $graph->y_format['logs'] = array('colour' => 'blue','line' => 'line');
163 } else {
164 $graph->y_format['logs'] = array('colour' => 'blue','bar' => 'fill','bar_size' => 0.9);
167 $graph->parameter['y_label_left'] = get_string("hits");
168 $graph->parameter['label_size'] = "12";
169 $graph->parameter['x_axis_angle'] = 0;
170 $graph->parameter['x_label_angle'] = 0;
172 $graph->parameter['shadow'] = 'none';
174 error_reporting(5); // ignore most warnings such as font problems etc
175 $graph->draw_stack();
177 break;
179 default:
180 break;