wwwroot); } if (empty($CFG->messaging)) { error("Messaging is disabled on this site"); } /// Script parameters $userid = required_param('id', PARAM_INT); $noframesjs = optional_param('noframesjs', 0, PARAM_BOOL); /// Check the user we are talking to is valid if (! $user = get_record('user', 'id', $userid)) { error("User ID was incorrect"); } if ($user->deleted) { print_header(); print_heading(get_string('userdeleted')); print_footer(); die; } /// Check if frame&jsless mode selected if (!get_user_preferences('message_noframesjs', 0) and !$noframesjs) { /// Print frameset to contain all the various panes @header('Content-Type: text/html; charset=utf-8'); ?> <?php echo get_string('discussion', 'message').': '.fullname($user) ?> <body><?php echo '<a href="discussion.php?id='.$userid.'&amp;noframesjs=1">'.get_string('noframesjs', 'message').'</a>'; ?></body> id, $addcontact); message_add_contact($addcontact); } if ($removecontact and confirm_sesskey()) { add_to_log(SITEID, 'message', 'remove contact', 'discussion.php?user1='.$removecontact.'&user2='.$USER->id, $removecontact); message_remove_contact($removecontact); } if ($blockcontact and confirm_sesskey()) { add_to_log(SITEID, 'message', 'block contact', 'discussion.php?user1='.$blockcontact.'&user2='.$USER->id, $blockcontact); message_block_contact($blockcontact); } if ($unblockcontact and confirm_sesskey()) { add_to_log(SITEID, 'message', 'unblock contact', 'history.php?user1='.$unblockcontact.'&user2='.$USER->id, $unblockcontact); message_unblock_contact($unblockcontact); } /// Check that the user is not blocking us!! if ($contact = get_record('message_contacts', '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')); exit; } } if (get_user_preferences('message_blocknoncontacts', 0, $user->id)) { // User is blocking non-contacts if (empty($contact)) { // We are not a contact! print_heading(get_string('userisblockingyounoncontact', 'message')); exit; } } $refreshedmessage = ''; if (!empty($refresh) and data_submitted()) { $refreshedmessage = $message; } else if (empty($refresh) and data_submitted() and confirm_sesskey()) { if ($message!='') { message_post_message($USER, $user, $message, $format, 'direct'); } redirect('discussion.php?id='.$userid.'&start='.$start.'&noframesjs='.$noframesjs.'&newonly='.$newonly.'&last='.$last); } $userfullname = fullname($user); $mefullname = fullname($USER); print_header(get_string('discussion', 'message').': '.fullname($user), '', '', 'edit-message'); echo '
'; echo '
'; echo print_user_picture($user, SITEID, $user->picture, 48, true, true, 'userwindow'); echo '

'.$userfullname.'

'; echo '
    '; if ($contact = get_record('message_contacts', 'userid', $USER->id, 'contactid', $user->id)) { if ($contact->blocked) { echo '
  • '; message_contact_link($user->id, 'add', false, 'discussion.php?id='.$user->id.'&noframesjs='.$noframesjs.'&newonly='.$newonly.'&last='.$last, true); echo '
  • '; message_contact_link($user->id, 'unblock', false, 'discussion.php?id='.$user->id.'&noframesjs='.$noframesjs.'&newonly='.$newonly.'&last='.$last, true); echo '
  • '; } else { echo '
  • '; message_contact_link($user->id, 'remove', false, 'discussion.php?id='.$user->id.'&noframesjs='.$noframesjs.'&newonly='.$newonly.'&last='.$last, true); echo '
  • '; message_contact_link($user->id, 'block', false, 'discussion.php?id='.$user->id.'&noframesjs='.$noframesjs.'&newonly='.$newonly.'&last='.$last, true); echo '
  • '; } } else { echo '
  • '; message_contact_link($user->id, 'add', false, 'discussion.php?id='.$user->id.'&noframesjs='.$noframesjs.'&newonly='.$newonly.'&last='.$last, true); echo '
  • '; message_contact_link($user->id, 'block', false, 'discussion.php?id='.$user->id.'&noframesjs='.$noframesjs.'&newonly='.$newonly.'&last='.$last, true); echo '
  • '; } echo '
  • '; message_history_link($user->id, 0, false, '', '', 'both'); echo '
  • '; echo '
'; echo '
'; echo '
'; // class="userinfo" echo '
'; echo '
'; $usehtmleditor = (can_use_html_editor() && get_user_preferences('message_usehtmleditor', 0)); echo '

'; echo '
'; if ($usehtmleditor) { print_textarea(true, 8, 34, 100, 100, 'message', $refreshedmessage); use_html_editor('message', 'formatblock subscript superscript copy cut paste clean undo redo justifyleft justifycenter justifyright justifyfull lefttoright righttoleft insertorderedlist insertunorderedlist outdent indent inserthorizontalrule createanchor nolink inserttable'); echo ''; } else { print_textarea(false, 8, 50, 0, 0, 'message', $refreshedmessage); echo ''; } echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ' '; echo ''; echo ''; echo '
'; echo '
'; echo '
'; echo '
'; echo '

'.get_string('messages', 'message').'

'; $allmessages = array(); $playbeep = false; $options = new object(); $options->para = false; $options->newlines = true; if ($newonly) { $lastsql = " AND timecreated > $last"; } else { $lastsql = ""; } if ($messages = get_records_select('message_read', "(useridto = '$USER->id' AND useridfrom = '$userid' AND timeread > '$start' $lastsql) OR (useridto = '$userid' AND useridfrom = '$USER->id' AND timeread > '$start' $lastsql)")) { foreach ($messages as $message) { $time = userdate($message->timecreated, get_string('strftimedatetimeshort')); if ($message->useridfrom == $USER->id) { $fullname = $mefullname; } else { $fullname = $userfullname; } $printmessage = format_text($message->message, $message->format, $options, 0); $printmessage = '
'.$fullname.' '. '['.$time.']: '. ''.$printmessage.'
'; $i=0; $sortkey = $message->timecreated."$i"; // we need string bacause we would run out of int range while (array_key_exists($sortkey, $allmessages)) { $i++; $sortkey = $message->timecreated."$i"; } $allmessages[$sortkey] = $printmessage; } } if ($messages = get_records_select('message', "useridto = '$userid' AND useridfrom = '$USER->id' $lastsql")) { foreach ($messages as $message) { $time = userdate($message->timecreated, get_string('strftimedatetimeshort')); $printmessage = format_text($message->message, $message->format, $options, 0); $printmessage = '
'.$mefullname.' '. '['.$time.']: '. ''.$printmessage.'
'; $i=0; $sortkey = $message->timecreated."$i"; // we need string bacause we would run out of int range while (array_key_exists($sortkey, $allmessages)) { $i++; $sortkey = $message->timecreated."$i"; } $allmessages[$sortkey] = $printmessage; } } if ($messages = get_records_select('message', "useridto = '$USER->id' AND useridfrom = '$userid' $lastsql")) { foreach ($messages as $message) { $time = userdate($message->timecreated, get_string('strftimedatetimeshort')); $printmessage = format_text($message->message, $message->format, $options, 0); $printmessage = '
'.$userfullname.' '. '['.$time.']: '. ''.$printmessage.'
'; $i=0; $sortkey = $message->timecreated."$i"; // we need string bacause we would run out of int range while (array_key_exists($sortkey, $allmessages)) { $i++; $sortkey = $message->timecreated."$i"; } $allmessages[$sortkey] = $printmessage; /// Move the entry to the other table $messageid = $message->id; unset($message->id); $message->timeread = time(); $message = addslashes_object($message); if (insert_record('message_read', $message)) { delete_records('message', 'id', $messageid); } if ($message->timecreated < $start) { $start = $message->timecreated; // move start back so that we see all current history } } $playbeep = true; } krsort($allmessages); if (empty($allmessages)) { echo get_string('nomessagesfound', 'message'); } else { echo ''; if ($playbeep and get_user_preferences('message_beepnewmessage', 0)) { echo ''; } } echo '
'; print_footer('none'); ?>