Moodle Plugins enable you to add additional features and functionality to Moodle, such as new activities, new quiz question types, new reports, new blocks, integrations with other systems and many more features. The easiest and most maintainable way to add new functionality to Moodle is by installing a new Moodle plugin
Moodle supports more than 50 types of plugin to extend the functionality. As of writing of this post, Moodle Plugins directory includes more than 1967 plugins contributed by 1080+ Moodle community developers.
There are three ways how the plugin code can be installed in Moodle.
- From the Moodle plugins directory
- via uploaded ZIP file
- Manually at the server
Installing from the Moodle plugins directory:
- Login as an admin and go to Site administration > Plugins > Install plugins. (If you can’t find this location, then plugin installation is prevented on your site.)
- Click the button ‘Install plugins from Moodle plugins directory’.
- Search for a plugin with an Install button, click the Install button then click Continue.
- Confirm the installation request
- Check the plugin validation report.
Installing via uploaded ZIP file
- Go to the Moodle plugins directory, select your current Moodle version, then choose a plugin with a Download button and download the ZIP file.
- Login to your Moodle site as an admin and go to Administration > Site administration > Plugins > Install plugins.
- Upload the ZIP file. You should only be prompted to add extra details (in the Show more section) if your plugin is not automatically detected.
- If your target directory is not writeable, you will see a warning message.
- Check the plugin validation report
Installing manually at the server
If you can’t deploy the plugin code via the administration web interface, you have to copy it to the server file system manually (e.g. if the web server process does not have write access to the Moodle installation tree to do this for you).
You need to establish the correct path in the Moodle code tree. For beginners, I would like to bring attention to the plugin nomenclature for better understanding the Moodle code tree.
If you carefully observe the plugin name then you will observe that it is starting to look similar to block_sharing_cart, theme_essential or editor_marklar etc. This means that the first word includes the type of plugin and the second word includes the name. You need to extract the file contents in the appropriate directory on your server. Some Common locations are:
- /path/to/moodle/theme/ – themes
- /path/to/moodle/mod/ – activity modules and resources
- /path/to/moodle/blocks/ – blocks
- /path/to/moodle/question/type/ – question types
- /path/to/moodle/course/format/ – course formats
- /path/to/moodle/admin/report/ – admin reports
Caution before installing Moodle plugins
Definitely Moodle plugins help to add new features and add additional functionality but you need to consider the following points before installing a new plugin:
- Do you really need the plugin? There are many workarounds of doing things in Moodle and achieve similar results. So please make sure to explore all core options before looking for any plugin.
- Is the plugin well maintained and supported for supported Moodle version.
- How you will keep your Moodle updated in future in case the Plugin is not supported or not updated anymore by the developer.
- Is the plugin update frequency is aligned with your overall Moodle site upgrade frequency.