Introduction to Moodle Modules


Moodle 1.9 Top Extensions Cookbook

Moodle 1.9 Top Extensions Cookbook

Over 60 simple and incredibly effective recipes for harnessing the power of the best Moodle modules to create effective online learning sites

  • Packed with recipes to help you get the most out of Moodle modules
  • Improve education outcomes by situating learning in a real-world context using Moodle
  • Organize your content and customize your courses
  • Reviews of the best Moodle modules—out of the available 600 modules
  • Installation and configuration guides
  • Written in a conversational and easy-to-follow manner
        Read more about this book      

(For more resources on Moodle, see here.)


Moodle is an open source Learning Management System (LMS).

Moodle 1.9 Top Extensions Cookbook

Image source:

The word Moodle is actually an acronym. The 'M' in Moodle stands for Modular and the modularity of Moodle has been one of the key aspects of its success. Being modular means you can:

  • Add modules to your Moodle instance
  • Selectively use the modules you need

The acronym Moodle stands for Modular Object-Oriented Dynamic Learning Environment. It is modular because you can add and remove modules. The programming paradigm used to create Moodle code is Object-Oriented. It is dynamic because it can be used for information delivery and interactivity, in a changeable and flexible way. It is a learning environment designed for teaching at many levels.

Because Moodle is modular and open source, many people have created modules for Moodle, and many of those modules are available freely for you to use. At time of writing, there are over 600 modules that you can download from the Moodle Modules and plugins database. Some of these are popular, well designed, and well maintained modules. Others are ideas that didn't seem to get off the ground. Some are contributed and maintained by large institutions, but most are contributed by individuals, often teachers themselves, who want to share what they have created.

If you have an idea for something you would like to do with Moodle, it's possible that someone has had that idea before and has created and shared a module you can use. This article will show you how to download and test contributed Moodle modules, to see if they suit your needs.

Origins of Moodle
Moodle began in 1999 as postgraduate work of Martin Dougiamas, "out of frustration with the existing commercial software at the time". Considering the widespread use of Moodle around the world (over 40,000 registered sites in over 200 countries), Martin is a very humble man. If you ever make it to a MoodleMoot and Martin is in attendance, be sure to introduce yourself.

A test server

If you only want to test modules, consider setting up your own basic web server, such as XAMPP ( and installing Moodle from the Moodle Downloads page ( If you are a Windows or Mac user, you can even download and install Moodle packages where these two ingredients are already combined and ready to go.

Once installed, add a course or two. Create some dummy students to see how modules work within a course. Have a play around with the modules available—Moodle is quite hard to break—don't be afraid to experiment.

Getting modules you can trust

The Moodle Modules and plugins database is filled with modules great and small. This article will help you to know how you can find modules yourself.

Getting ready

You may have an idea in mind, or you may just want to see what's out there. You'll need a web browser and an active Internet connection.

How to do it...

Point your browser to the Moodle Modules and plugins database. Refer

Image source:

As you scroll down you will see list of modules that can be downloaded. At the bottom of the page is a Search facility:

Image source:

You can also try an advanced search to get more specific about the following:

  • What type of module you want
  • What version of Moodle you have
  • A number of other features

The following is a search result for the term 'progress':

Image source:

Each entry has a type, the version of Moodle that it is compatible with, and a brief description. Clicking on the name of the module will take you to a page with details about the module. This is the module's 'entry':

Image source:

On each entry page there is a wealth of information about the module. The following is a list of questions you will want to answer when determining if the module is worth testing.

  • Will it work with your version of Moodle?
  • Is documentation provided?
  • When was the module released and has there been activity (postings on the page below) since then?
  • Is the module author active in the discussion about the module?
  • Is the discussion positive (don't be too discouraged by bug reports if the author is involved and reporting that bugs have been fixed)?
  • From discussion, can you tell if the module is widely used with a community of users behind it?
  • What is the rating of the module?

If you are happy with your answers to these questions, then you may have found a useful module.

Be wary of modules that do what you want, but are not supported; you may be wasting your time and putting the security of your system and the integrity your teaching at risk.

There's more...

Here is some additional information that may help you on a module hunt.

Types of modules

In order to get a sense of how modules will work, you need to have an understanding of the distinction between different module types. The following table describes common module types. Amid the array of modules available, the majority are blocks and activity modules.

Activity module Activity modules deliver information or facilitate interactivity within a course. Links to activity modules are added on a course main page and the activity module itself appears on a new page when clicked. Examples in the core installation are 'Forums' and 'Quizzes'.
Assignment type Assignment types are a specific type of activity module that focus on assessable work. They are all based on a common assignment framework and appear under 'Assignments' in the activities list. Examples in the core installation are 'Advanced upload of files' and 'Online text' assignments.
Block Blocks usually appear down each side of a course main page. They are usually passive, presenting specific information, and links to more information and activities. A block is a simpler type of module. Because they are easy to create, there are a large number of these in the Modules and Plugins database. Examples in the core installation are the 'Calendar' and 'Online Users' blocks.
Course format A course format allows the structure of a course main page to be changed to reflect the nature of the delivery of the course, for example, by schedule or by topic.
Filter Filters allow targeted text appearing around a Moodle site to be replaced with other content, for example, equations, videos, or audio clips.
Integration An integration module allows Moodle to make use of systems outside the Moodle instance itself.
Question type Within a quiz, question types can be added to enable different forms of questions to be asked.

Checking your version

If you are setting up your own Moodle instance for teaching or just for testing, take note of the version you are installing.

If you have access to the Site Administration interface (the Moodle site root page when logged in as an administrator), clicking on Notifi cations will show you the version number near the bottom, for example Moodle 1.9.8 (Build: 20100325). The first part of this is the Moodle version; this is what you need when searching through modules on the Modules and plugins database. The second part, labeled "Build" shows the date when the installed version was released in YYYYMMDD format. This version information reflects what is stored in the /version.php file.

If you are not the administrator of your system, consult the person who is. They should usually be able to tell you the version without looking it up.

Moodle 2.0
The next version of Moodle to follow version 1.9 has been "on the cards" for some time. The process of installing modules will not change in the new version, so most of the information in this book will still be valid. You will need to look for versions of modules ready for Moodle 2.0 as earlier versions will not work without adjustment. As modules are usually contributed by volunteers, there may be some waiting before this happens; the best way to encourage this re-development is to suggest an improvement for the module on the Moodle bug tracker system at

See also

  • Adding modules to Moodle
        Read more about this book      

(For more resources on Moodle, see here.)

Adding modules to Moodle

Once you've found a module you would like to test, you need to know how to add and install that module.

Getting ready

You will need to have your web server running with Moodle installed. If you are not an administrator of the site, you will need assistance from someone who is.

To install a module, you will need to access your file browser to copy files and a web browser to see the results. You will need to be able to unzip files as this is how files in a module are packaged together.

How to do it...

On the entry page for the module, look for the links at the bottom-right of the description. If you have an older version of Moodle, look for the version of the module that is suitable for your version.

Moodle 1.9 Top Extensions Cookbook

Image source:

Clicking on the link will take you to a new page, then a download dialog should appear. Most modules are packaged as zip files. Save the zip file to an easily accessible location on your computer.

As a specific example, search for the Progress Bar block in the Moodle Modules and plugins database. Find the download link and download the file. The filename should be

Once you have the file downloaded on your machine, you need to unzip the code and copy it to a location within the Moodle file structure. The location for the files will depend on the type of module you are installing.

A zip file is a collection of files that have been combined together into a single file and compressed. How you "unzip" a file will depend on your operating system. Most operating systems will provide support to unzip. Try double clicking on a zip file and you may be presented with a view of its contents; dragging the files from such a view will uncompress and copy the files from the zip into the location you drop them. If this doesn't work for you, try right-clicking on the zip file and see what options are available for extracting the files inside.

The following table shows where common module types need to be placed within the Moodle file structure. You will need to know where the Moodle code exists within the file structure of your server when viewed using your file browser (not your web browser). For simplicity we shall refer to this directory as moodle/.

Activity module moodle/mod/
Assignment type moodle/mod/assignment/type/
Block moodle/blocks/
Course format moodle/course/format/
Filter moodle/filter/
Integration (varies by module, look for additional instructions)
Question type moodle/question/type/


Most modules are self contained within a single subdirectory. This is especially true for modules created for more recent versions of Moodle. So, generally, you should be able to unzip the contents of the module package to one place.

Within the zip file, there will normally be a structure that should become the directory structure when unzipped. This will usually be a single directory at the root of the zip file and subfolders within this. Depending on the complexity of the module, there may be a few PHP files or there may be hundreds of files for images, scripts, language translations, and more.

Be careful that the folder structure from the zip file is maintained when it is extracted.

Unzip the file inside the moodle/blocks directory. The path to the root of the module code should be moodle/blocks/progress.

When you unzip the files, be sure that you do not add additional directories, for example moodle/blocks/progress/progress/. Doing so will prevent the block code from being detected and installed. Also take care not to accidentally rename the directory or the files within it as this will affect the functioning of the module.

Once the files are in place, the next step is to install the module. For most modules the process is the same.

  1. Log in as the system administrator.
  2. Go to the root of the site page.
  3. Look for the block labeled Site Administration.
  4. Click on the Notifications link.

    Moodle 1.9 Top Extensions Cookbook

  5. When you click on the Notifications link, a scan will be conducted for new modules and updates of existing modules. Database tables will be set up during this process.

    Moodle 1.9 Top Extensions Cookbook

  6. Once the module is installed, you can begin using it. To try the Progress Bar block, go to your course and click on Turn editing on. On the right-most column at the bottom, there is a block containing a list for adding blocks. Select the block name, for example, Progress Bar, to add it.

    Moodle 1.9 Top Extensions Cookbook

  7. After you have added a block you will want to change its settings. With editing turned on, look for the Update settings icon on the block. It may vary in appearance when different themes are used, but often it is depicted as a hand holding a pen, or a pen over a notepad:

    Moodle 1.9 Top Extensions Cookbook

If you are not sure what the icons on a block do, hover over them for a description. Some blocks will not function properly until you have changed their settings.

When you add an activity module, an assignment type, or an integration, you can add an instance by selecting it from the list of resources or activities, depending on what kind of module it is. When you add a module of this kind you will immediately be taken to a page to set it up.

Moodle 1.9 Top Extensions Cookbook

Question types allow a greater variety of questions to be added to quizzes. Once you have copied the directory of files for a question type to moodle/question/type/, visit the Notifications page as normal. You should then be able to select that question type when creating a new question.

Moodle 1.9 Top Extensions Cookbook

Knowing how to install a module is useful. Getting the best results from the module when it is used for teaching is more critical.

How it works...

Moodle is designed to be modular, and also to make the process of adding modules as easy as possible. Allowing the code for a module to be in a self contained directory allows module authors to create and share modules without requiring a complicated installation or detailed instructions. Once you've installed one module, installing more is relatively easy.

Not all modules can be contained in a single directory. If this is not the case, you will be provided with additional instructions for installation. A common change needed for some module types is to add a string to a language file. For extra information check the following:

  • The Modules and plugins database entry for the module
  • Moodle documentation pages for the module
  • A readme.txt file in the zip package

There's more...

Filters and course formats are installed in a slightly different way compared to blocks, activity modules, and question types.


Once you have copied the module code to the moodle/filter/ directory, log in as the administrator and go to the root page of your site. At this stage if you were to visit the Notifications page, nothing will be shown as no databases are needed for filters. On the Site Administration menu, expand Modules and you will see a link to Filters. Expanding this will show a link to Manage Filters. Clicking this will take you to the filters settings page.

The newly added filter should appear in the list of filters. Clicking the closed-eye icon will enable the filter. Text appearing in labels, web pages, and forums will be filtered and text matching the code specific to the filter will be replaced accordingly. The following is an example of a filter that replaces code, such as (smile) with icons.

Moodle 1.9 Top Extensions Cookbook

Course formats

Course formats allow the layout of a course page to take on a different structure.

To add a course format, copy the format directory and files into the moodle/course/format/ directory, log into the course, choose Settings from the course Administration block, then choose your new format from the list of formats.

Moodle 1.9 Top Extensions Cookbook


In this article we saw how to add and install Moodle modules.

In the next article, Getting Modular with Moodle, we will see more on Moodle modules.

Further resources on this subject:

You've been reading an excerpt of:

Moodle 1.9 Top Extensions Cookbook

Explore Title