mirror of
https://github.com/moodle/moodle.git
synced 2025-03-15 05:00:06 +01:00
* Added MoodleQuickForm method closeHeaderBefore($elementName); http://docs.moodle.org/en/Development:lib/formslib.php_Form_Definition#Use_Fieldsets_to_group_Form_Elements * Added moodleform method add_action_buttons(); see http://docs.moodle.org/en/Development:lib/formslib.php_Form_Definition#add_action_buttons.28.24cancel_.3D_true.2C_.24revert_.3D_true.2C_.24submitlabel.3Dnull.29.3B * is_cancelled method added to moodleform http://docs.moodle.org/en/Development:lib/formslib.php_Usage#Basic_Usage_in_A_Normal_Page * added hidden labels to elements within groups such as the date_selector select boxes and other elements in 'groups' * quiz/mod.html migrated to formslib * glossary/edit.html migrated to formslib * extended registerNoSubmitButton() functionality to automatically add js to onclick to bypass client side js input validation. * added no_submit_button_pressed() function that can be used in a similar way to is_cancelled() as a test in the main script to see if some button in the page has been pressed that is a submit button that is used for some dynamic functionality within the form and not to submit the data for the whole form. * added new condition for disabledIf which allows to disable another form element if no options are selected from within a select element. * added default 'action' for moodleform - strip_querystring(qualified_me()) http://docs.moodle.org/en/Development:lib/formslib.php_Usage#Basic_Usage_in_A_Normal_Page
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 5 minutes. 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