moodle/enrol
2011-05-04 12:23:18 +08:00
..
authorize MDL-26991 use archetypes instead of deprecated 'legacy' when defining roles in enrol plugins 2011-03-28 19:19:54 +02:00
category MDL-27148 use new get_in_or_equal() param prefix instead of start 2011-04-14 15:15:01 +02:00
cohort MDL-23532 fix missing include 2011-04-27 08:56:12 +02:00
database MDL-26221 add missing course/lib.php include when using make_categories_list() 2011-02-06 17:58:47 +01:00
flatfile MDL-24321 switching to stdClass in /e*/ 2010-09-21 08:14:41 +00:00
guest MDL-26991 use archetypes instead of deprecated 'legacy' when defining roles in enrol plugins 2011-03-28 19:19:54 +02:00
imsenterprise MDL-26189 protect imsenterprise enrol file 2011-01-31 13:22:55 +01:00
ldap MDL-27148 use new get_in_or_equal() param prefix instead of start 2011-04-14 15:15:01 +02:00
manual MDL-26250 Create a web service function that enrols users to a certain course 2011-05-04 12:23:18 +08:00
meta MDL-27148 use new get_in_or_equal() param prefix instead of start 2011-04-14 15:15:01 +02:00
mnet fixed wrong exception name 2010-09-17 12:32:26 +00:00
paypal MDL-26991 use archetypes instead of deprecated 'legacy' when defining roles in enrol plugins 2011-03-28 19:19:54 +02:00
self MDL-23532 enrol - fixed up SQL indenting and added missing sesskey calls that were removed after refactoring 2011-04-21 10:02:55 +08:00
yui MDL-23532 enrol - moved UI enrolment components from core enrol to their respective enrolment plugins 2011-04-21 10:02:54 +08:00
ajax.php MDL-23532 enrol - fixed regressions after latest weekly and improved moodle_page handling 2011-04-21 10:02:54 +08:00
bulkchange.php MDL-26770 enrol - Added support for bulk operations by enrol plugins 2011-04-21 10:13:13 +08:00
bulkchange_forms.php MDL-26770 enrol - Added support for bulk operations by enrol plugins 2011-04-21 10:13:13 +08:00
externallib.php MDL-26249 external enrol functions: get list of courses user is enrolled in 2011-04-25 10:53:29 +02:00
index.php enrolment MDL-23669 Added missing call to $PAGE->set_course from enrol/index.php 2010-08-05 02:24:39 +00:00
instances.php NOBUG: Added page heading 2010-09-23 05:37:00 +00:00
locallib.php MDL-26770 enrol - Added support for bulk operations by enrol plugins 2011-04-21 10:13:13 +08:00
otherusers.php MDL-23532 enrol - fixed regressions after latest weekly and improved moodle_page handling 2011-04-21 10:02:54 +08:00
README.txt MDL-25147 tidy up readme wording related to cron 2010-11-11 00:24:43 +00:00
renderer.php MDL-26770 enrol - Added support for bulk operations by enrol plugins 2011-04-21 10:13:13 +08:00
users.php MDL-23532 enrol - removed general handling of user enrolment editing/unenrolment plugins are now responsible for this 2011-04-21 10:02:55 +08:00
users_forms.php MDL-23532 enrol - removed general handling of user enrolment editing/unenrolment plugins are now responsible for this 2011-04-21 10:02:55 +08:00

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
=================

  config_form()
  process_config()


Login-time methods
==================

  Before Moodle 1.7
  -----------------

      get_student_courses()
      get_teacher_courses()

  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
  --------------------

      setup_enrolments()

  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
=============================

  print_entry()
  check_entry()
  check_group_entry()
  get_access_icons()

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.


Cron
====

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, Moodle.com
Martin Langhoff and Patrick Li, Catalyst IT