course,'','','','','id,theme,lang')) { error('incorrect course id'); } //Get the user theme and enough info to be used in chat_format_message() which passes it along to if (!$USER = get_record('user','id',$chatuser->userid)) { // no optimisation here, it would break again in future! error('User does not exist!'); } $USER->description = ''; //Setup course, lang and theme course_setup($course); // force deleting of timed out users if there is a silence in room or just entering if ((time() - $chat_lasttime) > $CFG->chat_old_ping) { // must be done before chat_get_latest_message!!! chat_delete_old_users(); } if ($message = chat_get_latest_message($chatuser->chatid, $chatuser->groupid)) { $chat_newlasttime = $message->timestamp; } else { $chat_newlasttime = 0; } if ($chat_lasttime == 0) { //display some previous messages $chat_lasttime = time() - $CFG->chat_old_ping; //TO DO - any better value?? } $timenow = time(); $groupselect = $chatuser->groupid ? " AND (groupid='".$chatuser->groupid."' OR groupid='0') " : ""; $messages = get_records_select("chat_messages", "chatid = '$chatuser->chatid' AND timestamp > '$chat_lasttime' $groupselect", "timestamp ASC"); if ($messages) { $num = count($messages); } else { $num = 0; } $chat_newrow = ($chat_lastrow + $num) % 2; // no & in url, does not work in header! $refreshurl = "{$CFG->wwwroot}/mod/chat/gui_header_js/jsupdate.php?chat_sid=$chat_sid&chat_lasttime=$chat_newlasttime&chat_lastrow=$chat_newrow"; $refreshurlamp = "{$CFG->wwwroot}/mod/chat/gui_header_js/jsupdate.php?chat_sid=$chat_sid&chat_lasttime=$chat_newlasttime&chat_lastrow=$chat_newrow"; header('Expires: Sun, 28 Dec 1997 09:32:45 GMT'); header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); header('Cache-Control: no-cache, must-revalidate'); header('Pragma: no-cache'); header('Content-Type: text/html; charset=utf-8'); header("Refresh: $CFG->chat_refresh_room; url=$refreshurl"); /// required stylesheets $stylesheetshtml = ''; foreach ($CFG->stylesheets as $stylesheet) { $stylesheetshtml .= ''; } // use ob to be able to send Content-Length headers // needed for Keep-Alive to work ob_start(); ?> '; } ?> Refresh link