mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 14:27:22 +01:00
MDL-35661 Add functionality to plugininfo_base to load settings and check the settings url
- added plugin_manager and plugininfo_base::load_settings(), get_settings_section_name()
This commit is contained in:
parent
ccd90e765e
commit
5cdb1893a9
@ -5,6 +5,9 @@
|
||||
*/
|
||||
|
||||
if ($hassiteconfig) {
|
||||
require_once("$CFG->libdir/pluginlib.php");
|
||||
$allplugins = plugin_manager::instance()->get_plugins();
|
||||
|
||||
$ADMIN->add('modules', new admin_page_pluginsoverview());
|
||||
$ADMIN->add('modules', new admin_category('modsettings', new lang_string('activitymodules')));
|
||||
$ADMIN->add('modsettings', new admin_page_managemods());
|
||||
|
@ -1762,6 +1762,15 @@ abstract class plugininfo_base {
|
||||
return $updates;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the node name used in admin settings menu for this plugin settings (if applicable)
|
||||
*
|
||||
* @return null|string node name or null if plugin does not create settings node (default)
|
||||
*/
|
||||
public function get_settings_section_name() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the URL of the plugin settings screen
|
||||
*
|
||||
@ -1771,7 +1780,31 @@ abstract class plugininfo_base {
|
||||
* @return null|moodle_url
|
||||
*/
|
||||
public function get_settings_url() {
|
||||
return null;
|
||||
$section = $this->get_settings_section_name();
|
||||
if ($section === null) {
|
||||
return null;
|
||||
}
|
||||
$settings = admin_get_root()->locate($section);
|
||||
if ($settings && $settings instanceof admin_settingpage) {
|
||||
return new moodle_url('/admin/settings.php', array('section' => $section));
|
||||
} else if ($settings && $settings instanceof admin_externalpage) {
|
||||
return new moodle_url($settings->url);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads plugin settings to the settings tree
|
||||
*
|
||||
* This function usually includes settings.php file in plugins folder.
|
||||
* Alternatively it can create a link to some settings page (instance of admin_externalpage)
|
||||
*
|
||||
* @param part_of_admin_tree $adminroot
|
||||
* @param string $parentnodename
|
||||
* @param bool $hassiteconfig whether the current user has moodle/site:config capability
|
||||
*/
|
||||
public function load_settings(part_of_admin_tree $adminroot, $parentnodename, $hassiteconfig) {
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user