. namespace tiny_h5p; use context; use editor_tiny\plugin; use editor_tiny\plugin_with_buttons; use editor_tiny\plugin_with_menuitems; use editor_tiny\plugin_with_configuration; use editor_tiny\plugin_with_configuration_for_external; /** * Tiny H5P plugin for Moodle. * * @package tiny_h5p * @copyright 2021 Andrew Lyons * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class plugininfo extends plugin implements plugin_with_buttons, plugin_with_menuitems, plugin_with_configuration, plugin_with_configuration_for_external { public static function get_available_buttons(): array { return [ 'tiny_h5p/h5p', ]; } public static function get_available_menuitems(): array { return [ 'tiny_h5p/h5p', ]; } public static function get_plugin_configuration_for_context( context $context, array $options, array $fpoptions, ?\editor_tiny\editor $editor = null ): array { $permissions = [ 'embed' => has_capability('tiny/h5p:addembed', $context), 'upload' => has_capability('moodle/h5p:deploy', $context), ]; $permissions['uploadandembed'] = $permissions['embed'] && $permissions['upload']; return [ 'permissions' => $permissions, 'storeinrepo' => true, ]; } #[\Override] public static function get_plugin_configuration_for_external(context $context): array { $settings = self::get_plugin_configuration_for_context($context, [], []); return [ 'embedallowed' => $settings['permissions']['embed'] ? '1' : '0', 'uploadallowed' => $settings['permissions']['upload'] ? '1' : '0', ]; } }