From a669b1f5f9fd2ce57128a974345dfdaed39e7add Mon Sep 17 00:00:00 2001 From: moodler Date: Mon, 21 Jul 2003 04:08:32 +0000 Subject: [PATCH] Ah! Now we're getting somewhere - chat reports look quite nice now! --- mod/chat/report.php | 68 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 55 insertions(+), 13 deletions(-) diff --git a/mod/chat/report.php b/mod/chat/report.php index b00a30273d..235ecdf280 100644 --- a/mod/chat/report.php +++ b/mod/chat/report.php @@ -5,7 +5,9 @@ require_once("../../config.php"); require_once("lib.php"); - require_variable($id); // Chat Module ID, or + require_variable($id); // Chat Module ID, or + optional_variable($start, 0); // Start of period + optional_variable($end, 0); // End of period if (! $chat = get_record("chat", "id", $id)) { error("Course module is incorrect"); @@ -35,16 +37,47 @@ $strchat = get_string("modulename", "chat"); $strchatreport = get_string("chatreport", "chat"); +/// Print a session if once has been specified + + if ($start and $end) { // Show a full transcript + + print_header("$course->shortname: $chat->name: $strchatreport", "$course->fullname", + "$navigation id\">$strchats -> + id\">$chat->name -> + id\">$strchatreport", + "", "", true, "", navmenu($course, $cm)); + + if (!$messages = get_records_select("chat_messages", "chatid = $chat->id AND + timestamp > '$start' AND + timestamp < '$end'", "timestamp ASC")) { + print_heading(get_string("nomessages", "chat")); + + } else { + echo "

".userdate($start)." --> ". userdate($end)."

"; + + print_simple_box_start("center"); + foreach ($messages as $message) { // We are walking FORWARDS through messages + $formatmessage = chat_format_message($message); + echo $formatmessage->html; + } + print_simple_box_end("center"); + } + + print_continue("report.php?id=$chat->id"); + print_footer($course); + exit; + } + + +/// Print the Sessions display + print_header("$course->shortname: $chat->name: $strchatreport", "$course->fullname", "$navigation id\">$strchats -> id\">$chat->name -> $strchatreport", "", "", true, "", navmenu($course, $cm)); -/// Print the main part of the page - - print_heading($chat->name); - print_simple_box( get_string("sessions", "chat"), "center"); + print_heading($chat->name.": ".get_string("sessions", "chat")); if (!$messages = get_records("chat_messages", "chatid", $chat->id, "timestamp DESC")) { print_heading(get_string("nomessages", "chat")); @@ -52,13 +85,15 @@ exit; } - $sessiongap = 5 * 60; // 5 minutes + /// Show all the sessions + + $sessiongap = 5 * 60; // 5 minutes silence means a new session $sessionend = 0; $sessionstart = 0; $sessionusers = array(); $lasttime = 0; - foreach ($messages as $message) { // We are walking BACKWARDS throuhg messages + foreach ($messages as $message) { // We are walking BACKWARDS through the messages if (!$lasttime) { $lasttime = $message->timestamp; } @@ -66,31 +101,38 @@ $sessionend = $message->timestamp; } if (($lasttime - $message->timestamp) < $sessiongap) { // Same session - if ($message->userid and !$message->system) { - $sessionusers[$message->userid] = $message->timestamp; // Remember user + if ($message->userid and !$message->system) { // Remember user and count messages + if (empty($sessionusers[$message->userid])) { + $sessionusers[$message->userid] = 1; + } else { + $sessionusers[$message->userid] ++; + } } } else { $sessionstart = $lasttime; if ($sessionend - $sessionstart > 60 and count($sessionusers) > 1) { - print_heading(userdate($sessionstart)." --> ". userdate($sessionend)); + echo "

".userdate($sessionstart)." --> ". userdate($sessionend)."

"; print_simple_box_start("center"); - foreach ($sessionusers as $sessionuser => $lastusertime) { + arsort($sessionusers); + foreach ($sessionusers as $sessionuser => $usermessagecount) { if ($user = get_record("user", "id", $sessionuser)) { print_user_picture($user->id, $course->id, $user->picture); - echo " $user->firstname $user->lastname
"; + echo " $user->firstname $user->lastname"; + echo " ($usermessagecount)
"; } } + echo "

id&start=$sessionstart&end=$sessionend\">see chat"; print_simple_box_end(); } $sessionend = $message->timestamp; $sessionusers = array(); - $sessionusers[$message->userid] = $message->timestamp; // Remember user + $sessionusers[$message->userid] = 1; } $lasttime = $message->timestamp; } -- 2.39.5