diff --git a/message/edit.php b/message/edit.php index 1e159f47f1b..8a52ea6449b 100644 --- a/message/edit.php +++ b/message/edit.php @@ -26,238 +26,244 @@ /** * Edit user message preferences * - * @author Luis Rodrigues + * @author Luis Rodrigues and Martin Dougiamas * @version $Id$ * @license http://www.gnu.org/copyleft/gpl.html GNU Public License * @package */ -require_once('../config.php'); -require_once($CFG->libdir.'/messagelib.php'); + require_once('../config.php'); + require_once($CFG->libdir.'/messagelib.php'); + $userid = optional_param('id', $USER->id, PARAM_INT); // user id + $course = optional_param('course', SITEID, PARAM_INT); // course id (defaults to Site) -httpsrequired(); + if (!$course = $DB->get_record('course', array('id' => $course))) { + print_error('invalidcourseid'); + } -$userid = optional_param('id', $USER->id, PARAM_INT); // user id -$course = optional_param('course', SITEID, PARAM_INT); // course id (defaults to Site) + if ($course->id != SITEID) { + require_login($course); -if (!$course = $DB->get_record('course', array('id' => $course))) { - print_error('invalidcourseid'); -} - -if ($course->id != SITEID) { - require_login($course); -} else { - if (!isloggedin()) { - if (empty($SESSION->wantsurl)) { - $SESSION->wantsurl = $CFG->httpswwwroot.'/message/edit.php'; + } else { + if (!isloggedin()) { + if (empty($SESSION->wantsurl)) { + $SESSION->wantsurl = $CFG->httpswwwroot.'/message/edit.php'; + } + redirect($CFG->httpswwwroot.'/login/index.php'); } - redirect($CFG->httpswwwroot.'/login/index.php'); } -} -if (isguestuser()) { - print_error('guestnoeditmessage', 'message'); -} - -if (!$user = $DB->get_record('user', array('id' => $userid))) { - print_error('invaliduserid'); -} - -$systemcontext = get_context_instance(CONTEXT_SYSTEM); -$personalcontext = get_context_instance(CONTEXT_USER, $user->id); -$coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); - - -// check access control -if ($user->id == $USER->id) { - //editing own message profile - require_capability('moodle/user:editownmessageprofile', $systemcontext); - -} else { - // teachers, parents, etc. - require_capability('moodle/user:editmessageprofile', $personalcontext); - // no editing of guest user account - if (isguestuser($user->id)) { - print_error('guestnoeditmessageother', 'message'); + if (isguestuser()) { + print_error('guestnoeditmessage', 'message'); } - // no editing of primary admin! - $mainadmin = get_admin(); - if ($user->id == $mainadmin->id) { - print_error('adminprimarynoedit'); - } -} -//save new preferences if data was submited -if ( ($form = data_submitted()) && confirm_sesskey()) { - $preferences = array(); + if (!$user = $DB->get_record('user', array('id' => $userid))) { + print_error('invaliduserid'); + } + + $systemcontext = get_context_instance(CONTEXT_SYSTEM); + $personalcontext = get_context_instance(CONTEXT_USER, $user->id); + $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); + + + // check access control + if ($user->id == $USER->id) { + //editing own message profile + require_capability('moodle/user:editownmessageprofile', $systemcontext); + + } else { + // teachers, parents, etc. + require_capability('moodle/user:editmessageprofile', $personalcontext); + // no editing of guest user account + if (isguestuser($user->id)) { + print_error('guestnoeditmessageother', 'message'); + } + // no editing of primary admin! + $mainadmin = get_admin(); + if ($user->id == $mainadmin->id) { + print_error('adminprimarynoedit'); + } + } + +/// Save new preferences if data was submited + + if (($form = data_submitted()) && confirm_sesskey()) { + $preferences = array(); /// Set all the preferences for all the message providers + $providers = message_get_my_providers(); + foreach ( $providers as $providerid => $provider){ + foreach (array('loggedin', 'loggedoff') as $state){ + $linepref = ''; + foreach ($form->{$provider->component.'_'.$provider->name.'_'.$state} as $process=>$one){ + if ($linepref == ''){ + $linepref = $process; + } else { + $linepref .= ','.$process; + } + } + $preferences['message_provider_'.$provider->component.'_'.$provider->name.'_'.$state] = $linepref; + } + } + + /// Set all the processor options as well + $processors = $DB->get_records('message_processors'); + foreach ( $processors as $processorid => $processor){ + $processorfile = $CFG->dirroot. '/message/output/'.$processor->name.'/message_output_'.$processor->name.'.php'; + if ( is_readable($processorfile) ) { + include_once( $processorfile ); + + $processclass = 'message_output_' . $processor->name; + if ( class_exists($processclass) ){ + $pclass = new $processclass(); + $pclass->process_form($form, $preferences); + } else{ + print_error('errorcallingprocessor', 'message'); + } + } + } + + /// Save all the new preferences to the database + if (!set_user_preferences( $preferences, $user->id ) ){ + print_error('cannotupdateusermsgpref'); + } + + redirect("$CFG->wwwroot/message/edit.php?id=$user->id&course=$course->id"); + } + +/// Load preferences + $preferences = new object(); + +/// Get providers preferences $providers = message_get_my_providers(); foreach ( $providers as $providerid => $provider){ foreach (array('loggedin', 'loggedoff') as $state){ - $linepref = ''; - foreach ($form->{$provider->component.'_'.$provider->name.'_'.$state} as $process=>$one){ - if ($linepref == ''){ - $linepref = $process; - } else { - $linepref .= ','.$process; - } + $linepref = get_user_preferences('message_provider_'.$provider->component.'_'.$provider->name.'_'.$state, '', $user->id); + if ($linepref == ''){ + continue; + } + $lineprefarray = explode(',', $linepref); + $preferences->{$provider->component.'_'.$provider->name.'_'.$state} = array(); + foreach ($lineprefarray as $pref){ + $preferences->{$provider->component.'_'.$provider->name.'_'.$state}[$pref] = 1; } - $preferences['message_provider_'.$provider->component.'_'.$provider->name.'_'.$state] = $linepref; } } - /// Set all the processor options as well +/// For every processors put its options on the form (need to get function from processor's lib.php) $processors = $DB->get_records('message_processors'); - foreach ( $processors as $processorid => $processor){ + foreach ( $processors as $processorid => $processor){ $processorfile = $CFG->dirroot. '/message/output/'.$processor->name.'/message_output_'.$processor->name.'.php'; if ( is_readable($processorfile) ) { - include_once( $processorfile ); - + include_once( $processorfile ); $processclass = 'message_output_' . $processor->name; if ( class_exists($processclass) ){ $pclass = new $processclass(); - $pclass->process_form($form, $preferences); + $pclass->load_data($preferences, $user->id); } else{ print_error('errorcallingprocessor', 'message'); } } } - /// Save all the new preferences to the database - if (!set_user_preferences( $preferences, $user->id ) ){ - print_error('cannotupdateusermsgpref'); - } - - redirect("$CFG->wwwroot/message/edit.php?id=$user->id&course=$course->id"); -} - -//load preferences so show -$preferences = new object(); - -//get providers preferences -$providers = message_get_my_providers(); -foreach ( $providers as $providerid => $provider){ - foreach (array('loggedin', 'loggedoff') as $state){ - $linepref = get_user_preferences('message_provider_'.$provider->component.'_'.$provider->name.'_'.$state, '', $user->id); - if ($linepref == ''){ - continue; - } - $lineprefarray = explode(',', $linepref); - $preferences->{$provider->component.'_'.$provider->name.'_'.$state} = array(); - foreach ($lineprefarray as $pref){ - $preferences->{$provider->component.'_'.$provider->name.'_'.$state}[$pref] = 1; - } - } -} - -//for every processors put its options on the form (need to get funcion from processor's lib.php) -$processors = $DB->get_records('message_processors'); -foreach ( $processors as $processorid => $processor){ - $processorfile = $CFG->dirroot. '/message/output/'.$processor->name.'/message_output_'.$processor->name.'.php'; - if ( is_readable($processorfile) ) { - include_once( $processorfile ); - $processclass = 'message_output_' . $processor->name; - if ( class_exists($processclass) ){ - $pclass = new $processclass(); - $pclass->load_data($preferences, $user->id); - } else{ - print_error('errorcallingprocessor', 'message'); - } - } -} /// Display page header -$streditmymessage = get_string('editmymessage', 'message'); -$strparticipants = get_string('participants'); -$userfullname = fullname($user, true); + $streditmymessage = get_string('editmymessage', 'message'); + $strparticipants = get_string('participants'); + $userfullname = fullname($user, true); -$navlinks = array(); -if (has_capability('moodle/course:viewparticipants', $coursecontext) || - has_capability('moodle/site:viewparticipants', $systemcontext)) { - $navlinks[] = array('name' => $strparticipants, 'link' => "index.php?id=$course->id", 'type' => 'misc'); -} -$navlinks[] = array('name' => $userfullname, - 'link' => "view.php?id=$user->id&course=$course->id", - 'type' => 'misc'); -$navlinks[] = array('name' => $streditmymessage, 'link' => null, 'type' => 'misc'); -$navigation = build_navigation($navlinks); + $navlinks = array(); + if (has_capability('moodle/course:viewparticipants', $coursecontext) || + has_capability('moodle/site:viewparticipants', $systemcontext)) { + $navlinks[] = array('name' => $strparticipants, 'link' => "index.php?id=$course->id", 'type' => 'misc'); + } + $navlinks[] = array('name' => $userfullname, + 'link' => "view.php?id=$user->id&course=$course->id", + 'type' => 'misc'); + $navlinks[] = array('name' => $streditmymessage, 'link' => null, 'type' => 'misc'); + $navigation = build_navigation($navlinks); + + if ($course->id != SITEID) { + print_header("$course->shortname: $streditmymessage", "$course->fullname: $streditmymessage", $navigation); + } else { + print_header("$course->shortname: $streditmymessage", $course->fullname, $navigation); + } -if ($course->id != SITEID) { - print_header("$course->shortname: $streditmymessage", "$course->fullname: $streditmymessage", $navigation); -} else { - print_header("$course->shortname: $streditmymessage", $course->fullname, $navigation); -} /// Print tabs at the top -$showroles = 1; -$currenttab = 'editmessage'; -require('../user/tabs.php'); + $showroles = 1; + $currenttab = 'editmessage'; + require('../user/tabs.php'); -echo '
"; + foreach ($processors as $processorid => $processor) { + $processorfile = $CFG->dirroot. '/message/output/'.$processor->name.'/message_output_'.$processor->name.'.php'; + if (is_readable($processorfile)) { + include_once($processorfile); + $processclass = 'message_output_' . $processor->name; -/// and proper footer -print_footer($course); + if (class_exists($processclass)) { + $pclass = new $processclass(); + echo ''; + + } else{ + print_error('errorcallingprocessor', 'message'); + } + } + } + + echo ''; + echo ''; + + echo ""; + + +/// Finish with a footer + print_footer($course); ?> diff --git a/message/output/email/message_output_email.php b/message/output/email/message_output_email.php index 5956f4757bd..e3a8bc66cce 100644 --- a/message/output/email/message_output_email.php +++ b/message/output/email/message_output_email.php @@ -84,13 +84,11 @@ class message_output_email extends message_output { */ function config_form($preferences){ global $USER; - echo ''; + return $string; } /** diff --git a/message/output/jabber/message_output_jabber.php b/message/output/jabber/message_output_jabber.php index 766d504a227..817f9603af7 100644 --- a/message/output/jabber/message_output_jabber.php +++ b/message/output/jabber/message_output_jabber.php @@ -83,10 +83,7 @@ class message_output_jabber extends message_output { * @param object $mform preferences form class */ function config_form($preferences){ - echo ''; + return get_string('jabberid', 'messageprocessor_jabber').': '; } /** diff --git a/message/output/popup/message_output_popup.php b/message/output/popup/message_output_popup.php index 8e281451a55..16986d99de0 100644 --- a/message/output/popup/message_output_popup.php +++ b/message/output/popup/message_output_popup.php @@ -63,15 +63,12 @@ class message_output_popup extends message_output{ } function config_form($preferences) { - echo ''; + return '| '.get_string('showmessagewindow', 'message').': | showmessagewindow==1?" checked=\"checked\"":"").' /> |
| '.get_string('blocknoncontacts', 'message').': | blocknoncontacts==1?" checked=\"checked\"":"").' /> |
| '.get_string('beepnewmessage', 'message').': | beepnewmessage==1?" checked=\"checked\"":"").' /> |
| '.get_string('noframesjs', 'message').': | noframesjs==1?" checked=\"checked\"":"").' /> |