I have cleaned up the message Javascript code, implementing the new PAGE methods
and at the same time implemented the new OUTPUT methods
}
if ($user->deleted) {
- print_header();
- print_heading(get_string('userdeleted'));
- print_footer();
+ $PAGE->set_generaltype('popup');
+ $PAGE->set_title(get_string('discussion', 'message').': '.fullname($user));
+ echo $OUTPUT->header();
+ echo $OUTPUT->heading(get_string('userdeleted'), 1);
+ echo $OUTPUT->footer();
die;
}
$userfullname = fullname($user);
$mefullname = fullname($USER);
- print_header(get_string('discussion', 'message').': '.fullname($user), '', '', 'edit-message');
+ $PAGE->set_generaltype('popup');
+ $PAGE->set_title(get_string('discussion', 'message').': '.fullname($user));
+ echo $OUTPUT->header();
+
echo '<div class="message-discussion-noframes">';
echo '<div id="userinfo">';
echo print_user_picture($user, SITEID, $user->picture, 48, true, true, 'userwindow');
$fullname = $userfullname;
}
- if ($message->format == FORMAT_HTML){
- $printmessage = format_text($message->fullmessagehtml, $message->format, $options, 0);
+ if ($message->fullmessageformat == FORMAT_HTML){
+ $printmessage = format_text($message->fullmessagehtml, $message->fullmessageformat, $options, 0);
} else{
- $printmessage = format_text($message->fullmessage, $message->format, $options, 0);
+ $printmessage = format_text($message->fullmessage, $message->fullmessageformat, $options, 0);
}
$printmessage = '<div class="message other"><span class="author">'.$fullname.'</span> '.
'<span class="time">['.$time.']</span>: '.
foreach ($messages as $message) {
$time = userdate($message->timecreated, get_string('strftimedatetimeshort'));
- if ($message->format == FORMAT_HTML){
- $printmessage = format_text($message->fullmessagehtml, $message->format, $options, 0);
+ if ($message->fullmessageformat == FORMAT_HTML){
+ $printmessage = format_text($message->fullmessagehtml, $message->fullmessageformat, $options, 0);
} else{
- $printmessage = format_text($message->fullmessage, $message->format, $options, 0);
+ $printmessage = format_text($message->fullmessage, $message->fullmessageformat, $options, 0);
}
$printmessage = '<div class="message other"><span class="author">'.$mefullname.'</span> '.
'<span class="time">['.$time.']</span>: '.
foreach ($messages as $message) {
$time = userdate($message->timecreated, get_string('strftimedatetimeshort'));
- if ($message->format == FORMAT_HTML){
- $printmessage = format_text($message->fullmessagehtml, $message->format, $options, 0);
+ if ($message->fullmessageformat == FORMAT_HTML){
+ $printmessage = format_text($message->fullmessagehtml, $message->fullmessageformat, $options, 0);
} else{
- $printmessage = format_text($message->fullmessage, $message->format, $options, 0);
+ $printmessage = format_text($message->fullmessage, $message->fullmessageformat, $options, 0);
}
$printmessage = '<div class="message other"><span class="author">'.$userfullname.'</span> '.
'<span class="time">['.$time.']</span>: '.
echo '</div></div>';
- print_footer('none');
+ echo $OUTPUT->footer();
?>
echo "</form>";
-
-/// Finish with a footer
- print_footer($course);
+ $OUTPUT->footer();
?>
print_error('disabled', 'message');
}
+ $PAGE->set_title(get_string('messagehistory', 'message'));
+
/// Script parameters
$userid1 = required_param('user1', PARAM_INT);
if (! $user1 = $DB->get_record("user", array("id"=>$userid1))) { // Check it's correct
}
if ($user1->deleted) {
- print_header();
- print_heading(get_string('userdeleted').': '.$userid1);
- print_footer();
+ echo $OUTPUT->header();
+ echo $OUTPUT->heading(get_string('userdeleted').': '.$userid1, 1);
+ echo $OUTPUT->footer();
die;
}
print_error('invaliduserid');
}
if ($user2->deleted) {
- print_header();
- print_heading(get_string('userdeleted').': '.$userid2);
- print_footer();
+ echo $OUTPUT->header();
+ echo $OUTPUT->heading(get_string('userdeleted').': '.$userid2, 1);
+ echo $OUTPUT->footer();
die;
}
} else {
/// Our two users are defined - let's set up the page
- print_header(get_string('messagehistory', 'message'), '', '', '', '<base target="_blank" />');
+ echo $OUTPUT->header();
/// Print out a heading including the users we are looking at
- print_simple_box_start('center');
+ echo $OUTPUT->box_start('center');
echo '<table align="center" cellpadding="10"><tr>';
echo '<td align="center">';
echo print_user_picture($user1, SITEID, $user1->picture, 100, true, true, 'userwindow').'<br />';
echo fullname($user2);
echo '</td>';
echo '</tr></table>';
- print_simple_box_end();
+ echo $OUTPUT->box_end();
/// Get all the messages and print them
$current->month = $date['month'];
$current->year = $date['year'];
echo '<a name="'.$date['year'].$date['mon'].$date['mday'].'"></a>';
- print_heading(userdate($message->timecreated, $blockdate), 'center', 4);
+ echo $OUTPUT->heading(userdate($message->timecreated, $blockdate), 4, 'center');
}
if ($message->useridfrom == $user1->id) {
echo message_format_message($message, $user1, $messagedate, $search, 'other');
}
}
} else {
- print_heading(get_string('nomessagesfound', 'message'));
+ echo $OUTPUT->heading(get_string('nomessagesfound', 'message'), 1);
}
- print_footer('none');
+ echo $OUTPUT->footer();
?>
/// Popup a window if required and quit (usually from external links).
if ($popup) {
- print_header();
+ $PAGE->set_generaltype('popup');
+ $OUTPUT->header();
echo $PAGE->requires->js_function_call('openpopup', Array('/message/index.php', 'message', 'menubar=0,location=0,scrollbars,status,resizable,width=400,height=500', 0))->asap();
redirect("$CFG->wwwroot/", '', 0);
exit;
/// Header on this page
if ($tab == 'contacts') {
- print_header(get_string('messages', 'message').' - '.format_string($SITE->fullname), '', '', '',
- '<meta http-equiv="refresh" content="'. $CFG->message_contacts_refresh .'; url=index.php" />');
- } else {
- print_header(get_string('messages', 'message').' - '.format_string($SITE->fullname));
+ $PAGE->set_periodic_refresh_delay($CFG->message_contacts_refresh);
}
+ $PAGE->set_generaltype('popup');
+ $PAGE->set_title(get_string('messages', 'message').' - '.format_string($SITE->fullname));
+ echo $OUTPUT->header();
echo '<table cellspacing="2" cellpadding="2" border="0" width="95%" class="boxaligncenter">';
echo '<tr>';
}
echo '</td> </tr> </table>';
- print_footer('none');
+ echo $OUTPUT->footer();
?>
$autorefresh = '<p align="center" class="note">'.get_string('pagerefreshes', 'message', $CFG->message_contacts_refresh).'</p>';
$autorefresh = addslashes_js($autorefresh); // js escaping
- echo $PAGE->requires->js_function_call('document.write', Array($autorefresh))->asap();
- // gracefully degrade JS autorefresh
- echo '<noscript><div class="button aligncenter">';
+ $PAGE->requires->js('message/message.js');
+ $PAGE->requires->js_function_call('refresh_page', Array(60*1000, $PAGE->url->out()));
+
+ echo '<div class="messagejsautorefresh note center">';
+ echo get_string('pagerefreshes', 'message', $CFG->message_contacts_refresh);
+ echo '</div>';
+
+ echo '<div class="messagejsmanualrefresh aligncenter">';
echo print_single_button('index.php', false, get_string('refresh'));
- echo '</div></noscript>';
+ echo '</div>';
}
$eventdata->fullmessage = $message;
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
- $eventdata->smallmessage = '';
+ $eventdata->smallmessage = '';
+ $eventdata->timecreated = time();
return events_trigger('message_send', $eventdata);
}
$processor = $DB->get_record('message_processors', array('name' => 'popup'));
- $messagesproc = $DB->get_records('message_working', array('processorid'=>$processor->id));
+ $messagesproc = $DB->get_records('message_working', array('processorid'=>$processor->id), 'id ASC');
//for every message to process check if it's for current user and process
$messages = array();
function set_focus(eid) {
document.getElementById(eid).focus();
+}
+
+function refresh_parent_messages_frame() {
+ if (chatmessages.msgcount>0) {
+ for (var i=0; i < chatmessages.msgcount; i++) {
+ add_message(chatmessages.msg[i])
+ }
+ }
+ parent.messages.scroll(1,5000000);
+ parent.send.focus();
+}
+
+function add_message(messagestr) {
+ var messageblock = parent.messages.document.getElementById('messages');
+ var message = document.createElement('div');
+ message.innerHTML = messagestr;
+ messageblock.appendChild(message);
+}
+
+var urltorefreshto = '';
+function refresh_page(delay, url) {
+ urltorefreshto = url;
+ setTimeout(callback_refresh_page, delay);
+}
+
+function callback_refresh_page() {
+ document.location.replace(urltorefreshto);
}
\ No newline at end of file
-<?php // $Id$
+<?php
require('../config.php');
-/// Select direction
- if ( get_string('thisdirection') == 'rtl' ) {
- $direction = ' dir="rtl"';
- } else {
- $direction = ' dir="ltr"';
- }
-/// Output the header
@header('Content-Type: text/html; charset=utf-8');
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" <?php echo $direction ?>>
- <head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
- </head>
- <body class="message course-1" id="message-messages">
+
+ $PAGE->set_generaltype('popup');
+ $PAGE->set_title(get_string('messages', 'message').' - '.format_string($SITE->fullname));
+ echo $OUTPUT->header();
+ echo "<div id='messages'></div>";
+ echo $OUTPUT->footer();
+
+?>
\ No newline at end of file
print_error('disabled', 'message');
}
-/// Script parameters
- $userid = required_param('id', PARAM_INT);
- $userfullname = strip_tags(required_param('name', PARAM_RAW));
- $wait = optional_param('wait', MESSAGE_DEFAULT_REFRESH, PARAM_INT);
-
- $stylesheetshtml = '';
- foreach ($CFG->stylesheets as $stylesheet) {
- $stylesheetshtml .= '<link rel="stylesheet" type="text/css" href="'.$stylesheet.'" />';
- }
+ $PAGE->set_generaltype('popup');
+ $PAGE->set_title(get_string('messages', 'message').' - '.format_string($SITE->fullname));
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');
- echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."\n";
- echo '<html><head><title> </title>';
- echo '<meta http-equiv="content-type" content="text/html; charset=utf-8" />';
- echo '<script type="text/javascript">'."\n";
- echo '<!--'."\n";
- echo 'if (parent.messages.document.getElementById("messagestarted") == null) {'."\n";
- echo ' parent.messages.document.close();'."\n";
- echo ' parent.messages.document.open("text/html","replace");'."\n";
- echo ' parent.messages.document.write("<html><head><title> <\/title>");'."\n";
- echo ' parent.messages.document.write("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />");'."\n";
- echo ' parent.messages.document.write("<base target=\"_blank\" />");'."\n";
- echo ' parent.messages.document.write("'.addslashes_js($stylesheetshtml).'");'."\n";
- echo ' parent.messages.document.write("<\/head><body class=\"message course-1\" id=\"message-messages\"><div style=\"display: none\" id=\"messagestarted\"> <\/div>");'."\n";
- echo '}'."\n";
-
- @ob_implicit_flush(true);
- @ob_end_flush();
+ /// Script parameters
+ $userid = required_param('id', PARAM_INT);
+ $userfullname = strip_tags(required_param('name', PARAM_RAW));
+ $wait = optional_param('wait', MESSAGE_DEFAULT_REFRESH, PARAM_INT);
/*Get still to be read message, use message/lib.php funtion*/
- $messages = message_get_popup_messages($USER->id, $userid);
- if ($messages ) {
+ $messages = message_get_popup_messages($USER->id, $userid);
+ $jsmessages = Array();
+ if ($messages ) {
foreach ($messages as $message) {
$time = userdate($message->timecreated, get_string('strftimedatetimeshort'));
$printmessage = '<div class="message other"><span class="author">'.s($userfullname).'</span> '.
'<span class="time">['.$time.']</span>: '.
'<span class="content">'.$printmessage.'</span></div>';
- $printmessage = addslashes_js($printmessage); // So Javascript can write it
- echo "parent.messages.document.write('".$printmessage."');\n";
+ $jsmessages[count($jsmessages)] = $printmessage;
}
if (get_user_preferences('message_beepnewmessage', 0)) {
$playbeep = true;
}
- echo 'parent.messages.scroll(1,5000000);'."\n";
- echo 'parent.send.focus();'."\n";
$wait = MESSAGE_DEFAULT_REFRESH;
} else {
if ($wait < 300) { // Until the wait is five minutes
$wait = ceil(1.2 * (float)$wait); // Exponential growth
}
}
- /* old code to be deleted
- if ($messages = $DB->get_records('message', array('useridto'=>$USER->id, 'useridfrom'=>$userid), 'timecreated')) {
- foreach ($messages as $message) {
- $time = userdate($message->timecreated, get_string('strftimedatetimeshort'));
-
- $options = new object();
- $options->para = false;
- $options->newlines = true;
- $printmessage = format_text($message->message, $message->format, $options);
- $printmessage = '<div class="message other"><span class="author">'.s($userfullname).'</span> '.
- '<span class="time">['.$time.']</span>: '.
- '<span class="content">'.$printmessage.'</span></div>';
- $printmessage = addslashes_js($printmessage); // So Javascript can write it
- echo "parent.messages.document.write('".$printmessage."');\n";
- /// Move the entry to the other table
- $message->timeread = time();
- $messageid = $message->id;
- unset($message->id);
- if ($DB->insert_record('message_read', $message)) {
- $DB->delete_records('message', array('id'=>$messageid));
- }
- }
- if (get_user_preferences('message_beepnewmessage', 0)) {
- $playbeep = true;
- }
- echo 'parent.messages.scroll(1,5000000);'."\n";
- echo 'parent.send.focus();'."\n";
- $wait = MESSAGE_DEFAULT_REFRESH;
- } else {
- if ($wait < 300) { // Until the wait is five minutes
- $wait = ceil(1.2 * (float)$wait); // Exponential growth
- }
- }
-*/
- echo '-->'."\n";
- echo '</script>'."\n";
- echo '</head>'."\n";
- echo '<body>'."\n";
+ $PAGE->requires->js('message/message.js')->in_head();
+ $PAGE->requires->js_function_call('refresh_parent_messages_frame');
+ $PAGE->requires->data_for_js('chatmessages', Array('msgcount'=>count($jsmessages), 'msg'=>$jsmessages))->in_head();
+ echo $OUTPUT->header();
if (!empty($playbeep)) {
echo '<embed src="bell.wav" autostart="true" hidden="true" name="bell" />';
- echo '<script type="text/javascript">'."\n";
- echo '<!--'."\n";
- echo 'parent.send.focus();'."\n";
- echo '-->'."\n";
- echo '</script>'."\n";
+ echo $PAGE->requires->js_function_call('parent.send.focus')->asap();
}
// Javascript for Mozilla to cope with the redirect bug from editor being on in this page
- echo '<script type="text/javascript">//<![CDATA[' . "\n";
- echo 'setTimeout(function() { document.location.replace(' .
- json_encode("refresh.php?id=$userid&name=" . urlencode($userfullname) .
- "&wait=$wait") . ');}, ' . ($wait * 1000) . ");\n";
- echo "//]]></script>\n";
- echo "</body>\n";
- echo "</html>\n";
+ $PAGE->requires->js_function_call('refresh_page', Array(($wait*1000), "refresh.php?id=$userid&name=".urlencode($userfullname)."&wait=$wait"));
+
+ echo $OUTPUT->footer();
+
?>
if (has_capability('moodle/site:sendmessage', get_context_instance(CONTEXT_SYSTEM))) {
+ $PAGE->set_generaltype('popup');
+ $PAGE->set_title('send');
$PAGE->requires->js('message/message.js');
-/// (Don't use print_header, for more speed)
-/// ehm - we have to use print_header() or else this breaks after any minor change in print_header()!
- print_header();
+ echo $OUTPUT->header();
/// Script parameters
$userid = required_param('id', PARAM_INT);
/// Check that the user is not blocking us!!
if ($contact = $DB->get_record('message_contacts', array('userid'=>$user->id, 'contactid'=>$USER->id))) {
if ($contact->blocked and !has_capability('moodle/site:readallmessages', get_context_instance(CONTEXT_SYSTEM))) {
- print_heading(get_string('userisblockingyou', 'message'));
- print_footer('empty');
+ echo $OUTPUT->heading(get_string('userisblockingyou', 'message'), 1);
+ echo $OUTPUT->footer();
exit;
}
}
if (!empty($userpreferences['message_blocknoncontacts'])) { // User is blocking non-contacts
if (empty($contact)) { // We are not a contact!
- print_heading(get_string('userisblockingyounoncontact', 'message'));
- print_footer('empty');
+ echo $OUTPUT->heading(get_string('userisblockingyounoncontact', 'message'), 1);
+ echo $OUTPUT->footer();
exit;
}
}
if ($message!='' and confirm_sesskey()) { /// Current user has just sent a message
- /// Save it to the database...
+ /// Save it to the database...
$messageid = message_post_message($USER, $user, $message, $format, 'direct');
- /// Format the message as HTML
+ /// Format the message as HTML
$options = NULL;
$options->para = false;
$options->newlines = true;
$message = '<div class="message me"><span class="author">'.fullname($USER).'</span> '.
'<span class="time">['.$time.']</span>: '.
'<span class="content">'.$message.'</span></div>';
- $message = addslashes_js($message); // So Javascript can write it
-
- /// Then write it to our own message screen immediately
- $PAGE->requires->js_function_call('parent.messages.document.write', Array($message));
+ //$PAGE->requires->js_function_call('parent.messages.document.write', Array($message));
+ $PAGE->requires->js_function_call('add_message', Array($message));
$PAGE->requires->js_function_call('parent.messages.scroll', Array(1,5000000));
add_to_log(SITEID, 'message', 'write', 'history.php?user1='.$user->id.'&user2='.$USER->id.'#m'.$messageid, $user->id);
echo '</div>';
echo '</form>';
if (!empty($CFG->messagewasjustemailed)) {
- notify(get_string('mailsent', 'message'), 'notifysuccess');
+ $OUTPUT->notifcation(get_string('mailsent', 'message'), 'notifysuccess');
}
echo '<div class="noframesjslink"><a target="_parent" href="discussion.php?id='.$userid.'&noframesjs=1">'.get_string('noframesjs', 'message').'</a></div>';
$PAGE->requires->js_function_call('set_focus', Array('edit-message'));
- print_footer('empty');
+ echo $OUTPUT->footer();
}
?>
message_unblock_contact($unblockcontact);
}
- print_header('','','','','',false,'','',false,'');
+ //$PAGE->set_title('Message History');
+ $PAGE->set_generaltype('popup');
+ echo $OUTPUT->header();
echo '<table width="100%" cellpadding="0" cellspacing="0"><tr>';
echo '<td width="100">';
echo print_user_picture($user, SITEID, $user->picture, true, true, true, 'userwindow').'</td>';
echo '<div class="name">'.fullname($user).'</div>';
- //echo '<br /><font size="1">'; /// Print login status of this user
- //if ($user->lastaccess) {
- // if (time() - $user->lastaccess > $CFG->message_offline_time) {
- // echo get_string('offline', 'message').': '.format_time(time() - $user->lastaccess);
- // } else {
- // echo get_string('lastaccess').': '.get_string('ago', 'message', format_time(time() - $user->lastaccess));
- // }
- //} else {
- // echo get_string("lastaccess").":". get_string("never");
- //}
- //echo '</font>';
-
echo '<div class="commands">';
if ($contact = $DB->get_record('message_contacts', array('userid'=>$USER->id, 'contactid'=>$user->id))) {
if ($contact->blocked) {
echo '</td></tr></table>';
- print_footer('empty');
+ echo $OUTPUT->footer();
?>
padding-left: 20px;
}
+body.message .messagejsautorefresh {
+ display:none;
+}
+body.message .messagejsmanualrefresh {
+ display:block;
+}
+body.jsenabled .messagejsautorefresh {
+ display:block;
+}
+body.jsenabled .messagejsmanualrefresh {
+ display:none;
+}
+
+
/***
*** Notes
***/