MDL-61477 admin: sitepolicy handler API
- Define sitepolicy handler manager class, base class and the core handler - Allow to set a plugin as sitepolicyhandler that implements the sitepolicy API - Modify web services to return information from the 3rd party handler instead of core if needed
This commit is contained in:
@@ -10560,3 +10560,46 @@ class admin_setting_agedigitalconsentmap extends admin_setting_configtextarea {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Selection of plugins that can work as site policy handlers
|
||||
*
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
* @copyright 2018 Marina Glancy
|
||||
*/
|
||||
class admin_settings_sitepolicy_handler_select extends admin_setting_configselect {
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* @param string $name unique ascii name, either 'mysetting' for settings that in config, or 'myplugin/mysetting'
|
||||
* for ones in config_plugins.
|
||||
* @param string $visiblename localised
|
||||
* @param string $description long localised info
|
||||
* @param string $defaultsetting
|
||||
*/
|
||||
public function __construct($name, $visiblename, $description, $defaultsetting = '') {
|
||||
parent::__construct($name, $visiblename, $description, $defaultsetting, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Lazy-load the available choices for the select box
|
||||
*/
|
||||
public function load_choices() {
|
||||
if (during_initial_install()) {
|
||||
return false;
|
||||
}
|
||||
if (is_array($this->choices)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$this->choices = ['' => new lang_string('sitepolicyhandlercore', 'core_admin')];
|
||||
$manager = new \core_privacy\local\sitepolicy\manager();
|
||||
$plugins = $manager->get_all_handlers();
|
||||
foreach ($plugins as $pname => $unused) {
|
||||
$this->choices[$pname] = new lang_string('sitepolicyhandlerplugin', 'core_admin',
|
||||
['name' => new lang_string('pluginname', $pname), 'component' => $pname]);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user