Free Sample
+ Collection

Moodle 1.9 Extension Development

Jonathan Moore, Michael Churchward

By writing Moodle plugins, you can make this open source learning platform fit your needs precisely, and this book shows you how with a step-by-step approach that takes you from the basics to advanced techniques.
RRP $29.99
RRP $49.99
Print + eBook

Want this title & more?

$12.99 p/month

Subscribe to PacktLib

Enjoy full and instant access to over 2000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

Book Details

ISBN 139781847194244
Paperback320 pages

About This Book

  • Develop your own blocks, activities, filters, and organize your content with secure code
  • Thoroughly covers key libraries of Moodle and best practices to use them
  • Explore the Moodle architectural concepts, how it is structured, and how it works
  • Detailed examples and screenshots for easy learning


Who This Book Is For

This book is written for technologists who are interested in expanding Moodle's functions through programming, either for their own organizations or to contribute to the open source project.
You should be familiar with Moodle's basic technologies: PHP, MySQL ,and HTML/CSS.

Table of Contents

Chapter 1: Moodle Architecture
Understanding the stack
Directory and system structure
Installing Moodle
Moodle program execution
Configuring Moodle
Moodle's API
Other important libraries
Access control, logins, and roles
Chapter 2: Creating and Modifying Blocks
Creating a block from scratch
Adding a language file
Working with capabilities
Adding instance configuration
Adding scheduled actions to our block
Reviewing a real world block
Using a block as a code container
Chapter 3: Creating and Modifying Filters
How a filter works
Building a filter
Chapter 4: Creating and Modifying Activity Modules
The scope of creating an activity module
Our module—activity Foo!
Getting started with the NEWMODULE template
Making version.php
Setting icon.gif
Generating install.xml
Creating access.php
Updating index.php
Finishing view.php
Coding lib.php
Upgrading our activity database
Creating backup and restore support
Chapter 5: Customizing the Look and Feel
Course formats
Chapter 6: Developer's Guide to the Database
The database structure
Maintaining Moodle tables
Using the Moodle database in your code
Common tables and relationships
Programming best practices
Chapter 7: Developing Pluggable Core Modules
Assignment types
Resource types
Question types
Where to get more help
Chapter 8: Creating Moodle Reports
Creating course reports
Creating gradebook reports
Creating administrator reports
Other output formats
Chapter 9: Integrating Moodle with Other Systems
Built-in services and plugins
Creating user authentication plugins
Implementing Single Sign On
Creating user enrollment plugins
Grade or completion passing
Chapter 10: Writing Secure Code
User access issues
SQL issues
Form issues
File system issues
Screen output issues
Logging your actions
Chapter 11: Sending Notifications to Users
Using e-mail
Using Moodle messaging
Using RSS feeds
Chapter 12: Constructing and Displaying Pages by Using the pagelib Library
Introduction to pagelib
Core modules that use pagelib
Using pagelib factory functions
page_base member functions
Meeting pagelib requirements
Converting activity Foo! to pagelib
Related libraries
Chapter 13: Building Forms with formslib
Using formslib
Form definition and elements
Rules and validation
Chapter 14: Development for the Adventuresome: Web Services
Using Remote-Learner Web Services
Using Moodle Networking

What You Will Learn

  • Add activities and grading components to keep a track of students’ progress automatically
  • Create Moodle Filters to process and filter the contents of the database
  • Customize the look and feel of your Moodle site using powerful plug-ins
  • Customize Moodle reports to assess the performance of a student easily
  • Allow integration with third-party systems such as HR and student information systems to access any data directly
  • Automate notifications for any updates in the courses
  • Customize forms to be filled by students using ‘formlib’ library
  • Extend Moodle beyond its boundaries using web services and explore the features of SOAP-based and XMM-RPC-based web services

In Detail

Moodle gives you the power to create and customize feature-rich plug-ins. If you can write Moodle plug-ins, you can make it do just about anything. From making the site easier to administer, to new features, to completely changing the way it looks; plug-ins are the method Moodle offers to customize and extend its functionality.

This book will show you how to build all sorts of Moodle plug-ins: admin plug-ins, Blocks, Activities, Grading components, Reports, Fliters that change the way your site works and looks. You will develop standard Moodle plug-ins such as Activities, Filters, and Blocks by creating functioning code that you can execute in your own Moodle installation. Writing modular plug-ins for Moodle will be a large focus of this book.
This book will take you inside Moodle and provide you with the ability to develop code the “Moodle way”.

This book will expose you to all of the core code functions in Moodle, in a progressive, understandable way. You will learn what libraries are available, what the API calls are, how it is structured and how it can be expanded beyond the plug-in system.
You will begin by getting an understanding of the basic architecture that Moodle uses to operate in. Next you will build your first plug-in; a block. You will carry on building other Moodle plug-ins, gaining knowledge of the “Moodle way” of coding, before plunging deeper into the API and inner libraries. Lastly, you will learn how to integrate Moodle with other systems using a variety of methods.

When you have completed, you will have a solid understanding of Moodle programming and knowledge of how to extend its functionality in whatever way you want.


Read More