enrol API: Updated documentation
[moodle.git] / enrol / README.txt
1 ENROLMENT MODULES
2 -----------------
4 (Yes, that's the correct English spelling  ;-) )
6 enrol.class.php contains a simple 'factory' method that
7 will instantiate your class when called. For an example
8 of a complete class, take a look at the 'manual' class.
10 Each plugin is in a subfolder here.
12 Except for the configuration methods, most methods 
13 defined in the API are optional -- callers will use
14 method_exists() to determine whether your plugin offers
15 the functionality they are after.
18 Mandatory methods
19 -----------------
21   config_form
22   process_config
25 Login-time methods
26 ------------------
28   get_student_courses
29   get_teacher_courses
31 You probably will want to offer at least get_student_courses().
33 These methods are triggered when a user logs in successfully,
34 and they are expected to populate $USER->student and 
35 $USER->teacher arrays and maintain (add/delete) entries from
36 user_students and user_teachers.
38 These methods are relevant for most plugins, and are the main
39 interest for plugins that work with a read-only backend such
40 as LDAP or a database. You probably will want to offer at 
41 least get_student_courses().
43 Note that with the multi-enrol infrastructure two things have 
44 changed. We now have an 'enrol' field in those tables, and 
45 each plugin must maintain only its own enrolment records. 
46 Conversely, the $USER->student and ->teacher arrays have the
47 enrolment type as value, like
49    $USER->student = array ( $courseid => $plugintype );
51 Interactive enrolment methods
52 -----------------------------
54   print_entry()
55   check_entry()
56   check_group_entry()
57   get_access_icons()
59 These methods are for enrolment plugins that allow for user
60 driven enrolment. These methods are relevant for plugins 
61 that implement payment gateways (credit card, paypal),
62 as well as "magic password" schemes. 
64 Only one interactive enrolment method can be active for
65 a given course. The site default can be set from
66 Admin->Enrolment, and then individual courses can be
67 set to specific interactive enrolment methods.
70 Cron
71 ----
73 If your class offers a cron() method, it will be invoked by
74 the standard Moodle cron every 5 minutes. Note that if the
75 tasks are not lightweight you must control how frequently they
76 execute, perhaps offering a config option.
78 For really heavy cron processing, an alternative is to have
79 a separate script to be called separately. Currently the LDAP
80 and DB plugins have external scripts. 
83 Guilty Parties
84 --------------
86 Martin Dougiamas and Shane Elliott, Moodle.com
87 Martin Langhoff and Patrick Li, Catalyst IT