. /** * Main interface window for messaging * * @author Luis Rodrigues and Martin Dougiamas * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @package message */ require('../config.php'); require('lib.php'); require_login(0, false); if (has_capability('moodle/legacy:guest', get_context_instance(CONTEXT_SYSTEM), 0, false)) { redirect($CFG->wwwroot); } if (empty($CFG->messaging)) { print_error('disabled', 'message'); } /// Optional variables that may be passed in $tab = optional_param('tab', 'contacts', PARAM_ALPHA); // current tab - default to contacts $addcontact = optional_param('addcontact', 0, PARAM_INT); // adding a contact $removecontact = optional_param('removecontact', 0, PARAM_INT); // removing a contact $blockcontact = optional_param('blockcontact', 0, PARAM_INT); // blocking a contact $unblockcontact = optional_param('unblockcontact', 0, PARAM_INT); // unblocking a contact $popup = optional_param('popup', false, PARAM_ALPHANUM); // If set then starts a new popup window $url = new moodle_url($CFG->wwwroot.'/message/index.php'); if ($tab !== 'contacts') { $url->param('tab', $tab); } if ($addcontact !== 0) { $url->param('addcontact', $addcontact); } if ($removecontact !== 0) { $url->param('removecontact', $removecontact); } if ($blockcontact !== 0) { $url->param('blockcontact', $blockcontact); } if ($unblockcontact !== 0) { $url->param('unblockcontact', $unblockcontact); } if ($popup !== false) { $url->param('popup', $popup); } $PAGE->set_url($url); /// Popup a window if required and quit (usually from external links). if ($popup) { $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; } /// Process any contact maintenance requests there may be if ($addcontact and confirm_sesskey()) { add_to_log(SITEID, 'message', 'add contact', 'history.php?user1='.$addcontact.'&user2='.$USER->id, $addcontact); message_add_contact($addcontact); } if ($removecontact and confirm_sesskey()) { add_to_log(SITEID, 'message', 'remove contact', 'history.php?user1='.$removecontact.'&user2='.$USER->id, $removecontact); message_remove_contact($removecontact); } if ($blockcontact and confirm_sesskey()) { add_to_log(SITEID, 'message', 'block contact', 'history.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); } /// Header on this page if ($tab == 'contacts') { $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 '
'; $tabrow = array(); $tabrow[] = new tabobject('contacts', $CFG->wwwroot.'/message/index.php?tab=contacts', get_string('contacts', 'message')); $tabrow[] = new tabobject('search', $CFG->wwwroot.'/message/index.php?tab=search', get_string('search', 'message')); $tabrow[] = new tabobject('settings', $CFG->wwwroot.'/message/index.php?tab=settings', get_string('settings', 'message')); $tabrows = array($tabrow); print_tabs($tabrows, $tab); echo ' | '; echo '
'; /// a print function is associated with each tab $tabprintfunction = 'message_print_'.$tab; if (function_exists($tabprintfunction)) { $tabprintfunction(); } echo ' |