. namespace editor_tiny; use context; /** * Tiny Editor Plugin class. * * This class must be implemented by any Moodle plugin adding TinyMCE features. * * It should optionally implement the following interfaces: * - plugin_with_buttons: to add buttons to the TinyMCE toolbar * - plugin_with_menuitems * - plugin_with_configuration: to add configuration to the TinyMCE editor * * @package editor_tiny * @copyright 2021 Andrew Lyons * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ abstract class plugin { public static function get_plugin_info(): array { $plugindata = []; if (is_a(static::class, plugin_with_buttons::class, true)) { $plugindata['buttons'] = static::get_available_buttons(); } if (is_a(static::class, plugin_with_menuitems::class, true)) { $plugindata['menuitems'] = static::get_available_menuitems(); } return $plugindata; } public static function get_plugin_configuration_for_context( context $context, array $options, array $fpoptions ): array { if (is_a(static::class, plugin_with_configuration::class, true)) { return static::get_plugin_configuration_for_context($context, $options, $fpoptions); } return []; } }