Skip to content
Browse files

Adding custom profile fields to the signup page.

The only two authentication plugins this affects are email and ldap.
  • Loading branch information...
1 parent 33a34cd commit 831d450e3ff4157c4b3cfdb960eaae88b7bb7a23 ikawhero committed Aug 20, 2007
Showing with 33 additions and 2 deletions.
  1. +7 −0 auth/email/auth.php
  2. +6 −0 auth/ldap/auth.php
  3. +3 −0 login/signup_form.php
  4. +17 −2 user/profile/lib.php
View
7 auth/email/auth.php
@@ -74,11 +74,18 @@ function can_signup() {
* @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');
}
View
6 auth/ldap/auth.php
@@ -340,6 +340,9 @@ function can_signup() {
* @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 @@ function user_signup($user, $notify=true) {
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);
View
3 login/signup_form.php
@@ -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 @@ 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>');
View
19 user/profile/lib.php
@@ -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);
+ }
+ }
+}
?>

0 comments on commit 831d450

Please sign in to comment.
Something went wrong with that request. Please try again.