Merge branch 'MDL-80813' of https://github.com/marinaglancy/moodle into main

This commit is contained in:
Paul Holden
2025-04-02 09:03:21 +01:00
13 changed files with 100 additions and 86 deletions
+2 -1
View File
@@ -2,6 +2,8 @@
// This file defines settingpages and externalpages under the "appearance" category
$ADMIN->add('appearance', new admin_category('themes', new lang_string('themesettingscustom', 'admin')));
$capabilities = array(
'moodle/my:configsyspages',
'moodle/tag:manage'
@@ -359,7 +361,6 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) { // sp
new lang_string('themeselector', 'admin'), $CFG->wwwroot . '/admin/themeselector.php'));
// Settings page for each theme.
$ADMIN->add('appearance', new admin_category('themes', new lang_string('themesettingscustom', 'admin')));
foreach (core_component::get_plugin_list('theme') as $theme => $themedir) {
$settingspath = "$themedir/settings.php";
if (file_exists($settingspath)) {
+15 -10
View File
@@ -28,13 +28,22 @@ require_once($CFG->libdir . '/pdflib.php');
use core_admin\local\settings\filesize;
$capabilities = array(
$ADMIN->add('courses', new admin_category('coursedefaultsettings', new lang_string('defaultsettingscategory', 'course')));
$ADMIN->add('courses', new admin_category('groups', new lang_string('groups')));
$ADMIN->add('courses', new admin_category('activitychooser', new lang_string('activitychoosercategory', 'course')));
$ADMIN->add('courses', new admin_category('backups', new lang_string('backups', 'admin')));
$capabilities = [
'moodle/backup:backupcourse',
'moodle/category:manage',
'moodle/course:create',
'moodle/site:approvecourse',
'moodle/restore:restorecourse'
);
'moodle/restore:restorecourse',
'moodle/course:manageactivities',
'moodle/course:configurecustomfields',
'moodle/group:configurecustomfields',
'moodle/course:recommendactivity',
];
if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
// Speedup for non-admins, add all caps used on this page.
$ADMIN->add('courses',
@@ -104,7 +113,6 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
}
// Add a category for the course Default settings.
$ADMIN->add('courses', new admin_category('coursedefaultsettings', new lang_string('defaultsettingscategory', 'course')));
// Course Default Settings Page.
// NOTE: these settings must be applied after all other settings because they depend on them.
@@ -298,8 +306,7 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
)
);
// Add a category for the Groups.
$ADMIN->add('courses', new admin_category('groups', new lang_string('groups')));
// Add to the 'Groups' category.
$ADMIN->add(
'groups',
new admin_externalpage(
@@ -319,8 +326,7 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
)
);
// Add a category for the Activity Chooser.
$ADMIN->add('courses', new admin_category('activitychooser', new lang_string('activitychoosercategory', 'course')));
// Add to the 'Activity Chooser' category.
$temp = new admin_settingpage('activitychoosersettings', new lang_string('activitychoosersettings', 'course'));
// Tab mode for the activity chooser.
$temp->add(
@@ -372,8 +378,7 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
)
);
// Add a category for backups.
$ADMIN->add('courses', new admin_category('backups', new lang_string('backups','admin')));
// Add to the 'Backups' category.
// Create a page for general backups configuration and defaults.
$temp = new admin_settingpage('backupgeneralsettings', new lang_string('generalbackdefaults', 'backup'), 'moodle/backup:backupcourse');
+3 -3
View File
@@ -2,10 +2,10 @@
// * Miscellaneous settings
if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
// Experimental settings page.
$ADMIN->add('development', new admin_category('experimental', new lang_string('experimental', 'admin')));
// Experimental settings page
$ADMIN->add('development', new admin_category('experimental', new lang_string('experimental','admin')));
if ($hassiteconfig) { // Speedup for non-admins, add all caps used on this page.
$temp = new admin_settingpage('experimentalsettings', new lang_string('experimentalsettings', 'admin'));
//TODO: Re-enable cc-import once re-implemented in 2.0.x
+3 -3
View File
@@ -24,10 +24,10 @@
defined('MOODLE_INTERNAL') || die();
if (!$ADMIN->locate('file_redactor')) {
$ADMIN->add('server', new admin_category('file_redactor', get_string('redactor', 'core_files')));
}
if ($hassiteconfig) {
if (!$ADMIN->locate('file_redactor')) {
$ADMIN->add('server', new admin_category('file_redactor', get_string('redactor', 'core_files')));
}
$manager = \core\di::get(\core_files\redactor\manager::class);
+5 -4
View File
@@ -4,6 +4,11 @@
use core\plugininfo\gradepenalty;
$ADMIN->add('grades', new admin_category('gradereports', new lang_string('reportsettings', 'grades')));
$ADMIN->add('grades', new admin_category('gradeimports', new lang_string('importsettings', 'grades')));
$ADMIN->add('grades', new admin_category('gradeexports', new lang_string('exportsettings', 'grades')));
$ADMIN->add('grades', new admin_category('gradepenalty', new lang_string('gradepenalty', 'grades')));
if (has_capability('moodle/grade:manage', $systemcontext)
or has_capability('moodle/grade:manageletters', $systemcontext)) { // speedup for non-admins, add all caps used on this page
@@ -183,7 +188,6 @@ if (has_capability('moodle/grade:manage', $systemcontext)
// The plugins must implement a settings.php file that adds their admin settings to the $settings object
// Reports
$ADMIN->add('grades', new admin_category('gradereports', new lang_string('reportsettings', 'grades')));
foreach (core_component::get_plugin_list('gradereport') as $plugin => $plugindir) {
// Include all the settings commands for this plugin if there are any
if (file_exists($plugindir.'/settings.php')) {
@@ -196,7 +200,6 @@ if (has_capability('moodle/grade:manage', $systemcontext)
}
// Imports
$ADMIN->add('grades', new admin_category('gradeimports', new lang_string('importsettings', 'grades')));
foreach (core_component::get_plugin_list('gradeimport') as $plugin => $plugindir) {
// Include all the settings commands for this plugin if there are any
@@ -211,7 +214,6 @@ if (has_capability('moodle/grade:manage', $systemcontext)
// Exports
$ADMIN->add('grades', new admin_category('gradeexports', new lang_string('exportsettings', 'grades')));
foreach (core_component::get_plugin_list('gradeexport') as $plugin => $plugindir) {
// Include all the settings commands for this plugin if there are any
if (file_exists($plugindir.'/settings.php')) {
@@ -224,7 +226,6 @@ if (has_capability('moodle/grade:manage', $systemcontext)
}
// Penalty.
$ADMIN->add('grades', new admin_category('gradepenalty', new lang_string('gradepenalty', 'grades')));
// Supported modules.
$modules = core_grades\penalty_manager::get_supported_modules();
+34 -42
View File
@@ -24,6 +24,40 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$ADMIN->add('modules', new admin_category('modsettings', new lang_string('activitymodules')));
$ADMIN->add('modules', new admin_category('formatsettings', new lang_string('courseformats')));
$ADMIN->add('modules', new admin_category('customfieldsettings', new lang_string('customfields', 'core_customfield')));
$ADMIN->add('modules', new admin_category('blocksettings', new lang_string('blocks')));
$ADMIN->add('modules', new admin_category('authsettings', new lang_string('authentication', 'admin')));
$ADMIN->add('modules', new admin_category('enrolments', new lang_string('enrolments', 'enrol')));
$ADMIN->add('modules', new admin_category('editorsettings', new lang_string('editors', 'editor')));
$ADMIN->add('modules', new admin_category('antivirussettings', new lang_string('antiviruses', 'antivirus')));
$ADMIN->add('modules', new admin_category('mlbackendsettings', new lang_string('mlbackendsettings', 'admin')));
$ADMIN->add('modules', new admin_category('filtersettings', new lang_string('managefilters')));
$ADMIN->add('modules', new admin_category('mediaplayers', new lang_string('type_media_plural', 'plugin')));
$ADMIN->add('modules', new admin_category('fileconverterplugins', new lang_string('type_fileconverter_plural', 'plugin')));
$ADMIN->add('modules', new admin_category('paymentgateways', new lang_string('type_paygw_plural', 'plugin')));
$ADMIN->add('modules', new admin_category('dataformatsettings', new lang_string('dataformats')));
$ADMIN->add('modules', new admin_category('portfoliosettings', new lang_string('portfolios', 'portfolio'),
empty($CFG->enableportfolios)));
$ADMIN->add('modules', new admin_category('repositorysettings', new lang_string('repositories', 'repository')));
$ADMIN->add('modules', new admin_category('qbanksettings', new lang_string('type_qbank_plural', 'plugin')));
$ADMIN->add('modules', new admin_category('qbehavioursettings', new lang_string('questionbehaviours', 'admin')));
$ADMIN->add('modules', new admin_category('qtypesettings', new lang_string('questiontypes', 'admin')));
$ADMIN->add('modules', new admin_category('plagiarism', new lang_string('plagiarism', 'plagiarism')));
$ADMIN->add('modules', new admin_category('coursereports', new lang_string('coursereports')));
$ADMIN->add('modules', new admin_category('reportplugins', new lang_string('reports')));
$ADMIN->add('modules', new admin_category('searchplugins', new lang_string('search', 'admin')));
$ADMIN->add('modules', new admin_category('tools', new lang_string('tools', 'admin')));
$ADMIN->add('modules', new admin_category('cache', new lang_string('caching', 'cache')));
$ADMIN->add('cache', new admin_category('cachestores', new lang_string('cachestores', 'cache')));
$ADMIN->add('modules', new admin_category('calendartype', new lang_string('calendartypes', 'calendar')));
$ADMIN->add('modules', new admin_category('communicationsettings', new lang_string('communication', 'core_communication')));
$ADMIN->add('modules', new admin_category('sms', new lang_string('sms', 'core_sms')));
$ADMIN->add('modules', new admin_category('contentbanksettings', new lang_string('contentbank')));
$ADMIN->add('modules', new admin_category('localplugins', new lang_string('localplugins')));
if ($hassiteconfig) {
/* @var admin_root $ADMIN */
$ADMIN->locate('modules')->set_sorting(true);
@@ -31,7 +65,6 @@ if ($hassiteconfig) {
$ADMIN->add('modules', new admin_page_pluginsoverview());
// activity modules
$ADMIN->add('modules', new admin_category('modsettings', new lang_string('activitymodules')));
$ADMIN->add('modsettings', new admin_page_managemods());
@@ -48,7 +81,6 @@ if ($hassiteconfig) {
}
// course formats
$ADMIN->add('modules', new admin_category('formatsettings', new lang_string('courseformats')));
$temp = new admin_settingpage('manageformats', new lang_string('manageformats', 'core_admin'));
$temp->add(new admin_setting_manageformats());
$ADMIN->add('formatsettings', $temp);
@@ -60,7 +92,6 @@ if ($hassiteconfig) {
}
// Custom fields.
$ADMIN->add('modules', new admin_category('customfieldsettings', new lang_string('customfields', 'core_customfield')));
$temp = new admin_settingpage('managecustomfields', new lang_string('managecustomfields', 'core_admin'));
$temp->add(new admin_setting_managecustomfields());
$ADMIN->add('customfieldsettings', $temp);
@@ -72,7 +103,6 @@ if ($hassiteconfig) {
}
// blocks
$ADMIN->add('modules', new admin_category('blocksettings', new lang_string('blocks')));
$ADMIN->add('blocksettings', new admin_page_manageblocks());
$plugins = core_plugin_manager::instance()->get_plugins_of_type('block');
core_collator::asort_objects_by_property($plugins, 'displayname');
@@ -82,8 +112,6 @@ if ($hassiteconfig) {
}
// authentication plugins
$ADMIN->add('modules', new admin_category('authsettings', new lang_string('authentication', 'admin')));
$temp = new admin_settingpage('manageauths', new lang_string('authsettings', 'admin'));
$temp->add(new admin_setting_manageauths());
$temp->add(new admin_setting_heading('manageauthscommonheading', new lang_string('commonsettings', 'admin'), ''));
@@ -160,7 +188,6 @@ if ($hassiteconfig) {
}
// Enrolment plugins
$ADMIN->add('modules', new admin_category('enrolments', new lang_string('enrolments', 'enrol')));
$temp = new admin_settingpage('manageenrols', new lang_string('manageenrols', 'enrol'));
$temp->add(new admin_setting_manageenrols());
$ADMIN->add('enrolments', $temp);
@@ -177,7 +204,6 @@ if ($hassiteconfig) {
/// Editor plugins
$ADMIN->add('modules', new admin_category('editorsettings', new lang_string('editors', 'editor')));
$temp = new admin_settingpage('manageeditors', new lang_string('editorsettings', 'editor'));
$temp->add(new \core_admin\admin\admin_setting_plugin_manager(
'editor',
@@ -194,7 +220,6 @@ if ($hassiteconfig) {
}
// Antivirus plugins.
$ADMIN->add('modules', new admin_category('antivirussettings', new lang_string('antiviruses', 'antivirus')));
$temp = new admin_settingpage('manageantiviruses', new lang_string('antivirussettings', 'antivirus'));
$temp->add(new admin_setting_manageantiviruses());
@@ -266,14 +291,12 @@ if ($hassiteconfig) {
}
// Machine learning backend plugins.
$ADMIN->add('modules', new admin_category('mlbackendsettings', new lang_string('mlbackendsettings', 'admin')));
$plugins = core_plugin_manager::instance()->get_plugins_of_type('mlbackend');
foreach ($plugins as $plugin) {
$plugin->load_settings($ADMIN, 'mlbackendsettings', $hassiteconfig);
}
/// Filter plugins
$ADMIN->add('modules', new admin_category('filtersettings', new lang_string('managefilters')));
$ADMIN->add('filtersettings', new admin_page_managefilters());
@@ -303,7 +326,6 @@ if ($hassiteconfig) {
}
// Media players.
$ADMIN->add('modules', new admin_category('mediaplayers', new lang_string('type_media_plural', 'plugin')));
$temp = new admin_settingpage('managemediaplayers', new lang_string('managemediaplayers', 'media'));
$temp->add(new admin_setting_heading('mediaformats', get_string('mediaformats', 'core_media'),
format_text(get_string('mediaformats_desc', 'core_media'), FORMAT_MARKDOWN)));
@@ -323,7 +345,6 @@ if ($hassiteconfig) {
$ADMIN->add('mediaplayers', $temp);
// Convert plugins.
$ADMIN->add('modules', new admin_category('fileconverterplugins', new lang_string('type_fileconverter_plural', 'plugin')));
$temp = new admin_settingpage('managefileconverterplugins', new lang_string('type_fileconvertermanage', 'plugin'));
$temp->add(new admin_setting_manage_fileconverter_plugins());
$ADMIN->add('fileconverterplugins', $temp);
@@ -343,7 +364,6 @@ if ($hassiteconfig) {
}
// Payment gateway plugins.
$ADMIN->add('modules', new admin_category('paymentgateways', new lang_string('type_paygw_plural', 'plugin')));
$temp = new admin_settingpage('managepaymentgateways', new lang_string('type_paygwmanage', 'plugin'));
$temp->add(new \core_admin\local\settings\manage_payment_gateway_plugins());
$temp->add(new admin_setting_description(
@@ -362,7 +382,6 @@ if ($hassiteconfig) {
}
// Data format settings.
$ADMIN->add('modules', new admin_category('dataformatsettings', new lang_string('dataformats')));
$temp = new admin_settingpage('managedataformats', new lang_string('managedataformats'));
$temp->add(new admin_setting_managedataformats());
$ADMIN->add('dataformatsettings', $temp);
@@ -376,12 +395,9 @@ if ($hassiteconfig) {
//== Portfolio settings ==
require_once($CFG->libdir. '/portfoliolib.php');
$catname = new lang_string('portfolios', 'portfolio');
$manage = new lang_string('manageportfolios', 'portfolio');
$url = "$CFG->wwwroot/$CFG->admin/portfolio.php";
$ADMIN->add('modules', new admin_category('portfoliosettings', $catname, empty($CFG->enableportfolios)));
// Add manage page (with table)
$temp = new admin_page_manageportfolios();
$ADMIN->add('portfoliosettings', $temp);
@@ -435,10 +451,8 @@ if ($hassiteconfig) {
// repository setting
require_once("$CFG->dirroot/repository/lib.php");
$catname =new lang_string('repositories', 'repository');
$managerepo = new lang_string('manage', 'repository');
$url = $CFG->wwwroot.'/'.$CFG->admin.'/repository.php';
$ADMIN->add('modules', new admin_category('repositorysettings', $catname));
// Add main page (with table)
$temp = new admin_page_managerepositories();
@@ -474,8 +488,6 @@ if ($hassiteconfig) {
// Question bank settings.
if ($hassiteconfig || has_capability('moodle/question:config', $systemcontext)) {
$ADMIN->add('modules', new admin_category('qbanksettings',
new lang_string('type_qbank_plural', 'plugin')));
$temp = new admin_settingpage('manageqbanks', new lang_string('manageqbanks', 'admin'));
$temp->add(new \core_question\admin\manage_qbank_plugins_page());
$ADMIN->add('qbanksettings', $temp);
@@ -491,11 +503,9 @@ if ($hassiteconfig || has_capability('moodle/question:config', $systemcontext))
if ($hassiteconfig || has_capability('moodle/question:config', $systemcontext)) {
// Question behaviour settings.
$ADMIN->add('modules', new admin_category('qbehavioursettings', new lang_string('questionbehaviours', 'admin')));
$ADMIN->add('qbehavioursettings', new admin_page_manageqbehaviours());
// Question type settings.
$ADMIN->add('modules', new admin_category('qtypesettings', new lang_string('questiontypes', 'admin')));
$ADMIN->add('qtypesettings', new admin_page_manageqtypes());
// Question preview defaults.
@@ -567,7 +577,6 @@ if ($hassiteconfig || has_capability('moodle/question:config', $systemcontext))
// Plagiarism plugin settings
if ($hassiteconfig && !empty($CFG->enableplagiarism)) {
$ADMIN->add('modules', new admin_category('plagiarism', new lang_string('plagiarism', 'plagiarism')));
$ADMIN->add('plagiarism', new admin_externalpage('manageplagiarismplugins', new lang_string('manageplagiarism', 'plagiarism'),
$CFG->wwwroot . '/' . $CFG->admin . '/plagiarism.php'));
@@ -599,7 +608,6 @@ if ($hassiteconfig) {
}
}
if (!empty($pages)) {
$ADMIN->add('modules', new admin_category('coursereports', new lang_string('coursereports')));
core_collator::asort_objects_by_property($pages, 'visiblename');
foreach ($pages as $page) {
$ADMIN->add('coursereports', $page);
@@ -621,7 +629,6 @@ foreach (core_component::get_plugin_list('report') as $report => $plugindir) {
}
}
}
$ADMIN->add('modules', new admin_category('reportplugins', new lang_string('reports')));
$ADMIN->add('reportplugins', new admin_externalpage('managereports', new lang_string('reportsmanage', 'admin'),
$CFG->wwwroot . '/' . $CFG->admin . '/reports.php'));
core_collator::asort_objects_by_property($pages, 'visiblename');
@@ -631,7 +638,6 @@ foreach ($pages as $page) {
if ($hassiteconfig) {
// Global Search engine plugins.
$ADMIN->add('modules', new admin_category('searchplugins', new lang_string('search', 'admin')));
$temp = new admin_settingpage('manageglobalsearch', new lang_string('globalsearchmanage', 'admin'));
$pages = array();
@@ -773,7 +779,6 @@ if ($hassiteconfig) {
/// Add all admin tools
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('tools', new lang_string('tools', 'admin')));
$settingspage = new admin_settingpage('toolsmanagement', new lang_string('toolsmanage', 'admin'));
$ADMIN->add('tools', $settingspage);
$settingspage->add(new \core_admin\admin\admin_setting_plugin_manager(
@@ -794,12 +799,10 @@ foreach ($plugins as $plugin) {
// Now add the Cache plugins
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('cache', new lang_string('caching', 'cache')));
$ADMIN->add('cache', new admin_externalpage('cacheconfig', new lang_string('cacheconfig', 'cache'), $CFG->wwwroot .'/cache/admin.php'));
$ADMIN->add('cache', new admin_externalpage('cachetestperformance', new lang_string('testperformance', 'cache'), $CFG->wwwroot . '/cache/testperformance.php'));
$ADMIN->add('cache', new admin_externalpage('cacheusage',
new lang_string('cacheusage', 'cache'), $CFG->wwwroot . '/cache/usage.php'));
$ADMIN->add('cache', new admin_category('cachestores', new lang_string('cachestores', 'cache')));
$ADMIN->locate('cachestores')->set_sorting(true);
foreach (core_component::get_plugin_list('cachestore') as $plugin => $path) {
$settingspath = $path.'/settings.php';
@@ -813,7 +816,6 @@ if ($hassiteconfig) {
// Add Calendar type settings.
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('calendartype', new lang_string('calendartypes', 'calendar')));
$plugins = core_plugin_manager::instance()->get_plugins_of_type('calendartype');
core_collator::asort_objects_by_property($plugins, 'displayname');
foreach ($plugins as $plugin) {
@@ -824,7 +826,6 @@ if ($hassiteconfig) {
// Communication plugins.
if ($hassiteconfig && core_communication\api::is_available()) {
$ADMIN->add('modules', new admin_category('communicationsettings', new lang_string('communication', 'core_communication')));
$temp = new admin_settingpage('managecommunicationproviders',
new lang_string('managecommunicationproviders', 'core_communication'));
$temp->add(new \core_communication\admin\manage_communication_providers_page());
@@ -838,13 +839,6 @@ if ($hassiteconfig && core_communication\api::is_available()) {
// SMS plugins.
if ($hassiteconfig) {
$ADMIN->add(
'modules',
new admin_category(
'sms',
new lang_string('sms', 'core_sms'),
),
);
$ADMIN->add(
'sms',
new admin_externalpage(
@@ -869,7 +863,6 @@ if ($hassiteconfig) {
// Content bank content types.
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('contentbanksettings', new lang_string('contentbank')));
$temp = new admin_settingpage('managecontentbanktypes', new lang_string('managecontentbanktypes'));
$temp->add(new admin_setting_managecontentbankcontenttypes());
$ADMIN->add('contentbanksettings', $temp);
@@ -888,7 +881,6 @@ if ($hassiteconfig) {
/// Add all local plugins - must be always last!
if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('localplugins', new lang_string('localplugins')));
$ADMIN->add('localplugins', new admin_externalpage('managelocalplugins', new lang_string('localpluginsmanage'),
$CFG->wwwroot . '/' . $CFG->admin . '/localplugins.php'));
}
+4 -3
View File
@@ -25,6 +25,10 @@
defined('MOODLE_INTERNAL') || die();
$ADMIN->add('server', new admin_category('taskconfig', new lang_string('taskadmintitle', 'admin')));
$ADMIN->add('server', new admin_category('email', new lang_string('categoryemail', 'admin')));
$ADMIN->add('server', new admin_category('webservicesettings', new lang_string('webservices', 'webservice')));
if ($hassiteconfig) {
// System paths.
$temp = new admin_settingpage('systempaths', new lang_string('systempaths', 'admin'));
@@ -333,7 +337,6 @@ if ($hassiteconfig) {
$ADMIN->add('server', $temp);
// Tasks.
$ADMIN->add('server', new admin_category('taskconfig', new lang_string('taskadmintitle', 'admin')));
// Task processing.
$temp = new admin_settingpage('taskprocessing', new lang_string('taskprocessing', 'admin'));
@@ -467,7 +470,6 @@ if ($hassiteconfig) {
}
// Email.
$ADMIN->add('server', new admin_category('email', new lang_string('categoryemail', 'admin')));
// Outgoing mail configuration.
$temp = new admin_settingpage('outgoingmailconfig', new lang_string('outgoingmailconfig', 'admin'));
@@ -639,7 +641,6 @@ if ($hassiteconfig) {
}
// Web services.
$ADMIN->add('server', new admin_category('webservicesettings', new lang_string('webservices', 'webservice')));
// Web services > Overview.
$temp = new admin_settingpage('webservicesoverview', new lang_string('webservicesoverview', 'webservice'));
+14 -8
View File
@@ -6,14 +6,20 @@ $ADMIN->add('users', new admin_category('accounts', new lang_string('accounts',
$ADMIN->add('users', new admin_category('roles', new lang_string('permissions', 'role')));
$ADMIN->add('users', new admin_category('privacy', new lang_string('privacyandpolicies', 'admin')));
if ($hassiteconfig
or has_capability('moodle/user:create', $systemcontext)
or has_capability('moodle/user:update', $systemcontext)
or has_capability('moodle/user:delete', $systemcontext)
or has_capability('moodle/role:manage', $systemcontext)
or has_capability('moodle/role:assign', $systemcontext)
or has_capability('moodle/cohort:manage', $systemcontext)
or has_capability('moodle/cohort:view', $systemcontext)) { // Speedup for non-admins, add all caps used on this page.
$capabilities = [
'moodle/user:create',
'moodle/user:update',
'moodle/user:delete',
'moodle/role:manage',
'moodle/role:assign',
'moodle/cohort:manage',
'moodle/cohort:view',
'moodle/cohort:configurecustomfields',
'moodle/role:safeoverride',
'moodle/role:override',
];
if ($hassiteconfig || has_any_capability($capabilities, $systemcontext)) { // Speedup for non-admins, all caps used on this page.
// Stuff under the "accounts" subcategory.
+5 -2
View File
@@ -25,6 +25,9 @@
defined('MOODLE_INTERNAL') || die;
if ($hassiteconfig) {
$ADMIN->add('roles', new admin_externalpage('toolunsuproles', get_string('pluginname', 'tool_unsuproles'), "$CFG->wwwroot/$CFG->admin/tool/unsuproles/index.php", array('moodle/site:config', 'moodle/role:assign')));
$capabilities = ['moodle/role:assign'];
if ($hassiteconfig || has_any_capability($capabilities, core\context\system::instance())) {
$ADMIN->add('roles', new admin_externalpage('toolunsuproles', get_string('pluginname', 'tool_unsuproles'),
"$CFG->wwwroot/$CFG->admin/tool/unsuproles/index.php", ['moodle/site:config', 'moodle/role:assign']));
}
+6 -3
View File
@@ -26,9 +26,12 @@ use core\url;
defined('MOODLE_INTERNAL') || die();
if ($hassiteconfig) {
// New category for the plugin.
$ADMIN->add('gradepenalty', new admin_category('gradepenalty_duedate', new lang_string('pluginname', 'gradepenalty_duedate')));
// New category for the plugin.
$ADMIN->add('gradepenalty', new admin_category('gradepenalty_duedate', new lang_string('pluginname', 'gradepenalty_duedate')));
$capabilities = ['gradepenalty/duedate:manage'];
if ($hassiteconfig || has_any_capability($capabilities, core\context\system::instance())) {
// External page to manage the duedate rules.
$temp = new admin_externalpage(
@@ -43,13 +43,13 @@
{{{title}}}
</div>
<div class="navitem ml-auto">
<div class="ml-1">
<div class="navitem ms-auto">
<div class="ms-1">
<button id="addrulebutton" type="button" class="btn btn-primary">{{# str }} addrule, gradepenalty_duedate {{/ str }}</button>
</div>
{{#deleteallrulebutton }}
<div id="deleteallrulesbuttoncontainer" class="ml-1">
<div id="deleteallrulesbuttoncontainer" class="ms-1">
{{>core/single_button}}
</div>
{{/deleteallrulebutton }}
@@ -54,15 +54,15 @@
{{{title}}}
</div>
<div class="navitem ml-auto">
<div class="navitem ms-auto">
{{#editbutton}}
<div class="ml-1">
<div class="ms-1">
{{>core/single_button}}
</div>
{{/editbutton}}
{{#resetbutton}}
<div class="ml-1">
<div class="ms-1">
{{>core/single_button}}
</div>
{{/resetbutton}}
+3 -1
View File
@@ -25,7 +25,9 @@
defined('MOODLE_INTERNAL') || die();
if ($hassiteconfig) {
$capabilities = ['qbank/customfields:configurecustomfields'];
if ($hassiteconfig || has_any_capability($capabilities, core\context\system::instance())) {
// Settings for question custom fields.
$settings = null;
$ADMIN->add('qbanksettings',