/** * @todo Document this function */ public function prepare_package() { $content = ''; $lasttime = 0; $sessiongap = 5 * 60; // 5 minutes silence means a new session foreach ($this->messages as $message) { // We are walking FORWARDS through messages $m = clone $message; // grrrrrr - this causes the sha1 to change as chat_format_message changes what it's passed. $formatmessage = chat_format_message($m, null, $this->user); if (!isset($formatmessage->html)) { continue; } if (empty($lasttime) || $message->timestamp - $lasttime > $sessiongap) { $content .= '<hr />'; $content .= userdate($message->timestamp); } $content .= $formatmessage->html; $lasttime = $message->timestamp; } $content = preg_replace('/\\<img[^>]*\\>/', '', $content); $this->exporter->write_new_file($content, clean_filename($this->cm->name . '-session.html'), false); }
print " \n"; print $CHAT_DUMMY_DATA; sleep($CFG->chat_refresh_room); continue; } print '<script type="text/javascript">' . "\n"; print "//<![CDATA[\n\n"; $chatnewrow = ($chatlastrow + $num) % 2; $refreshusers = false; $us = array(); if ($chatlasttime != $chatnewlasttime and $messages) { $beep = false; $refreshusers = false; foreach ($messages as $message) { $chatlastrow = ($chatlastrow + 1) % 2; $formatmessage = chat_format_message($message, $chatuser->course, $USER, $chatlastrow); if ($formatmessage->beep) { $beep = true; } if ($formatmessage->refreshusers) { $refreshusers = true; } $us[$message->userid] = $timenow - $message->timestamp; echo "parent.msg.document.write('" . addslashes_js($formatmessage->html) . "\\n');\n"; } // From the last message printed. // A strange case where lack of closures is useful! $chatlasttime = $message->timestamp; $chatlastid = $message->id; } if ($refreshusers) {
if ($newonly) { $lastsql = "AND timestamp > :last"; } else { $lastsql = ""; } $groupselect = $groupid ? "AND (groupid=:groupid OR groupid=0)" : ""; $messages = $DB->get_records_select("chat_messages_current", "chatid = :chatid AND timestamp > :chatentered $lastsql $groupselect", $params, "timestamp DESC"); if ($messages) { foreach ($messages as $message) { $allmessages[] = chat_format_message($message, $course->id, $USER); } } if (empty($allmessages)) { echo get_string('nomessagesfound', 'message'); } else { foreach ($allmessages as $message) { echo $message->basic; } } echo '</div>'; echo $OUTPUT->container_end(); echo $OUTPUT->footer();
"chatid = :chatid AND timestamp >= :start AND timestamp <= :end $groupselect", $params, "timestamp ASC")) { echo $OUTPUT->heading(get_string('nomessages', 'chat')); } else { echo '<p class="boxaligncenter">'.userdate($start).' --> '. userdate($end).'</p>'; echo $OUTPUT->box_start('center'); $participates = array(); foreach ($messages as $message) { // We are walking FORWARDS through messages. if (!isset($participates[$message->userid])) { $participates[$message->userid] = true; } $formatmessage = chat_format_message($message, $course->id, $USER); if (isset($formatmessage->html)) { echo $formatmessage->html; } } $participatedcap = array_key_exists($USER->id, $participates) && has_capability('mod/chat:exportparticipatedsession', $context); if (!empty($CFG->enableportfolios) && ($canexportsess || $participatedcap)) { require_once($CFG->libdir . '/portfoliolib.php'); $buttonoptions = array( 'id' => $cm->id, 'start' => $start, 'end' => $end, ); $button = new portfolio_add_button();
$num = count($messages); } else { $num = 0; } $chat_newrow = ($chat_lastrow + $num) % 2; $send_user_list = false; if ($messages && $chat_lasttime != $chat_newlasttime) { foreach ($messages as $n => &$message) { $tmp = new stdclass(); // when somebody enter room, user list will be updated if ($message->system == 1) { $send_user_list = true; $tmp->type = 'system'; $users = format_user_list(chat_get_users($chatuser->chatid, $chatuser->groupid, $cm->groupingid), $course); } if ($html = chat_format_message($message, $chatuser->course, $USER, $chat_lastrow)) { if ($html->beep) { $tmp->type = 'beep'; } elseif (empty($tmp->type)) { $tmp->type = 'user'; } $tmp->msg = $html->html; $message = $tmp; } else { unset($message); } } } if (!empty($users) && $send_user_list) { // return users when system message coming $response['users'] = $users;