The only two authentication plugins this affects are email and ldap.
* @param boolean $notify print notice with link and terminate
*/
function user_signup($user, $notify=true) {
+ global $CFG;
+ require_once($CFG->dirroot.'/user/profile/lib.php');
+
$user->password = hash_internal_user_password($user->password);
if (! ($user->id = insert_record('user', $user)) ) {
print_error('auth_emailnoinsert','auth');
}
+
+ /// Save any custom profile field information
+ profile_save_data($user);
+
if (! send_confirmation_email($user)) {
print_error('auth_emailnoemail','auth');
}
* @param boolean $notify print notice with link and terminate
*/
function user_signup($user, $notify=true) {
+ global $CFG;
+ require_once($CFG->dirroot.'/user/profile/lib.php');
+
if ($this->user_exists($user->username)) {
print_error('auth_ldap_user_exists', 'auth');
}
print_error('auth_emailnoinsert', 'auth');
}
+ /// Save any custom profile field information
+ profile_save_data($user);
+
$this->update_user_record($user->username);
update_internal_user_password($user, $plainslashedpassword);
<?php // $Id$
require_once($CFG->libdir.'/formslib.php');
+require_once($CFG->dirroot.'/user/profile/lib.php');
class login_signup_form extends moodleform {
function definition() {
$mform->addRule('country', get_string('missingcountry'), 'required', null, 'server');
$mform->setDefault('country', '');
+ profile_signup_fields($mform);
+
if (!empty($CFG->sitepolicy)) {
$mform->addElement('header', '', get_string('policyagreement'), '');
$mform->addElement('static', 'policylink', '', '<a href="'.$CFG->sitepolicy.'" onclick="this.target=\'_blank\'">'.get_String('policyagreementclick').'</a>');
}
}
-
-
+/**
+ * Adds code snippet to a moodle form object for custom profile fields that
+ * should appear on the signup page
+ * @param object moodle form object
+ */
+function profile_signup_fields(&$mform) {
+ global $CFG;
+
+ if ($fields = get_records('user_info_field', 'signup', 1)) {
+ foreach ($fields as $field) {
+ require_once($CFG->dirroot.'/user/profile/field/'.$field->datatype.'/field.class.php');
+ $newfield = 'profile_field_'.$field->datatype;
+ $formfield = new $newfield($field->id);
+ $formfield->edit_field($mform);
+ }
+ }
+}
?>