Adding custom profile fields to the signup page.

The only two authentication plugins this affects are email and ldap.
This commit is contained in:
ikawhero
2007-08-20 08:30:34 +00:00
parent 33a34cd4d0
commit 831d450e3f
4 changed files with 33 additions and 2 deletions
+7
View File
@@ -74,11 +74,18 @@ class auth_plugin_email extends auth_plugin_base {
* @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');
}
+6
View File
@@ -340,6 +340,9 @@ class auth_plugin_ldap extends auth_plugin_base {
* @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');
}
@@ -355,6 +358,9 @@ class auth_plugin_ldap extends auth_plugin_base {
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);
+3
View File
@@ -1,6 +1,7 @@
<?php // $Id$
require_once($CFG->libdir.'/formslib.php');
require_once($CFG->dirroot.'/user/profile/lib.php');
class login_signup_form extends moodleform {
function definition() {
@@ -57,6 +58,8 @@ class login_signup_form extends moodleform {
$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>');
+17 -2
View File
@@ -366,7 +366,22 @@ function profile_display_fields($userid) {
}
}
/**
* 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);
}
}
}
?>