From 236779567457cc9a1d3418aebf3ef426a07b1fd8 Mon Sep 17 00:00:00 2001 From: Dongsheng Cai Date: Fri, 4 Dec 2009 03:57:48 +0000 Subject: [PATCH] "MDL-20587, chat module, show sessions with just one users, based on Daniel Neis' patch, thanks" --- lang/en_utf8/chat.php | 4 ++++ mod/chat/report.php | 32 +++++++++++++++++++++++++------- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/lang/en_utf8/chat.php b/lang/en_utf8/chat.php index ea1cf3bc71..a1a78ab0d8 100644 --- a/lang/en_utf8/chat.php +++ b/lang/en_utf8/chat.php @@ -38,6 +38,9 @@ $string['explainmethodnormal'] = 'These settings matter only if $string['generalconfig'] = 'General configuration'; $string['helpchatting'] = 'Help with chatting'; $string['idle'] = 'Idle'; +$string['list_complete_sessions'] = 'List just complete sessions.'; +$string['list_all_sessions'] = 'List all sessions.'; +$string['listing_all_sessions'] = 'Listing all sessions.'; $string['invalidid'] = 'Could not find that chat room!'; $string['inputarea'] = 'Input area'; $string['messageyoubeep'] = 'You beeped $a'; @@ -53,6 +56,7 @@ $string['modulename'] = 'Chat'; $string['modulenameplural'] = 'Chats'; $string['neverdeletemessages'] = 'Never delete messages'; $string['nextsession'] = 'Next scheduled session'; +$string['no_complete_sessions_found'] = 'No complete sessions found.'; $string['nochat'] = 'No chat found'; $string['noguests'] = 'The chat is not open to guests'; $string['nomessages'] = 'No messages yet'; diff --git a/mod/chat/report.php b/mod/chat/report.php index 85337c76a8..6d4f3abb52 100644 --- a/mod/chat/report.php +++ b/mod/chat/report.php @@ -10,6 +10,7 @@ $end = optional_param('end', 0, PARAM_INT); // End of period $deletesession = optional_param('deletesession', 0, PARAM_BOOL); $confirmdelete = optional_param('confirmdelete', 0, PARAM_BOOL); + $show_all = optional_param('show_all', 0, PARAM_BOOL); $url = new moodle_url($CFG->wwwroot.'/mod/chat/report.php', array('id'=>$id)); if ($start !== 0) { @@ -155,7 +156,6 @@ /// Get the messages - if (empty($messages)) { /// May have already got them above if (!$messages = $DB->get_records_select('chat_messages', "chatid = :chatid $groupselect", $params, "timestamp DESC")) { echo $OUTPUT->heading(get_string('nomessages', 'chat')); @@ -164,13 +164,20 @@ } } + if ($show_all) { + echo $OUTPUT->heading(get_string('listing_all_sessions', 'chat') . + ' ' . + get_string('list_complete_sessions', 'chat') . ''); + } + /// Show all the sessions - $sessiongap = 5 * 60; // 5 minutes silence means a new session - $sessionend = 0; - $sessionstart = 0; - $sessionusers = array(); - $lasttime = 0; + $sessiongap = 5 * 60; // 5 minutes silence means a new session + $sessionend = 0; + $sessionstart = 0; + $sessionusers = array(); + $lasttime = 0; + $complete_sessions = 0; $messagesleft = count($messages); @@ -195,7 +202,8 @@ } else { $sessionstart = $lasttime; - if ($sessionend - $sessionstart > 60 and count($sessionusers) > 1) { + $is_complete = ($sessionend - $sessionstart > 60 and count($sessionusers) > 1); + if ($show_all or $is_complete) { echo '

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

'; @@ -231,6 +239,9 @@ echo '

'; echo $OUTPUT->box_end(); } + if ($is_complete) { + $complete_sessions++; + } $sessionend = $message->timestamp; $sessionusers = array(); @@ -247,6 +258,13 @@ } + if (!$show_all and $complete_sessions == 0) { + echo $OUTPUT->heading(get_string('no_complete_sessions_found', 'chat') . + ' ' . + get_string('list_all_sessions', 'chat') . + ''); + } + /// Finish the page echo $OUTPUT->footer(); -- 2.39.5