mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
Merge branch 'MDL-64495-master' of https://github.com/aanabit/moodle
This commit is contained in:
commit
a3d85254f1
13 changed files with 233 additions and 112 deletions
|
@ -25,47 +25,101 @@ require_once(__DIR__ . '/../config.php');
|
|||
require_once($CFG->dirroot . '/message/lib.php');
|
||||
require_once($CFG->libdir.'/adminlib.php');
|
||||
|
||||
// This is an admin page
|
||||
// This is an admin page.
|
||||
admin_externalpage_setup('managemessageoutputs');
|
||||
|
||||
// Get the submitted params
|
||||
$disable = optional_param('disable', 0, PARAM_INT);
|
||||
$enable = optional_param('enable', 0, PARAM_INT);
|
||||
// Fetch processors.
|
||||
$allprocessors = get_message_processors();
|
||||
$processors = array_filter($allprocessors, function($processor) {
|
||||
return $processor->enabled;
|
||||
});
|
||||
// Fetch message providers.
|
||||
$providers = get_message_providers();
|
||||
// Fetch the manage message outputs interface.
|
||||
$preferences = get_message_output_default_preferences();
|
||||
|
||||
$headingtitle = get_string('managemessageoutputs', 'message');
|
||||
if (($form = data_submitted()) && confirm_sesskey()) {
|
||||
$preferences = array();
|
||||
// Prepare default message outputs settings.
|
||||
foreach ($providers as $provider) {
|
||||
$componentproviderbase = $provider->component.'_'.$provider->name;
|
||||
$disableprovidersetting = $componentproviderbase.'_disable';
|
||||
$providerdisabled = false;
|
||||
if (!isset($form->$disableprovidersetting)) {
|
||||
$providerdisabled = true;
|
||||
$preferences[$disableprovidersetting] = 1;
|
||||
} else {
|
||||
$preferences[$disableprovidersetting] = 0;
|
||||
}
|
||||
|
||||
if (!empty($disable) && confirm_sesskey()) {
|
||||
if (!$processor = $DB->get_record('message_processors', array('id'=>$disable))) {
|
||||
print_error('outputdoesnotexist', 'message');
|
||||
foreach (array('permitted', 'loggedin', 'loggedoff') as $setting) {
|
||||
$value = null;
|
||||
$componentprovidersetting = $componentproviderbase.'_'.$setting;
|
||||
if ($setting == 'permitted') {
|
||||
// If we deal with permitted select element, we need to create individual
|
||||
// setting for each possible processor. Note that this block will
|
||||
// always be processed first after entring parental foreach iteration
|
||||
// so we can change form values on this stage.
|
||||
foreach ($allprocessors as $processor) {
|
||||
$value = '';
|
||||
if (isset($form->{$componentprovidersetting}[$processor->name])) {
|
||||
$value = $form->{$componentprovidersetting}[$processor->name];
|
||||
}
|
||||
// Ensure that loggedin loggedoff options are set correctly for this permission.
|
||||
if (($value == 'disallowed') || $providerdisabled) {
|
||||
// It might be better to unset them, but I can't figure out why that cause error.
|
||||
$form->{$componentproviderbase.'_loggedin'}[$processor->name] = 0;
|
||||
$form->{$componentproviderbase.'_loggedoff'}[$processor->name] = 0;
|
||||
} else if ($value == 'forced') {
|
||||
$form->{$componentproviderbase.'_loggedin'}[$processor->name] = 1;
|
||||
$form->{$componentproviderbase.'_loggedoff'}[$processor->name] = 1;
|
||||
}
|
||||
// Record the site preference.
|
||||
$preferences[$processor->name.'_provider_'.$componentprovidersetting] = $value;
|
||||
}
|
||||
} else if (array_key_exists($componentprovidersetting, $form)) {
|
||||
// We must be processing loggedin or loggedoff checkboxes. Store
|
||||
// defained comma-separated processors as setting value.
|
||||
// Using array_filter eliminates elements set to 0 above.
|
||||
$value = join(',', array_keys(array_filter($form->{$componentprovidersetting})));
|
||||
if (empty($value)) {
|
||||
$value = null;
|
||||
}
|
||||
}
|
||||
if ($setting != 'permitted') {
|
||||
// We have already recoded site preferences for 'permitted' type.
|
||||
$preferences['message_provider_'.$componentprovidersetting] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
\core_message\api::update_processor_status($processor, 0); // Disable output.
|
||||
core_plugin_manager::reset_caches();
|
||||
}
|
||||
|
||||
if (!empty($enable) && confirm_sesskey()) {
|
||||
if (!$processor = $DB->get_record('message_processors', array('id'=>$enable))) {
|
||||
print_error('outputdoesnotexist', 'message');
|
||||
// Update database.
|
||||
$transaction = $DB->start_delegated_transaction();
|
||||
|
||||
// Save processors enabled/disabled status.
|
||||
foreach ($allprocessors as $processor) {
|
||||
$enabled = isset($form->{$processor->name});
|
||||
\core_message\api::update_processor_status($processor, $enabled);
|
||||
}
|
||||
\core_message\api::update_processor_status($processor, 1); // Enable output.
|
||||
core_plugin_manager::reset_caches();
|
||||
}
|
||||
|
||||
if ($disable || $enable) {
|
||||
foreach ($preferences as $name => $value) {
|
||||
set_config($name, $value, 'message');
|
||||
}
|
||||
$transaction->allow_commit();
|
||||
|
||||
core_plugin_manager::reset_caches();
|
||||
|
||||
$url = new moodle_url('message.php');
|
||||
redirect($url);
|
||||
}
|
||||
|
||||
// Page settings
|
||||
$PAGE->set_context(context_system::instance());
|
||||
$PAGE->requires->js_init_call('M.core_message.init_defaultoutputs');
|
||||
|
||||
// Grab the renderer
|
||||
$renderer = $PAGE->get_renderer('core', 'message');
|
||||
|
||||
// Display the manage message outputs interface
|
||||
$processors = get_message_processors();
|
||||
$messageoutputs = $renderer->manage_messageoutputs($processors);
|
||||
|
||||
// Display the page
|
||||
// Display the page.
|
||||
echo $OUTPUT->header();
|
||||
echo $OUTPUT->heading($headingtitle);
|
||||
echo $messageoutputs;
|
||||
echo $renderer->manage_messageoutput_settings($allprocessors, $processors, $providers, $preferences);
|
||||
echo $OUTPUT->footer();
|
||||
|
|
78
admin/settings/messaging.php
Normal file
78
admin/settings/messaging.php
Normal file
|
@ -0,0 +1,78 @@
|
|||
<?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/>.
|
||||
|
||||
/**
|
||||
* Adds messaging related settings links for Messaging category to admin tree.
|
||||
*
|
||||
* @copyright 2019 Amaia Anabitarte <amaia@moodle.com>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
if ($hassiteconfig) {
|
||||
$temp = new admin_settingpage('messages', new lang_string('messagingssettings', 'admin'));
|
||||
$temp->add(new admin_setting_configcheckbox('messaging',
|
||||
new lang_string('messaging', 'admin'),
|
||||
new lang_string('configmessaging', 'admin'),
|
||||
1));
|
||||
$temp->add(new admin_setting_configcheckbox('messagingallusers',
|
||||
new lang_string('messagingallusers', 'admin'),
|
||||
new lang_string('configmessagingallusers', 'admin'),
|
||||
0)
|
||||
);
|
||||
$temp->add(new admin_setting_configcheckbox('messagingdefaultpressenter',
|
||||
new lang_string('messagingdefaultpressenter', 'admin'),
|
||||
new lang_string('configmessagingdefaultpressenter', 'admin'),
|
||||
1)
|
||||
);
|
||||
$options = array(
|
||||
DAYSECS => new lang_string('secondstotime86400'),
|
||||
WEEKSECS => new lang_string('secondstotime604800'),
|
||||
2620800 => new lang_string('nummonths', 'moodle', 1),
|
||||
7862400 => new lang_string('nummonths', 'moodle', 3),
|
||||
15724800 => new lang_string('nummonths', 'moodle', 6),
|
||||
0 => new lang_string('never')
|
||||
);
|
||||
$temp->add(new admin_setting_configselect(
|
||||
'messagingdeletereadnotificationsdelay',
|
||||
new lang_string('messagingdeletereadnotificationsdelay', 'admin'),
|
||||
new lang_string('configmessagingdeletereadnotificationsdelay', 'admin'),
|
||||
604800,
|
||||
$options)
|
||||
);
|
||||
$temp->add(new admin_setting_configselect(
|
||||
'messagingdeleteallnotificationsdelay',
|
||||
new lang_string('messagingdeleteallnotificationsdelay', 'admin'),
|
||||
new lang_string('configmessagingdeleteallnotificationsdelay', 'admin'),
|
||||
2620800,
|
||||
$options)
|
||||
);
|
||||
$temp->add(new admin_setting_configcheckbox('messagingallowemailoverride',
|
||||
new lang_string('messagingallowemailoverride', 'admin'),
|
||||
new lang_string('configmessagingallowemailoverride', 'admin'),
|
||||
0));
|
||||
$ADMIN->add('messaging', $temp);
|
||||
$ADMIN->add('messaging', new admin_page_managemessageoutputs());
|
||||
|
||||
// Notification outputs plugins.
|
||||
$plugins = core_plugin_manager::instance()->get_plugins_of_type('message');
|
||||
core_collator::asort_objects_by_property($plugins, 'displayname');
|
||||
foreach ($plugins as $plugin) {
|
||||
/** @var \core\plugininfo\message $plugin */
|
||||
$plugin->load_settings($ADMIN, 'messaging', $hassiteconfig);
|
||||
}
|
||||
}
|
|
@ -81,17 +81,6 @@ if ($hassiteconfig) {
|
|||
$plugin->load_settings($ADMIN, 'blocksettings', $hassiteconfig);
|
||||
}
|
||||
|
||||
// message outputs
|
||||
$ADMIN->add('modules', new admin_category('messageoutputs', new lang_string('messageoutputs', 'message')));
|
||||
$ADMIN->add('messageoutputs', new admin_page_managemessageoutputs());
|
||||
$ADMIN->add('messageoutputs', new admin_page_defaultmessageoutputs());
|
||||
$plugins = core_plugin_manager::instance()->get_plugins_of_type('message');
|
||||
core_collator::asort_objects_by_property($plugins, 'displayname');
|
||||
foreach ($plugins as $plugin) {
|
||||
/** @var \core\plugininfo\message $plugin */
|
||||
$plugin->load_settings($ADMIN, 'messageoutputs', $hassiteconfig);
|
||||
}
|
||||
|
||||
// authentication plugins
|
||||
$ADMIN->add('modules', new admin_category('authsettings', new lang_string('authentication', 'admin')));
|
||||
|
||||
|
|
|
@ -13,45 +13,6 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
|
|||
|
||||
$optionalsubsystems->add(new admin_setting_configcheckbox('enablewebservices', new lang_string('enablewebservices', 'admin'), new lang_string('configenablewebservices', 'admin'), 0));
|
||||
|
||||
$optionalsubsystems->add(new admin_setting_configcheckbox('messaging', new lang_string('messaging', 'admin'), new lang_string('configmessaging','admin'), 1));
|
||||
|
||||
$optionalsubsystems->add(new admin_setting_configcheckbox('messagingallusers',
|
||||
new lang_string('messagingallusers', 'admin'),
|
||||
new lang_string('configmessagingallusers', 'admin'),
|
||||
0)
|
||||
);
|
||||
|
||||
$optionalsubsystems->add(new admin_setting_configcheckbox('messagingdefaultpressenter',
|
||||
new lang_string('messagingdefaultpressenter', 'admin'),
|
||||
new lang_string('configmessagingdefaultpressenter', 'admin'),
|
||||
1)
|
||||
);
|
||||
|
||||
$options = array(
|
||||
DAYSECS => new lang_string('secondstotime86400'),
|
||||
WEEKSECS => new lang_string('secondstotime604800'),
|
||||
2620800 => new lang_string('nummonths', 'moodle', 1),
|
||||
7862400 => new lang_string('nummonths', 'moodle', 3),
|
||||
15724800 => new lang_string('nummonths', 'moodle', 6),
|
||||
0 => new lang_string('never')
|
||||
);
|
||||
$optionalsubsystems->add(new admin_setting_configselect(
|
||||
'messagingdeletereadnotificationsdelay',
|
||||
new lang_string('messagingdeletereadnotificationsdelay', 'admin'),
|
||||
new lang_string('configmessagingdeletereadnotificationsdelay', 'admin'),
|
||||
604800,
|
||||
$options)
|
||||
);
|
||||
$optionalsubsystems->add(new admin_setting_configselect(
|
||||
'messagingdeleteallnotificationsdelay',
|
||||
new lang_string('messagingdeleteallnotificationsdelay', 'admin'),
|
||||
new lang_string('configmessagingdeleteallnotificationsdelay', 'admin'),
|
||||
2620800,
|
||||
$options)
|
||||
);
|
||||
|
||||
$optionalsubsystems->add(new admin_setting_configcheckbox('messagingallowemailoverride', new lang_string('messagingallowemailoverride', 'admin'), new lang_string('configmessagingallowemailoverride','admin'), 0));
|
||||
|
||||
$optionalsubsystems->add(new admin_setting_configcheckbox('enablestats', new lang_string('enablestats', 'admin'), new lang_string('configenablestats', 'admin'), 0));
|
||||
|
||||
$optionalsubsystems->add(new admin_setting_configcheckbox('enablerssfeeds', new lang_string('enablerssfeeds', 'admin'), new lang_string('configenablerssfeeds', 'admin'), 0));
|
||||
|
|
|
@ -33,6 +33,7 @@ $ADMIN->add('root', new admin_category('competencies', new lang_string('competen
|
|||
$ADMIN->add('root', new admin_category('badges', new lang_string('badges'), empty($CFG->enablebadges)));
|
||||
$ADMIN->add('root', new admin_category('location', new lang_string('location','admin')));
|
||||
$ADMIN->add('root', new admin_category('language', new lang_string('language')));
|
||||
$ADMIN->add('root', new admin_category('messaging', new lang_string('messagingcategory', 'admin')));
|
||||
$ADMIN->add('root', new admin_category('modules', new lang_string('plugins', 'admin')));
|
||||
$ADMIN->add('root', new admin_category('security', new lang_string('security','admin')));
|
||||
$ADMIN->add('root', new admin_category('appearance', new lang_string('appearance','admin')));
|
||||
|
|
|
@ -773,9 +773,11 @@ $string['mediapluginyoutube'] = 'Enable YouTube links filter';
|
|||
$string['messaging'] = 'Enable messaging system';
|
||||
$string['messagingallowemailoverride'] = 'Notification email override';
|
||||
$string['messagingallusers'] = 'Allow site-wide messaging';
|
||||
$string['messagingcategory'] = 'Messaging';
|
||||
$string['messagingdefaultpressenter'] = 'Use enter to send enabled by default';
|
||||
$string['messagingdeletereadnotificationsdelay'] = 'Delete read notifications';
|
||||
$string['messagingdeleteallnotificationsdelay'] = 'Delete all notifications';
|
||||
$string['messagingssettings'] = 'Messaging settings';
|
||||
$string['minpassworddigits'] = 'Digits';
|
||||
$string['minpasswordlength'] = 'Password length';
|
||||
$string['minpasswordlower'] = 'Lowercase letters';
|
||||
|
|
|
@ -142,4 +142,8 @@ userisblockingyounoncontact,core_message
|
|||
error:invalidbadgeurl,core_badges
|
||||
nomessages,core_message
|
||||
searchallavailablecourses_desc,core_admin
|
||||
search:mycourse,core_search
|
||||
search:mycourse,core_search
|
||||
outputdisabled,core_message
|
||||
outputdoesnotexist,core_message
|
||||
outputenabled,core_message
|
||||
outputnotconfigured,core_message
|
||||
|
|
|
@ -47,7 +47,7 @@ $string['contactrequests'] = 'Contact requests';
|
|||
$string['contactrequestsent'] = 'Contact request sent';
|
||||
$string['contacts'] = 'Contacts';
|
||||
$string['decline'] = 'Decline';
|
||||
$string['defaultmessageoutputs'] = 'Default message outputs';
|
||||
$string['defaultmessageoutputs'] = 'Notification settings';
|
||||
$string['defaults'] = 'Defaults';
|
||||
$string['deleteallconfirm'] = "Are you sure you would like to delete this entire conversation? This will not delete it for other conversation participants.";
|
||||
$string['deleteallmessages'] = "Delete all messages";
|
||||
|
@ -90,8 +90,8 @@ $string['loggedindescription'] = 'When you are logged into Moodle';
|
|||
$string['loggedoff'] = 'Offline';
|
||||
$string['loggedoff_help'] = 'Configure how you would like to receive notifications when you are not logged into Moodle';
|
||||
$string['loggedoffdescription'] = 'When you are not logged into Moodle';
|
||||
$string['managemessageoutputs'] = 'Manage message outputs';
|
||||
$string['messageoutputs'] = 'Message outputs';
|
||||
$string['managemessageoutputs'] = 'Default notification preferences';
|
||||
$string['messageoutputs'] = 'Notification plugins';
|
||||
$string['messagepreferences'] = 'Message preferences';
|
||||
$string['message'] = 'Message';
|
||||
$string['messagecontactrequestsnotification'] = '{$a} wants to be added as a contact';
|
||||
|
@ -136,11 +136,7 @@ $string['offline'] = 'Offline';
|
|||
$string['on'] = 'On';
|
||||
$string['online'] = 'Online';
|
||||
$string['otherparticipants'] = 'Other participants';
|
||||
$string['outputdisabled'] = 'Output disabled';
|
||||
$string['outputdoesnotexist'] = 'Message output does not exist';
|
||||
$string['outputenabled'] = 'Output enabled';
|
||||
$string['outputnotavailable'] = 'Not available';
|
||||
$string['outputnotconfigured'] = 'Not configured';
|
||||
$string['participants'] = 'Participants';
|
||||
$string['permitted'] = 'Permitted';
|
||||
$string['privacy'] = 'Privacy';
|
||||
|
@ -267,3 +263,7 @@ $string['userisblockingyounoncontact'] = '{$a} only accepts messages from their
|
|||
|
||||
// Deprecated since Moodle 3.7.
|
||||
$string['nomessages'] = 'No messages';
|
||||
$string['outputdisabled'] = 'Output disabled';
|
||||
$string['outputdoesnotexist'] = 'Message output does not exist';
|
||||
$string['outputenabled'] = 'Output enabled';
|
||||
$string['outputnotconfigured'] = 'Not configured';
|
||||
|
|
|
@ -152,8 +152,8 @@ $string['type_local'] = 'Local plugin';
|
|||
$string['type_local_plural'] = 'Local plugins';
|
||||
$string['type_media'] = 'Media player';
|
||||
$string['type_media_plural'] = 'Media players';
|
||||
$string['type_message'] = 'Messaging output';
|
||||
$string['type_message_plural'] = 'Messaging outputs';
|
||||
$string['type_message'] = 'Notification plugin';
|
||||
$string['type_message_plural'] = 'Notification plugins';
|
||||
$string['type_mnetservice'] = 'MNet service';
|
||||
$string['type_mnetservice_plural'] = 'MNet services';
|
||||
$string['type_mod'] = 'Activity module';
|
||||
|
|
|
@ -6339,7 +6339,10 @@ class admin_page_managemessageoutputs extends admin_externalpage {
|
|||
*/
|
||||
public function __construct() {
|
||||
global $CFG;
|
||||
parent::__construct('managemessageoutputs', get_string('managemessageoutputs', 'message'), new moodle_url('/admin/message.php'));
|
||||
parent::__construct('managemessageoutputs',
|
||||
get_string('defaultmessageoutputs', 'message'),
|
||||
new moodle_url('/admin/message.php')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -6385,14 +6388,24 @@ class admin_page_managemessageoutputs extends admin_externalpage {
|
|||
/**
|
||||
* Default message outputs configuration
|
||||
*
|
||||
* @deprecated since Moodle 3.7 MDL-64495. Please use admin_page_managemessageoutputs instead.
|
||||
* @todo MDL-64866 This will be deleted in Moodle 4.1.
|
||||
*
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class admin_page_defaultmessageoutputs extends admin_page_managemessageoutputs {
|
||||
/**
|
||||
* Calls parent::__construct with specific arguments
|
||||
*
|
||||
* @deprecated since Moodle 3.7 MDL-64495. Please use admin_page_managemessageoutputs instead.
|
||||
* @todo MDL-64866 This will be deleted in Moodle 4.1.
|
||||
*/
|
||||
public function __construct() {
|
||||
global $CFG;
|
||||
|
||||
debugging('admin_page_defaultmessageoutputs class is deprecated. Please use admin_page_managemessageoutputs instead.',
|
||||
DEBUG_DEVELOPER);
|
||||
|
||||
admin_externalpage::__construct('defaultmessageoutputs', get_string('defaultmessageoutputs', 'message'), new moodle_url('/message/defaultoutputs.php'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@ attribute on forms to avoid collisions in forms loaded in AJAX requests.
|
|||
It is recommended that privacy providers using this function call rewrite any long query into a number of separate
|
||||
calls to add_from_sql for improved performance, and that the new argument is used.
|
||||
This will allow queries to remain backwards-compatible with older versions of Moodle but will have significantly better performance in version supporting the innerjoin parameter.
|
||||
* /message/defaultoutputs.php file and admin_page_defaultmessageoutputs class have been deprecated
|
||||
and all their settings moved to admin/message.php (see MDL-64495). Please use admin_page_managemessageoutputs class instead.
|
||||
|
||||
=== 3.6 ===
|
||||
|
||||
|
|
|
@ -20,6 +20,9 @@
|
|||
* @package core_message
|
||||
* @copyright 2011 Lancaster University Network Services Limited
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*
|
||||
* @deprecated since Moodle 3.7 MDL-64495. Please use /admin/message.php instead.
|
||||
* @todo MDL-64866 This will be deleted in Moodle 4.1.
|
||||
*/
|
||||
require_once(__DIR__ . '/../config.php');
|
||||
require_once($CFG->dirroot . '/message/lib.php');
|
||||
|
|
|
@ -36,6 +36,37 @@ defined('MOODLE_INTERNAL') || die();
|
|||
*/
|
||||
class core_message_renderer extends plugin_renderer_base {
|
||||
|
||||
/**
|
||||
* Display the interface to manage both message outputs and default message outputs
|
||||
*
|
||||
* @param array $allprocessors array of objects containing all message processors
|
||||
* @param array $processors array of objects containing active message processors
|
||||
* @param array $providers array of objects containing message providers
|
||||
* @param array $preferences array of objects containing current preferences
|
||||
* @return string The text to render
|
||||
*/
|
||||
public function manage_messageoutput_settings($allprocessors, $processors, $providers, $preferences) {
|
||||
$output = html_writer::start_tag('form', array('id' => 'defaultmessageoutputs', 'method' => 'post'));
|
||||
$output .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => 'sesskey', 'value' => sesskey()));
|
||||
|
||||
// Add message output processors enabled/disabled and settings.
|
||||
$output .= $this->heading(get_string('messageoutputs', 'message'));
|
||||
$output .= $this->manage_messageoutputs($allprocessors);
|
||||
|
||||
// Add active message output processors settings.
|
||||
$output .= $this->heading(get_string('managemessageoutputs', 'message'));
|
||||
$output .= $this->manage_defaultmessageoutputs($processors, $providers, $preferences);
|
||||
|
||||
$output .= html_writer::start_tag('div', array('class' => 'form-buttons'));
|
||||
$output .= html_writer::empty_tag('input',
|
||||
array('type' => 'submit', 'value' => get_string('savechanges', 'admin'), 'class' => 'form-submit btn btn-primary')
|
||||
);
|
||||
$output .= html_writer::end_tag('div');
|
||||
$output .= html_writer::end_tag('form');
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the interface to manage message outputs
|
||||
*
|
||||
|
@ -43,7 +74,6 @@ class core_message_renderer extends plugin_renderer_base {
|
|||
* @return string The text to render
|
||||
*/
|
||||
public function manage_messageoutputs($processors) {
|
||||
global $CFG;
|
||||
// Display the current workflows
|
||||
$table = new html_table();
|
||||
$table->attributes['class'] = 'admintable generaltable';
|
||||
|
@ -61,28 +91,21 @@ class core_message_renderer extends plugin_renderer_base {
|
|||
$row = new html_table_row();
|
||||
$row->attributes['class'] = 'messageoutputs';
|
||||
|
||||
// Name
|
||||
$name = new html_table_cell(get_string('pluginname', 'message_'.$processor->name));
|
||||
|
||||
// Enable
|
||||
$enable = new html_table_cell();
|
||||
$enable->attributes['class'] = 'mdl-align';
|
||||
if (!$processor->available) {
|
||||
$enable->text = html_writer::nonempty_tag('span', get_string('outputnotavailable', 'message'), array('class' => 'error'));
|
||||
} else if (!$processor->configured) {
|
||||
$enable->text = html_writer::nonempty_tag('span', get_string('outputnotconfigured', 'message'), array('class' => 'error'));
|
||||
} else if ($processor->enabled) {
|
||||
$url = new moodle_url('/admin/message.php', array('disable' => $processor->id, 'sesskey' => sesskey()));
|
||||
$enable->text = html_writer::link($url, $this->output->pix_icon('t/hide', get_string('outputenabled', 'message')));
|
||||
$enable->text = html_writer::nonempty_tag('span', get_string('outputnotavailable', 'message'),
|
||||
array('class' => 'error')
|
||||
);
|
||||
} else {
|
||||
$row->attributes['class'] = 'dimmed_text';
|
||||
$url = new moodle_url('/admin/message.php', array('enable' => $processor->id, 'sesskey' => sesskey()));
|
||||
$enable->text = html_writer::link($url, $this->output->pix_icon('t/show', get_string('outputdisabled', 'message')));
|
||||
$enable->text = html_writer::checkbox($processor->name, $processor->id, $processor->enabled, '',
|
||||
array('id' => $processor->name)
|
||||
);
|
||||
}
|
||||
// Settings
|
||||
$settings = new html_table_cell();
|
||||
if ($processor->available && $processor->hassettings) {
|
||||
$settingsurl = new moodle_url('settings.php', array('section' => 'messagesetting'.$processor->name));
|
||||
$settingsurl = new moodle_url('/admin/settings.php', array('section' => 'messagesetting'.$processor->name));
|
||||
$settings->text = html_writer::link($settingsurl, get_string('settings', 'message'));
|
||||
}
|
||||
|
||||
|
@ -101,17 +124,12 @@ class core_message_renderer extends plugin_renderer_base {
|
|||
* @return string The text to render
|
||||
*/
|
||||
public function manage_defaultmessageoutputs($processors, $providers, $preferences) {
|
||||
global $CFG;
|
||||
|
||||
// Prepare list of options for dropdown menu
|
||||
$options = array();
|
||||
foreach (array('disallowed', 'permitted', 'forced') as $setting) {
|
||||
$options[$setting] = get_string($setting, 'message');
|
||||
}
|
||||
|
||||
$output = html_writer::start_tag('form', array('id'=>'defaultmessageoutputs', 'method'=>'post'));
|
||||
$output .= html_writer::empty_tag('input', array('type'=>'hidden', 'name'=>'sesskey', 'value'=>sesskey()));
|
||||
|
||||
// Display users outputs table
|
||||
$table = new html_table();
|
||||
$table->attributes['class'] = 'generaltable';
|
||||
|
@ -195,11 +213,7 @@ class core_message_renderer extends plugin_renderer_base {
|
|||
$table->data[] = $row;
|
||||
}
|
||||
|
||||
$output .= html_writer::table($table);
|
||||
$output .= html_writer::start_tag('div', array('class' => 'form-buttons'));
|
||||
$output .= html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('savechanges','admin'), 'class' => 'form-submit'));
|
||||
$output .= html_writer::end_tag('div');
|
||||
$output .= html_writer::end_tag('form');
|
||||
$output = html_writer::table($table);
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue