Extended theme support to the chat window. Bug 3376.
(http://moodle.org/bugs/bug.php?op=show&bugid=3376) Merged from MOODLE_15_STABLE
This commit is contained in:
@@ -11,6 +11,18 @@
|
||||
error('Not logged in!');
|
||||
}
|
||||
|
||||
//Get the course theme
|
||||
$course = get_record('course','id',$chatuser->course,'','','','','id,theme');
|
||||
//Set the global course if necessary
|
||||
if (!empty($course->theme)) {
|
||||
global $course;
|
||||
}
|
||||
//Get the user theme
|
||||
$USER = get_record('user','id',$chatuser->userid,'','','','','id, theme');
|
||||
|
||||
//Adjust the prefered theme (main, course, user)
|
||||
theme_setup();
|
||||
|
||||
chat_force_language($chatuser->lang);
|
||||
|
||||
ob_start();
|
||||
|
||||
@@ -7,11 +7,26 @@
|
||||
|
||||
$chat_sid = required_param('chat_sid', PARAM_ALPHANUM);
|
||||
$chat_lasttime = optional_param('chat_lasttime', 0, PARAM_INT);
|
||||
$chat_lastrow = optional_param('chat_lastrow', 1, PARAM_INT);
|
||||
|
||||
if (!$chatuser = get_record('chat_users', 'sid', $chat_sid)) {
|
||||
error('Not logged in!');
|
||||
}
|
||||
|
||||
//Get the course theme
|
||||
$course = get_record('course','id',$chatuser->course,'','','','','id,theme');
|
||||
//Set the course theme if necessary
|
||||
if (!empty($course->theme)) {
|
||||
if (!empty($CFG->allowcoursethemes)) {
|
||||
$CFG->coursetheme = $course->theme;
|
||||
}
|
||||
}
|
||||
//Get the user theme
|
||||
$USER = get_record('user','id',$chatuser->userid,'','','','','id, theme');
|
||||
|
||||
//Adjust the prefered theme (main, course, user)
|
||||
theme_setup();
|
||||
|
||||
chat_force_language($chatuser->lang);
|
||||
|
||||
// force deleting of timed out users if there is a silence in room or just entering
|
||||
@@ -30,11 +45,24 @@
|
||||
$chat_lasttime = time() - $CFG->chat_old_ping; //TO DO - any better value??
|
||||
}
|
||||
|
||||
$refreshurl = "jsupdate.php?chat_sid=$chat_sid&chat_lasttime=$chat_newlasttime"; // no & in url, does not work in header!
|
||||
$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;
|
||||
|
||||
$refreshurl = "jsupdate.php?chat_sid=$chat_sid&chat_lasttime=$chat_newlasttime&chat_lastrow=$chat_newrow"; // no & in url, does not work in header!
|
||||
|
||||
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');
|
||||
@@ -49,7 +77,7 @@
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=<?php echo get_string('thischarset'); ?>" />
|
||||
@@ -58,20 +86,18 @@
|
||||
if (parent.msg.document.getElementById("msgStarted") == null) {
|
||||
parent.msg.document.close();
|
||||
parent.msg.document.open("text/html","replace");
|
||||
parent.msg.document.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
|
||||
parent.msg.document.write("<html><head>");
|
||||
parent.msg.document.write("<meta http-equiv=\"content-type\" content=\"text/html; charset=<?php echo get_string('thischarset'); ?>\" />");
|
||||
parent.msg.document.write("<base target=\"_blank\" />");
|
||||
parent.msg.document.write("<?php echo $stylesheetshtml ?>");
|
||||
parent.msg.document.write("</head><body><div style=\"display: none\" id=\"msgStarted\"> </div>");
|
||||
parent.msg.document.write("</head><body class=\"mod-chat-gui_header_js course-<?php echo $chatuser->course ?>\" id=\"mod-chat-gui_header_js-jsupdate\"><div style=\"display: none\" id=\"msgStarted\"> </div>");
|
||||
}
|
||||
<?php
|
||||
$beep = false;
|
||||
$refreshusers = false;
|
||||
$us = array ();
|
||||
if (($chat_lasttime != $chat_newlasttime)
|
||||
and $messages = get_records_select("chat_messages",
|
||||
"chatid = '$chatuser->chatid' AND timestamp > '$chat_lasttime' $groupselect",
|
||||
"timestamp ASC")) {
|
||||
if (($chat_lasttime != $chat_newlasttime) and $messages) {
|
||||
|
||||
if (!$currentuser = get_record('user', 'id', $chatuser->userid)) {
|
||||
error('User does not exist!');
|
||||
@@ -79,7 +105,8 @@
|
||||
$currentuser->description = '';
|
||||
|
||||
foreach ($messages as $message) {
|
||||
$formatmessage = chat_format_message($message, $chatuser->course, $currentuser);
|
||||
$chat_lastrow = ($chat_lastrow + 1) % 2;
|
||||
$formatmessage = chat_format_message($message, $chatuser->course, $currentuser, $chat_lastrow);
|
||||
if ($formatmessage->beep) {
|
||||
$beep = true;
|
||||
}
|
||||
|
||||
@@ -12,6 +12,20 @@
|
||||
error('Not logged in!');
|
||||
}
|
||||
|
||||
//Get the course theme
|
||||
$course = get_record('course','id',$chatuser->course,'','','','','id,theme');
|
||||
//Set the course theme if necessary
|
||||
if (!empty($course->theme)) {
|
||||
if (!empty($CFG->allowcoursethemes)) {
|
||||
$CFG->coursetheme = $course->theme;
|
||||
}
|
||||
}
|
||||
//Get the user theme
|
||||
$USER = get_record('user','id',$chatuser->userid,'','','','','id, theme');
|
||||
|
||||
//Adjust the prefered theme (main, course, user)
|
||||
theme_setup();
|
||||
|
||||
chat_force_language($chatuser->lang);
|
||||
|
||||
$courseid = $chatuser->course;
|
||||
|
||||
+15
-8
@@ -493,7 +493,7 @@ function chat_update_chat_times($chatid=0) {
|
||||
}
|
||||
|
||||
|
||||
function chat_format_message_manually($message, $courseid, $sender, $currentuser) {
|
||||
function chat_format_message_manually($message, $courseid, $sender, $currentuser, $chat_lastrow=NULL) {
|
||||
global $CFG;
|
||||
|
||||
$output = New stdClass;
|
||||
@@ -512,13 +512,20 @@ function chat_format_message_manually($message, $courseid, $sender, $currentuser
|
||||
$message->picture = "<a target=\"_new\" href=\"$CFG->wwwroot/user/view.php?id=$sender->id&course=$courseid\">$message->picture</a>";
|
||||
}
|
||||
|
||||
//Calculate the row class
|
||||
if ($chat_lastrow !== NULL) {
|
||||
$rowclass = ' class="r'.$chat_lastrow.'" ';
|
||||
} else {
|
||||
$rowclass = '';
|
||||
}
|
||||
|
||||
// Start processing the message
|
||||
|
||||
if(!empty($message->system)) {
|
||||
// System event
|
||||
$output->text = $message->strtime.': '.get_string('message'.$message->message, 'chat', fullname($sender));
|
||||
$output->html = '<table><tr><td style="vertical-align: top;">'.$message->picture.'</td><td>';
|
||||
$output->html .= '<font size="2" color="#ccaaaa">'.$output->text.'</font></td></tr></table>';
|
||||
$output->html = '<table class="chat-event"><tr'.$rowclass.'><td class="picture">'.$message->picture.'</td><td class="text">';
|
||||
$output->html .= '<span class="event">'.$output->text.'</span></td></tr></table>';
|
||||
|
||||
if($message->message == 'exit' or $message->message == 'enter') {
|
||||
$output->refreshusers = true; //force user panel refresh ASAP
|
||||
@@ -579,17 +586,17 @@ function chat_format_message_manually($message, $courseid, $sender, $currentuser
|
||||
|
||||
$output->text = strip_tags($outinfo.': '.$outmain);
|
||||
|
||||
$output->html = "<table><tr><td valign=\"top\">$message->picture</td><td><font size=\"2\">";
|
||||
$output->html .= "<font color=\"#888888\">$outinfo</font>";
|
||||
$output->html = "<table class=\"chat-message\"><tr$rowclass><td class=\"picture\">$message->picture</td><td class=\"text\">";
|
||||
$output->html .= "<span class=\"title\">$outinfo</span>";
|
||||
if ($outmain) {
|
||||
$output->html .= ": $outmain";
|
||||
}
|
||||
$output->html .= "</font></td></tr></table>";
|
||||
$output->html .= "</td></tr></table>";
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function chat_format_message($message, $courseid, $currentuser) {
|
||||
function chat_format_message($message, $courseid, $currentuser, $chat_lastrow=NULL) {
|
||||
/// Given a message object full of information, this function
|
||||
/// formats it appropriately into text and html, then
|
||||
/// returns the formatted data.
|
||||
@@ -598,7 +605,7 @@ function chat_format_message($message, $courseid, $currentuser) {
|
||||
return "Error finding user id = $message->userid";
|
||||
}
|
||||
|
||||
return chat_format_message_manually($message, $courseid, $user, $currentuser);
|
||||
return chat_format_message_manually($message, $courseid, $user, $currentuser, $chat_lastrow);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user