Extending Moodle: Plugins and LTI
Modern complex platforms are usually made up of components — parts that perform specific tasks and communicate with other parts using common protocols. Moodle is an example of a complex, open platform, made up of many different parts contributed by many different authors. It has numerous interfaces that allow new components to be incorporated. It’s architecture is open, publicly-available, and designed to be extended.
The advantage of all this design open-ness is to make it easier for new features to be added from a robust ecosystem of third-party Moodle developers. The developers working at Moodle HQ don’t have to think of all the new ideas or to develop them themselves, but their partner developers and many enthusiastic members of the Moodle user community can contribute code, test, or provide documentation (so long as they follow the rules of Moodle’s development standards and application interfaces).
Using Moodle Plugins
New features can be added to Moodle using Moodle-specific custom code extensions called plugins. Plugins are programs that follow Moodle’s API standards and only work in Moodle (or a particular version of it). A plugin may have been created by Moodle HQ developers, or by outside developers who are part of the Moodle developer community. Moodle ships with a hundred plugins installed providing features at all levels of the system, from back-end data reporting, to user-facing features that improve Moodle’s appearance or performance. There are hundreds of other plugins available in Moodle HQ’s online plugins database.
Two of the most visible examples of Moodle plugins are Kaltura and H5P:
- Kaltura is a large video management system which integrates with Moodle in at least six different places within the Moodle environment: a user-specific “My Media” page, a course-specific Media Gallery, and various course-specific resources and activities that let you present videos or collect them as assignment submissions.
- H5P connects as a Moodle activity type, featuring its own authoring environment. H5P activities also publish grades to the Moodle course’s gradebook.
In a nutshell, Moodle plugins are written only for the Moodle environment, following Moodle’s API standards to interoperate with Moodle in a deeper way, often intersecting with or impacting multiple aspects of Moodle’s functionality in order to meet users wherever they’re working.
Because of their embedded nature in the Moodle system, plugin upgrades and installations are a very structured and vetted process at VCC. If someone asks for a new plugin to be installed in Moodle, VCC’s Moodle administrator will review the plugin for security, suitability, and soundness, and will check with other technicians for any bugs, risks, or known issues. Plugins are vetted in a careful way, and at any given time there will usually be a backlog of plugin installation requests at VCC.
About LTI Connections
LTI stands for Learning Tools Interoperability, an established third-party standard for creating connections between learning systems. Every different LMS platform (Moodle, Brightspace, Canvas, etc.) has its own unique design, codebase, and API standards for its developers to access and develop system functions. A system extension built for Canvas won’t work in Moodle.
Most major educational book publishers provide their own online environment which supports creating or using course materials derived from their educational books. When you license the use of a textbook, you often get access to a digital environment with learning materials or quiz data based on your licensed textbook. (The Publisher wants to make it easier for you to use their content.)
If every LMS is not necessarily compatible with the other, or with publisher websites, how can you get their content into your Moodle course? Connecting from an LMS like Moodle to those remote publisher web sites is most often done using LTI protocol. You can create an LTI connection between remote environments to generate a link to remote learning materials inside your Moodle course, without the Student needing to login to the other system.
In the basic diagram below, the “Learning Platform” would be VCC Moodle, and the “Learning Tools” would be the service(s) hosted at the vendor’s remote platform (e.g. a website that runs their own version of an LMS).

Which services can you connect to?
Content publishers like Pearson, McGraw Hill, or Elsevier provide their own LMS-like environments for hosting courseware. Other LTI can also be used to connect Moodle to outside LMSes that are not owned by book publishers (e.g. the WeBWorK math homework system).
This KB article describes all the remote learning tools that VCC Moodle can currently connect to:
Summary
The end result is that Moodle remains baseline delivery platform which can be expanded to incorporate learning objects from other sources to meet a variety of needs, media presentations, interaction types, or genres.
Related Resources: