MDL-34955 add full TinyMCE subplugin management
This commit is contained in:
@@ -40,6 +40,9 @@ abstract class editor_tinymce_plugin {
|
||||
/** @var array Plugin settings */
|
||||
protected $config = null;
|
||||
|
||||
/** @var array list of buttons defined by this plugin */
|
||||
protected $buttons = array();
|
||||
|
||||
/**
|
||||
* @param string $plugin Name of folder
|
||||
*/
|
||||
@@ -47,6 +50,15 @@ abstract class editor_tinymce_plugin {
|
||||
$this->plugin = $plugin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns list of buttons defined by this plugin.
|
||||
* useful mostly as information when setting custom toolbar.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function get_buttons() {
|
||||
return $this->buttons;
|
||||
}
|
||||
/**
|
||||
* Makes sure config is loaded and cached.
|
||||
* @return void
|
||||
@@ -326,9 +338,23 @@ abstract class editor_tinymce_plugin {
|
||||
// Get list of plugin directories.
|
||||
$plugins = get_plugin_list('tinymce');
|
||||
|
||||
// Get list of disabled subplugins.
|
||||
$disabled = array();
|
||||
if ($params['moodle_config']->disabledsubplugins) {
|
||||
foreach (explode(',', $params['moodle_config']->disabledsubplugins) as $sp) {
|
||||
$sp = trim($sp);
|
||||
if ($sp !== '') {
|
||||
$disabled[$sp] = $sp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Construct all the plugins.
|
||||
$pluginobjects = array();
|
||||
foreach ($plugins as $plugin => $dir) {
|
||||
if (isset($disabled[$plugin])) {
|
||||
continue;
|
||||
}
|
||||
require_once($dir . '/lib.php');
|
||||
$classname = 'tinymce_' . $plugin;
|
||||
$pluginobjects[] = new $classname($plugin);
|
||||
|
||||
Reference in New Issue
Block a user