From c24d3070ccc322f4a538d38ea6df05c36e5b9d46 Mon Sep 17 00:00:00 2001 From: martin Date: Sat, 27 Jul 2002 08:31:09 +0000 Subject: [PATCH] Improvements to user activity report - including graphs --- course/loggraph.php | 76 +++++++++++++++++++++++++++++++++++++++++++++ course/user.php | 5 ++- 2 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 course/loggraph.php diff --git a/course/loggraph.php b/course/loggraph.php new file mode 100644 index 0000000000..2a78bbe340 --- /dev/null +++ b/course/loggraph.php @@ -0,0 +1,76 @@ +libdir/graphlib.php"); + + require_variable($id); // Course ID + require_variable($type); // Graph Type + optional_variable($user); // Student ID + + if (! $course = get_record("course", "id", $id)) { + error("Course is misconfigured"); + } + + require_login($course->id); + + if (!isteacher($course->id)) { + if (! ($type == "student.png" and $user == $USER->id) ) { + error("Sorry, you aren't allowed to see this."); + } + } + + if ($user) { + if (! $user = get_record("user", "id", $user)) { + error("Can not find that user"); + } + } + + + $timenow = time(); + + switch ($type) { + + case "user.png": + + $timestart = $course->startdate; + $i = 0; + while ($timestart < $timenow) { + $timefinish = $timestart + (3600 * 24); + if (! $logcount = get_record_sql("SELECT COUNT(*) as count FROM log + WHERE user = '$user->id' AND course = '$course->id' + AND `time` > '$timestart' AND `time` < '$timefinish'")) { + $logs[$i] = 0; + } + $logs[$i] = $logcount->count; + $days[$i] = date("j M", $timestart); + $i++; + $timestart = $timefinish; + } + + $maxlogs = max($logs); + + + $graph = new graph(600, 300); + $graph->parameter['title'] = "Rough usage of $course->shortname by $user->firstname $user->lastname"; + + $graph->x_data = $days; + + $graph->y_data['logs'] = $logs; + $graph->y_format['logs'] = array('colour' => 'blue','bar' => 'fill','legend' =>'actual','bar_size' => 0.4); + $graph->y_label_left = "Hits"; + + $graph->y_order = array('logs'); + + + $graph->parameter['shadow'] = 'none'; + + $graph->draw_stack(); + + break; + + default: + break; + } + +?> diff --git a/course/user.php b/course/user.php index 3dbbeb3a10..8b36da3e69 100644 --- a/course/user.php +++ b/course/user.php @@ -55,10 +55,9 @@ switch ($mode) { case "summary" : - echo "

Not done yet

"; - echo "

Graph goes here that shows accesses by day over the course

"; echo "
"; - echo "

Table goes here that summarises all activity by this student by module. eg 3/7 journals done, 3/3 surveys, 12 posts in all discussions. Each of these are links so that you can drill down to see all the surveys on one page, or all the posts, or all their journals."; + echo "

id&user=$user->id&type=user.png\">"; + echo "
"; break; case "outline" : -- 2.39.5