Moodle Plugins


(For more resources on Moodle, see here.)

There are a number of additional plugin types; namely, Enrolments, Authentication, Message outputs, Licences, and Web services.

Plugins—an overview

Moodle plugins are modules that provide some specific, usually ring-fenced, functionality. You can access the plugins area via the Plugins menu that is shown in the following screenshot:


Plugins overview displays a list of all installed plugins. The information shown for each plugin includes the Plugin name, an internal Identifier, its Source (Standard or Extension), its Version (in date format), its Availability (enabled or disabled), a link to the plugin Settings, and an option to Uninstall the plugin. The table is useful to get a quick overview of what has been installed on your system and what functionality is available.

Some areas contain a significant number of plugins, for instance, Authentication and Portfolios. Other categories only contain one or two plugins. The expectation is that more plugins will be developed in the future, either as part of the Moodle's core or by third-party developers. This guarantees the extensibility of Moodle without the need to change the system itself.

Be careful when modifying settings in any of the plugins. Inappropriate values can cause problems throughout the system.

The last plugin type in the preceding screenshot is labeled Local plugins. This is the recommended place for any local customizations. These customizations can be changes to existing functionality or the introduction of new features. For more information about local plugins, check out the readme.txt file in the local directory in your dirroot.

Module plugins

Moodle distinguishes between three types of module plugins that are used in the courses—the front page (which is treated as a course), the My Moodle page, and the user profile pages:

  • Activities modules (which also covers resources)
  • Blocks
  • Filters


Activities modules

Navigating to Plugins | Activity modules | Manage activities displays the following screen:

The table displays the following information:



Activity module

Icon and name of the activity/resource as they appear in courses and elsewhere.


The number of times the activity module is used in Moodle. When you click on the number, a table, which displays the courses in which the activity module has been used, is shown.


Version of the activity module (format YYYYMMDDHH).


The opened eye indicates that the activity module is available for use, while the closed eye indicates that it is hidden (unavailable).


Performs delete action. All activities, except the Forum activity, can be deleted.


Link to activity module settings (not available for all items).

Clicking on the Show/Hide icon toggles its state; if it is hidden it will be changed to be shown and vice versa. If an activity module is hidden, it will not appear in the Add an activity or Add a resource drop-down menu in any Moodle course. Hidden activities and resources that are already present in courses are hidden but are still in the system. It means that, once the activity module is visible again, the items will also re-appear in courses.

You can delete any Moodle Activity module (except the Forum activity). If you delete an activity or resource that has been used anywhere in Moodle, all the already-created activity modules will also be deleted and so will any associated user data! Deleting an activity module cannot be undone; it has to be installed from scratch.

It is highly recommended not to delete any activity modules unless you are 100 percent sure that you will never need them again! If you wish to prevent usage of an activity or resource type, it is better to hide it instead of deleting it.

The Feedback activity has been around for some time as a third-party add-on. It is hidden by default because it has been newly introduced in the core of Moodle 2, due to its popularity. You might probably want to make this available for your teachers.

The settings are different for each activity module. For example, the settings for the Assignment module only contain three parameters, whereas the settings for the Quiz module allow the modification of a wide range of parameters.

The settings for Moodle Activity modules are not covered here, as they are mostly self-explanatory and also dealt with in great detail in the Moodle Docs of the respective modules. It is further expected that the activity modules will undergo a major overhaul in the 2.x versions to come, making any current explanations obsolete.

Configuration of blocks

Navigating to Plugins | Blocks | Manage blocks displays a table, as shown in the screenshot that follows. It displays the same type of information as for Activity modules. Some blocks allow multiple instances, that is, the block can be used more than once on a page. For example, you can only have one calendar, whereas you can have as many Remote RSS Feeds as you wish. You cannot control this behavior, as it is controlled by the block itself.

You can delete any Moodle block. If you delete a block that is used anywhere in Moodle, all the already-created content will also be deleted. Deleting a block cannot be undone; it has to be installed from scratch.

Do not delete or hide the Settings block, as you will not be able to access any system settings anymore! Also, do not delete or hide the Navigation block, as users will not be able to access a variety of pages.

Most blocks are shown by default (except the Feedback and Global search blocks). Some blocks require additional settings to be set elsewhere for the block to function. For example, RSS feeds and tags have to be enabled in Advanced features, the Feedback activity module has to be shown, or global search has to be enabled (via Development | Experimental | Experimental settings).


The parameters of all standard Moodle blocks are explained in the respective Moodle Docs pages.

Configuration of filters

Filters scan any text that has been entered via the Moodle HTML editor and automatically transform it into different, often more complex, forms. For example, entries or concepts in glossaries are automatically hyperlinked in text, URLs pointing to MP3 or other audio files become embedded, flash-based controls (that offer pause and rewind functionality) appear, uploaded videos are given play controls, and so on.

Moodle ships with 12 filters, which are accessed via Plugins | Filters | Manage filters:


By default, all filters are disabled. You can enable them by changing the Active? status to On or Off, but available. If the status is set to On, it means that the filter is activated throughout the system, but can be de-activated locally. If the status is set to Off, but available, it means that the filter is not activated, but can be enabled locally.

In the preceding screenshot, the Multimedia plugins and Display emoticons as images (smileys) filters have been turned On and will be used throughout the system, as they are very popular. The TeX notation and Glossary auto-linking filters are available, but have to be activated locally. The former is only of use to the users who deal with mathematical or scientific notation and will trigger the Insert equation button in the Moodle editor. The Glossary auto-linking filter might be used in some courses. It can then be switched off temporarily at activity module level when learners have to appear for an exam.

Additionally, you can change the order in which the filters are applied to text, using the up and down arrows. The filtering mechanism operates on a first-come, firstserved basis, that is, if a filter detects a text element that has to be transformed, it will do so before the next filter is applied.

Each filter can be configured to be applied to Content and headings or Content only, that is, filters will be ignored in names of activity modules. The settings of some filters are described in detail in the Moodle Docs. As with activities and blocks, it is recommended to hide filters if you don't require them on your site.

In addition to the filter-specific settings, Moodle provides a number of settings that are shared among all filters. These settings are accessed via the Filters | Common filters menu and are shown in the following screenshot:



Text cache lifetime

It is the time for which Moodle keeps text to be filtered in a dedicated cache.

Filter uploaded files

By default, only text entered via the Moodle editor is filtered. If you wish to include uploaded files, you can choose any one from the HTML files only and All files options.

Filter match once per page

Enable this setting if the filter should stop analyzing text after it finds a match, that is, only the first occurrence will be transformed.

Filter match once per text

Enable this setting if the filter should only generate a single link for the first matching text instance found in each item of text on a page. This setting is ignored if the Filter match once per page parameter is enabled.



(For more resources on Moodle, see here.)

Moodle repositories

The File picker is central to almost all file operations in Moodle. Files can be selected from a wide range of sources known in Moodle as repositories. Moodle repositories are accessed via Plugins | Repositories | Manage repositories:


Each repository has one of three states:

  • Enabled and visible: The repository will be available throughout the system.
  • Enabled but hidden: Already set up repositories will be available, but no new instances can be created. This only applies to repositories that allow multiple instances (discussed later in this section).
  • Disabled: The repository is not available in your Moodle system.


The order in which the repositories are listed reflects the order in which the repositories appear in the File picker. This can be changed using the up and down arrows. As soon as a repository has been enabled, a Settings link will be displayed for almost all repositories. Every repository has a Repository plugin name parameter that lets you override its default name.

When you disable a repository plugin, its settings and all of its instances will be removed. Any content that has been added via the plugin will remain, as data is (almost) always copied or streamed from the external source.

Some repository types support multiple instances. The number of existing sitewide, coursewide, and private user instances are displayed under the Settings link. These can then be configured in the relevant context, that is, in Course administration | Repositories in the course settings, and in My profile | Repositories in the user profile page:


Sitewide instances are created as part of the Settings when managing the plugins, for example, the File system repository:


For simplicity, we are distinguishing between internal and external repositories. An internal repository is one that accesses internal Moodle files. An external repository is located outside Moodle, either on some local media, in another application's data storage, or in the cloud.

Internal repository plugins

There are a number of internal repository plugins to choose from:




Server files

Files on your Moodle system, to which a user has access. Files are arranged in a hierarchy, reflecting Moodle contexts.


Recent files

Recently used and uploaded files.

Number of recent files

Private files

Personal files of a user, which can be accessed throughout Moodle.


File system

Allows access to sub-directories in $CFG->dataroot/repository. A directory has to be selected for each instance.

Allow users to add a repository instance into the course

Allow users to add a repository instance into the user context

Legacy course files

Access to files after migrating from Moodle 1.9


Server files, Recent files, and Private files are managed by Moodle. The User quota parameter can be specified for private files in Security | Site policies. The default value is 100 MB.

One area that requires some attention is the Legacy course files plugin. In Moodle 1.x, all files were stored in a course files area. They were not linked to a specific activity or resource, nor did personal files, which can be accessed across courses, exist. This caused problems with backups, data security, and data integrity. A new File API has been introduced in Moodle 2, which rectifies these shortcomings. An issue arises when updating from Moodle 1.9 to Moodle 2.0. During the migration process, Moodle is able to allot files to activities and resources, but it does not know what to do with unused files or files that have been linked from within certain resources. It stores these in the Legacy course files area. Users will have to move those files to the appropriate place manually, that is, their personal files area as well as resources and activities.

Legacy course files are intended to be a temporary measure. The objective is to discontinue its use once all files have been migrated.

External repository plugins

External repository plugins will add, that is copy, stream or link, new files or content to your Moodle system. They might be uploaded from your local computer, a USB pen drive, a network drive, or cloud storage such as Dropbox,, and Amazon S3. Additionally, external applications such as Alfresco, Google Docs, Flickr, Picasa, and YouTube are supported as sources.

It is expected that the number of repository plugins will grow in the near future to access other storage types and applications. The Repository API of Moodle makes the development of these add-ons relatively painless for a programmer.

Data storage repositories

The following repository plugins come as part of core Moodle and act as file or data storage:




Upload a file

Manually uploading a file that can be accessed from your local PC or Mac. This will be used a lot by all users.


WebDAV repository

Access to a WebDAV server. A repository instance has to be created in the course or user context, where a number of parameters have to be specified: Name, WebDAV type, WebDAV server, WebDAV path, Authentication, and the optional WebDAV server port, WebDAV server user, and WebDAV server password parameters.

Allow users to add a repository instance into the course

Allow users to add a repository instance into the user context

Google Docs

Access to users' documents in Google Docs. Access has to be granted by each user when the plugin is used for the first time.



Access to a single Dropbox folder, not one for each user. Click and follow the Dropbox developers link, under the Settings link and click on the Create an App button to get access to the two required parameters (App key and App secret).

Dropbox API Key

Dropbox Secret

Similar to Dropbox repository. Follow link on Settings page and log on for an API key.

API key

Amazon S3

Access to Amazon S3 storage service.

Access key

Secret key

URL Downloader

Importing a file via a URL link. This can be an internal or external web address.



Application repositories

The following repository plugins that connect to applications come as part of core Moodle:




Alfresco repository

Access to Alfresco, a commercial, open source content management system. Both copying and linking are supported.

Allow users to add a repository instance into the course

Allow users to add a repository instance into the user context


Access to personal accounts of photo sharing site Flickr. Login required for the first time.

API key


Flickr public

Access to public area of photo sharing site, Flickr.

API key

Allow users to add a repository instance into the course

Allow users to add a repository instance into the user context

Picasa web album

Access to Picasa web albums. Login required.


Youtube videos

Access to YouTube video platform. Videos will be streamed to Moodle, not copied.

Access to MERLOT (Multimedia Education Resource for Learning and Online Teaching).

License Key


Access to Wikimedia Commons platform.


A number of shared settings can be found at Plugins | Repositories | Common repository settings. The Cache expire setting specifies the amount listings stored locally. The default value of 120 seconds is sufficient unless you have users with erroneous connections.

By default, the Allow external links setting is enabled. External links are supported by some repositories, for instance, Alfresco. Legacy course files have been discussed earlier; unless really necessary, it is recommended to leave the Legacy course files in new courses checkbox unchecked.


Once the repository setup has been completed, it is best to test out access from a number of contexts (users, site, and course) and also make sure that no users have access to sources they shouldn't have and vice versa.


Now that our File picker is fully populated and your users are able to get content in to Moodle, let's have a look at how they can achieve the opposite and get content out of Moodle.

Additional information about all mentioned Moodle repositories can be found at

File management

Moodle 2 contains a number of idiosyncrasies when it comes to file management. The two main disadvantages are:

  • Due to the fact that files are always copied, it is not possible to use a file in multiple locations (courses) and update all instances at once
  • Creating a file pool that can be shared across teachers in the same course is not supported

While these issues are on the roadmap and will be addressed in the near future, in the meantime, you will have to revert to external systems that overcome the existing shortcomings. Two popular candidates are Alfresco and SharePoint.

The Alfresco plugin ships as part of Moodle core and supports linking of files. This means that the files are not copied to Moodle, but remain stored in the content management system and only links are provided. The plugin works with all three available editions (Community, Team, and Enterprise).

There is currently a commercial SharePoint plugin in development that will also support linking from files. This useful for in particular organizations that already have a SharePoint infrastructure and wish to reuse learning resources that are stored in it.

Two things you have to bear in mind when working with systems that link files instead of copying them:

  • Linking of files is not supported throughout: The Link external checkbox is only supported by a few features; for example, when adding links inside the HTML editor or when adding images. It will not appear when a teacher is adding resources or activities.
  • Moodle won't have control over the content: This is, for instance, relevant when a submission deadline is in place. Moodle can control that the file won't be changed if it is stored in its filesystem. This is not the case for linked files.


(For more resources on Moodle, see here.)

Moodle portfolios

According to Moodle Docs, Moodle portfolios enable data, such as forum posts or assignment submissions, to be exported to external systems.

Moodle portfolios have to be enabled by selecting the Enable portfolios parameter in Advanced features. Once this has been done, you have access to all available portfolio plugins in Plugins | Portfolios | Manage portfolios.

Each portfolio has one of three states:

  • Enabled and visible: The portfolio will be available throughout the system
  • Enabled but hidden: Portfolios have to be activated to be used
  • Disabled: The portfolio is not available in your Moodle system

Once at least one portfolio has been set up, users will see an Export to portfolio link or icon at various places in their courses (for instance, assignment submissions, forum posts, and glossary entries). When this link is clicked, they will have to select one of the existing destinations from the Select destination drop-down menu. Depending on the chosen portfolio type, additional actions have to be taken, for example, log in to the site, confirm file type, or grant access to the external application.

Export formats that are currently supported are HTML, LEAP2A, images, and text. It is expected that additional formats, such as PDF, will be in added in future.

Like repositories, each portfolio plugin has a Name setting, where the default plugin label can be changed. Unlike repositories, multiple instances do not exist, nor is it possible to change the order of the plugins.

The following portfolio plugins come as part of core Moodle:




Follow on-screen instructions to obtain an API key.

Login to is required. If successful, users will have to specify whether the created HTML file will be shared and in which folder it has to be placed.

API key

Google Docs

Permission has to be granted at first use. An HTML file will be created automatically in the users' Documents area.


File download

Export formats supported are HTML and LEAP2A (a popular e-portfolio format).

Follow on-screen instructions to obtain an API key.

Authorization required at first use.

API key

Secret string

Mahara ePortfolio

Disabled by default. Only available if a valid network connection to a Mahara system has been established and the MNet authentication plugin has been enabled.

MNet host

Enable LEAP2A portfolio support


Access has to be granted when used for the first time. The picture will be placed in the Drop Box area of the users' Picasa albums.


Users have the ability to select which available portfolios are presented in their Export to portfolio list. Under My profile settings | Portfolios | Configure in the Settings block, they have the option to hide any configured portfolio plugin.

Furthermore, under My profile settings | Portfolios | Transfer logs, each user is shown a list of any Currently queued transfers and Previous successful transfers. The former lists all pending exports, which can either be continued (green button) or cancelled (red button). The latter displays details about all recent transfers:

There are a number of settings that apply to all portfolios, which can be accessed under Plugins | Portfolios | Common portfolio settings. They include two thresholds for file sizes (Moderate transfer filesize and High transfer filesize) and two for the number of database records (Moderate transfer dbsize and High transfer dbsize). If the actual values exceed the threshold values, users will be warned that the export might take some time.

Additional information about all mentioned Moodle portfolios can be found at

Miscellaneous plugins

There are a number of additional plugin types that are used less frequently than the ones covered. It is expected that more will be added to these categories in the future, either as part of Moodle core or as third-party add-ons.

Text editors

Moodle uses the TinyMCE HTML editor text editor as default for entering HTML text. Additionally, a Plain text editor has been implemented for entering any text that does not require formatting. The idea of the Text editors plugin area is that additional editors can be installed and utilized throughout Moodle. These can either be replacements for the default editors or editors for entering specialized content.

To get access to the available editors and their settings, go to Plugins | Text editors | Manage editors:

You can enable/disable each editor, change the order (in which they will be displayed when choosing an editor), and adjust the editor settings through the Settings link. For TinyMCE HTML editor, the only setting is to select the engine from the Spell engine drop-down menu that is used for spell checking.

Question types and behaviours

Moodle's Quiz activity module ships with a number of question types, such as, Multiple choice, Short answer, and Embedded answers. Moodle has a powerful question engine that supports a range of question behaviours. These are ways in which submitted questions are being dealt with. In true Moodle style, both constructs are handled as plugins and it is possible to add additional Question types and Question behaviours to the system. To see the available question types, go to Plugins | Question types | Manage question types:

(Move the mouse over the image to enlarge.)

You can only enable/disable each question type, change the order in which they will be displayed when choosing a question, and delete them. The Settings column is reserved for third-party types and more sophisticated question types being introduced in future versions of Moodle. When clicking on the number of questions, you will be shown a screen that shows all the courses that contain questions of the respective type.

To see the available question Behaviour, go to Plugins | Question behaviours | Manage question behaviours:

For each behaviour under the Behaviour column, the No. question attempts and its Version> are listed. If a type has one or more prerequisites that have to be installed, they will be displayed in the Requires column. The Available? and Delete columns have the same functionality as in the settings for question types.

Plagiarism prevention

Plagiarism prevention has to be enabled by selecting the Enable plagiarism plugins parameter in Advanced features. Once this has happened, you have access to any installed plagiarism prevention plugins in Plugins | Plagiarism prevention | Plagiarism settings.

At the time of writing, three plugins are available that cater to plagiarism prevention, namely, Turnitin, Crot, and Urkund:

The add-ons have to be downloaded from the Modules and plugins area at moodle. org and installed on your Moodle server.

A paid subscription is required from Once installed and configured, the Turnitin plagiarism prevention functionality will be available as part of the Assignment module inside courses.

Once you have entered your Turnitin Account ID and Turnitin Secret Key, you are ready to configure the plugin on the screen shown and the Turnitin Defaults tab. It might be best to involve someone who deals with educational and curriculum matters in your organization. More details and further information on these settings can be found at


In this article, you have learned how to configure different types of plugins in Moodle. We covered four main types of plugins, namely module plugins, repositories, portfolios, and miscellaneous plugins.

The consistent manner in which plugins have been implemented demonstrates the modular architecture of Moodle and flattens the learning curve when additional modules will be added in the future that have to be administered.

Further resources on this subject:

You've been reading an excerpt of:

Moodle 2 Administration

Explore Title