PacktLib: Moodle 1.9 Extension Development

Moodle 1.9 Extension Development

Credits

About the Authors

About the Reviewer

Preface

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

Summary

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

Summary

Creating and Modifying Filters

How a filter works

Building a filter

Summary

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

Summary

Customizing the Look and Feel

Themes

Course formats

Summary

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

Summary

Developing Pluggable Core Modules

Assignment types

Resource types

Question types

Where to get more help

Summary

Creating Moodle Reports

Creating course reports

Creating gradebook reports

Creating administrator reports

Other output formats

Summary

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

Summary

Writing Secure Code

User access issues

SQL issues

Form issues

File system issues

Screen output issues

Logging your actions

Summary

Sending Notifications to Users

Requirements

Setup

Using e-mail

Using Moodle messaging

Using RSS feeds

Summary

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

Summary

Building Forms with formslib

Using formslib

Form definition and elements

Rules and validation

Summary

Development for the Adventuresome: Web Services

Using Remote-Learner Web Services

Using Moodle Networking

Summary