Introduction to Moodle 3.9+ Plugin Development

By Benjamin C Ellis

Book Images

A comprehensive introduction to plugin development for Moodle, the world’s leading learning environment, for PHP developers.

Coming Soon


10% of royalties will be donated to the Moodle Project.

Powering hundreds of thousands of learning environments globally, Modular Object Oriented Dynamic Learning Environment, aka Moodle, is used by institutions and organisations large and small across both academic and enterprise spheres making it arguably the world’s most widely used learning platform.

Because it is open-source, Moodle can be customised in any way and tailored to individual needs. Its modular set up and interoperable design allows developers to create PHP plugins and integrate external applications to achieve specific functionalities. Knowledgable Moodle developers are in demand the world over and based on the latest Long Term Support version of Moodle, this book aims to give non-Moodle PHP developers a comprehensive introduction to developing plugins for the platform.

By the end of this book, you will be able to create Moodle plugins to perform just about any task you need to.

The book covers:

  • A short history of Moodle and a high level discussion of the learning environments;
  • Essential information for developing plugins including coding guidelines and development tools;
  • High level descriptions of the common APIs;
  • Exploring common plugin requirements;
  • Developing 10 different common plugins as examples;
  • Other development concepts – backup, git, testing and releasing code to the Moodle plugins directory.

Chapter 1: Introduction to Moodle and Learning Environments: A general overview of the history of Moodle and other learning applications and the current operating environment.

Chapter 2: Moodle Development Overview: An overview of some issues worth knowing before jumping into developing plugins such as Legacy Issues, Accessibility, Languages & Internationalisation, Roles, Permissions and Capabilities and other important issues such as ‘Core Hacking’ and naming conventions aka Frankenstyle.

Chapter 3: Moodle APIs And Plugin Types: A high level view of APIs and Plugin Types that will be elaborated on later in the book.

Chapter 4: Plugin Development Background: Development related background information such as the Moodle Development Guidelines, Class Autoloading And Namespaces, Third Party PHP libraries including Zend and PEAR as well as the JavaScript Framework.

Chapter 5: Common APIs: A long chapter looking at the common APIs that plugin developers will encounter on their day to day work. A single plugins will generally use several APIs and this chapter serves to inform the developer of what is available and avoid having to re-invent the wheel.

Chapter 6: Plugin Development Essentials: Essentials for plugin development including the setup of the Development environment touching on SSL and IDEs. We look at generating test data, configuring Moodle for development and some tools development tools that are available.

Chapter 7: Common Plugin Requirements: Covers the required files and other common requirements for all plugins such as version.php and lib.php which allow the plugin to be installed and integrated into Moodle respectively.

Chapter 8: Developing Plugins: The long chapter where we get to examine and develop several common plugin types including blocks, enrolments, authentication and many others. Some other concepts of plugin development are discussed as well.

Chapter 9: Other Plugin Development Issues: The final chapter touching on things not covered or needing elaboration including the use of version control, particularly git, acceptance and unit testing and publishing your plugin via the Moodle plugins directory.