Browse files

Merge branch 'w49_MDL-36892_m23_enrolreadme' of git://…

…ak/moodle into MOODLE_23_STABLE
  • Loading branch information...
danpoltawski committed Dec 11, 2012
2 parents 957dfed + 3b3b7e6 commit a2577a7cc37fdc169ae51c295d81899b36b736ab
Showing with 3 additions and 98 deletions.
  1. +3 −98 enrol/README.txt
@@ -3,102 +3,7 @@ ENROLMENT MODULES
(Yes, that's the correct English spelling ;-) )
enrol.class.php contains a simple 'factory' method that
will instantiate your class when called. For an example
of a complete class, take a look at the 'manual' class.
Each plugin is in a subfolder here.
Except for the configuration methods, most methods
defined in the API are optional -- callers will use
method_exists() to determine whether your plugin offers
the functionality they are after.
Mandatory methods
Login-time methods
Before Moodle 1.7
You probably will want to offer at least get_student_courses().
These methods are triggered when a user logs in successfully,
and they are expected to populate $USER->student and
$USER->teacher arrays and maintain (add/delete) entries from
user_students and user_teachers.
These methods are relevant for most plugins, and are the main
interest for plugins that work with a read-only backend such
as LDAP or a database.
Note that with the multi-enrol infrastructure two things have
changed. We now have an 'enrol' field in those tables, and
each plugin must maintain only its own enrolment records.
Conversely, the $USER->student and ->teacher arrays have the
enrolment type as value, like
$USER->student = array ( $courseid => $plugintype );
Moodle 1.7 and later
With the advent of roles, there could well not be students and
teachers any more, so enrolment plugins have to be more flexible
about how they map outside data to the internal roles.
This one method should do everything, calling functions from
lib/accesslib.php as necessary to set up relationships.
Interactive enrolment methods
These methods are for enrolment plugins that allow for user
driven enrolment. These methods are relevant for plugins
that implement payment gateways (credit card, paypal),
as well as "magic password" schemes.
Only one interactive enrolment method can be active for
a given course. The site default can be set from
Admin->Enrolment, and then individual courses can be
set to specific interactive enrolment methods.
If your class offers a cron() method, it will be invoked by
the standard Moodle cron every time it is called. Note that if the
tasks are not lightweight you must control how frequently they
execute, perhaps offering a config option.
For really heavy cron processing, an alternative is to have
a separate script to be called separately. Currently the LDAP
and DB plugins have external scripts.
Guilty Parties
Martin Dougiamas and Shane Elliott,
Martin Langhoff and Patrick Li, Catalyst IT
All enrolment modules must extend base class enrol_plugin
which is defined in lib/enrollib.php. You can find documentation
of each method in the base class.

0 comments on commit a2577a7

Please sign in to comment.