moodle/enrol
2012-05-09 10:28:55 +08:00
..
authorize MDL-32735 add missing message provider info for unmaintained enrol_authorize 2012-05-06 12:08:34 +02:00
category MDL-31107 Fixing instaces of below where it is written as bellow (two L's) 2012-02-10 15:05:16 +08:00
cohort MDL-31831 whitespace clean - take2 2012-03-01 02:07:51 +01:00
database MDL-32178 ignore duplicates in enroL_database external course table 2012-05-09 11:18:55 +12:00
flatfile MDL-31429 enrol: added db/messages.php for enrolment plugins and added some smarts to messaging so it won't display message settings for disabled enrolment plugins 2012-04-26 16:10:13 +07:00
guest MDL-30809 do not add guest info to add course form if default instance prevented 2012-01-03 13:05:38 +13:00
imsenterprise MDL-31429 enrol: added db/messages.php for enrolment plugins and added some smarts to messaging so it won't display message settings for disabled enrolment plugins 2012-04-26 16:10:13 +07:00
ldap MDL-31388 Fixing typo in enrol_ldap 2012-02-17 11:45:47 +08:00
manual Revert "MDL-30843 and MDL-30842 - accessibility compliance: Add <label> for form input text and select tag" 2012-04-11 17:20:29 +12:00
meta MDL-29684 improve enrol_meta plugin 2012-02-03 11:29:47 +13:00
mnet MDL-32459 Adjust order of remote enrolment help text to suit form order 2012-04-23 10:44:11 +08:00
paypal MDL-31429 enrol: added db/messages.php for enrolment plugins and added some smarts to messaging so it won't display message settings for disabled enrolment plugins 2012-04-26 16:10:13 +07:00
self MDL-30945 add support for unenrolling of individual users + code cleanup 2012-01-04 01:53:33 +01:00
yui MDL-30627 Ensure that the dialogue is always shown in the current view window 2011-12-20 13:38:41 +08:00
ajax.php MDL-30945 add support for unenrolling of individual users + code cleanup 2012-01-04 01:53:33 +01:00
bulkchange.php MDL-30945 add support for unenrolling of individual users + code cleanup 2012-01-04 01:53:33 +01: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-29347 core_enrol_get_enrolled_users web service should limit the number of participants - Jerome/Dongsheng 2012-02-27 11:45:04 +08:00
index.php MDL-29824 improve notification of max number of enrolled users 2011-10-30 13:34:23 +01:00
instances.php MDL-30789 add new update_status() method to enrol plugins and improve enrol cache invalidation 2011-12-18 17:31:12 +01:00
locallib.php MDL-31923 Correctly respect hiddenfields and capabilities 2012-03-12 14:46:34 +13:00
otherusers.php MDL-31923 Correctly respect hiddenfields and capabilities 2012-03-12 14:46:34 +13:00
README.txt MDL-25147 tidy up readme wording related to cron 2010-11-11 00:24:43 +00:00
renderer.php MDL-26647 (8) Support showuseridentity on enrol screen 2011-11-04 13:57:21 +00:00
unenroluser.php MDL-30945 add support for unenrolling of individual users + code cleanup 2012-01-04 01:53:33 +01:00
upgrade.txt MDL-29897 Update upgrade.txt files 2011-11-03 08:11:55 +01:00
users.php MDL-31923 Correctly respect hiddenfields and capabilities 2012-03-12 14:46:34 +13: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