mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 14:03:52 +01:00
138 lines
4.6 KiB
PHP
138 lines
4.6 KiB
PHP
<?php
|
|
|
|
// This file is part of Moodle - http://moodle.org/
|
|
//
|
|
// Moodle is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// Moodle is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
/**
|
|
* 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 (isguestuser()) {
|
|
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('/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_pagelayout('popup');
|
|
echo $OUTPUT->header();
|
|
echo html_writer::script(js_writer::function_call('openpopup', Array('/message/index.php', 'message', 'menubar=0,location=0,scrollbars,status,resizable,width=400,height=500', 0)));
|
|
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_pagelayout('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>';
|
|
|
|
/// Print out the tabs
|
|
echo '<td>';
|
|
$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 '</td>';
|
|
|
|
|
|
echo '</tr><tr>';
|
|
|
|
/// Print out contents of the tab
|
|
echo '<td>';
|
|
|
|
/// a print function is associated with each tab
|
|
$tabprintfunction = 'message_print_'.$tab;
|
|
if (function_exists($tabprintfunction)) {
|
|
$tabprintfunction();
|
|
}
|
|
|
|
echo '</td> </tr> </table>';
|
|
echo $OUTPUT->footer();
|
|
|