WidgetHub

TinyMCE ::: tiny_widgethub
Maintained by Josep Mulet
WidgetHub is a powerful plugin for Moodle that allows users to design, use, and customize widget components directly within the Tiny Editor. With built-in support for Bootstrap components, WidgetHub simplifies the process of creating dynamic and responsive content.

WidgetHub 1.3.1

Moodle 4.1, 4.2, 4.3, 4.4, 4.5, 5.0
Released: Sonntag, 3. August 2025, 00:04

WidgetHub

  • Design, use and customize widget components seamlessly within the Tiny Editor.
  • Use Bootstrap components easily.

[!IMPORTANT] This plugin needs a Moodle theme based on Boost since some widgets rely on Bootstrap.

Features

Users can:

  1. Choose a widget.
  2. Customize its appearance.
  3. Insert it into the Tiny editor.

Later, at any time, the component can be reconfigured using context menus provided by the Tiny editor.

widgethub_usage.gif

Learn more

Migration from Moodle 4x to Moodle 5.0

[!IMPORTANT] To ensure Bootstrap components that rely on JavaScript function correctly in both Moodle 4.x and Moodle 5.0, we recommend using both data-xxx and data-bs-xxx attributes in your widget templates. While this makes the templates slightly more verbose, it eliminates the need for custom JavaScript to handle attribute differences.

For widgets already present on a page, you can automatically add the missing data-bs-xxx attributes. Refer to the oninit.refractor.bs5 configuration option below for details.

Configuration

Administrators can manage widget definitions by customizing existing ones, creating new ones, or removing unwanted widgets. To access these options, simply type widget in the search field of the administrator area.

The options available are:

settings.png

  • share_css: When this checkbox is selected, all styles from the Moodle site will automatically be available within the editor's iFrame. Additional styles can be added via the administration page of your theme.

  • additionalcss: If you prefer to keep the styles in the editor isolated from Moodle styles, add the desired styles in this textarea to make them available in the editor. URLs within comment blocks will automatically be translated into a CSS link tag in the editor iFrame.

  • cfg: This allows additional configuration using the syntax property=value, with one configuration per line:

    • disable.plugin.pages: A comma-separated list of body IDs for which the plugin will not be loaded.

    • disable.plugin.pages.regex: A regular expression that matches those body IDs for which the plugin will not be loaded.

    • enable.contextmenu.level: Enable (1) or disable (0) context menus used by the plugin.

    • category.order=misc:a1,deprecated:z1: Overrides the default alphabetical category ordering. Provide a comma-separated string using the format categoryName:sortingName. The sortingName is used to determine the sort order among the listed categories. Categories not included in this list will maintain their default alphabetical order.

    • oninit.refractor.bs5=0 - Enable (1) or disable (0) automatic refractoring of Bootstrap 5 data-bs-xxx attributes when the editor opens (default: 0).

    • jsBaseUrl - If specified, this base URL will be prepended to the requires property in the widget definition — unless requires already starts with http, in which case the base URL will be ignored.

This feature is useful for dynamically changing the location of the JavaScript assets required by the widgets.

The capability 'tiny/widgethub:viewplugin' allows to set the plugin visibility for any role. Keep in mind that, by default, the role student is prevented from using the plugin.

How to build

Generate AMD modules

In order to generate the compiled code in /amd/build from sources in /amd/src, you need to execute the command

npx grunt amd

Generate yalm editor dependency

Please refer to the documentation in libs/codemirror.

Thanks

This plugin was originally inspired by the plugin Snippet by Justin Hunt.

A version for the editor Atto of this plugin has been used in the institution https://iedib.net/ since several years ago. The modified version of this plugin, with the extensions and widgets used at IEDIB, is available at the the repository IEDIB/moodle-tiny_widgethub

Icons by Fontawesome 6.4.

Version information

Version build number
2025060601
Version release name
1.3.1
Maturity
Stable Version
MD5 Sum
ba51d751840c0400488fe7516a35c291
Supported software
Moodle 4.1, Moodle 4.2, Moodle 4.3, Moodle 4.4, Moodle 4.5, Moodle 5.0
  • Latest release for Moodle 4.1
  • Latest release for Moodle 4.2
  • Latest release for Moodle 4.3
  • Latest release for Moodle 4.4
  • Latest release for Moodle 4.5
  • Latest release for Moodle 5.0

Version control information

Version control system (VCS)
GIT
VCS repository URL
VCS tag
v1.3.1

Default installation instructions for plugins of the type TinyMCE

  1. Make sure you have all the required versions.
  2. Download and unpack the module.
  3. Place the folder (eg "myeditor") in the "lib/editor/tiny/plugins" subdirectory.
  4. Visit http://yoursite.com/admin to finish the installation