Updated in April 23th, 2019
The Moodle LMS is one of the most flexible systems for education ever. It lets you extend and tailor your environment thank using community sourced plugins. The easiest and most maintainable way to add new functionality to Moodle is by writing a new Moodle plugin.
The number of community-sourced plugins available grows every day. (1,593 as of April, 2019.) They reflect the interest and adaptability of the open source platform. Moodle has a variety of plugin types which can extend the functionality, but this makes the system prone to confusion among new Moodle administrators.
Anatomy of a plugin
Moodle plugins are sorted by types, the most popular filtering criteria in the directory. After long delays, the plugin directory now offers additional sorting options, including purpose and Moodle version compatibility. Plugin purpose and type, however, are not always straightforward and can be confusing.
The plugin type often determines the location in the Moodle directory where they should be installed. Doing it automatically will add the plugin contents into the right place. If you do it manually, make sure to follow the location instructions in the documentation of each.
Building Moodle plugins, building Moodle through plugins
When considering which plugins to install and set up, large Moodle installations deserve some planning to consider the physical requirements and the impact of the experience.
Your Moodle admin can provide an initial overview of plugin availability through a script available in the Moodle Developer Documentation. The whole documentation on Plugin Types is, of course, is a recommended read, but it might be too technical for some readers.
Resource planning for Moodle plugins might involve some or all of the following steps
- Functional and visual evaluation. This includes decisions not to install plugins due to conflicting or overlapping functionality. On principle, there is no need for more than one Moodle theme installed at a given time
- Storage and other physical resources analysis
- Memory and other “active use” resources analysis
- Performance impact analysis, including marginal analysis (effect of one more plugin on site performance)
- User experience impact analysis, including marginal analysis
- Related to the above, graphical user interface analysis. This is particularly important for visual plugins, such as themes or blocks (see video) and includes “screen real estate” considerations and choices