Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Archive

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, biapar, Willr, Ingo, simon_w

So how does a new user register?


Reply

18 Posts   53699 Views

Avatar
Cy

7 October 2008 at 9:31am Community Member, 11 Posts

Is a "Register New User" module in the works or possibly a write-up on pulling from the Forum module? I figured out a form to add new users to groups but I am clueless how to include an encrypted password. Is it possible to force a "Forgot Password" for new signups? (solving my "verify email address" problem) Thanks!

Avatar
Sean

7 October 2008 at 11:42am (Last edited: 7 October 2008 11:53am), Forum Moderator, 921 Posts

Member::create_new_password() will generate a password.

So, you could do something like this, which takes the form data and puts it into a new member instance. This is the submit handler for the doForm action for where you setup your form, which would look something like:

class RegistrationForm extends Form {

   function __construct($controller, $name) {

      $fields = new FieldSet(
         new TextField('FirstName', 'First name'),
         new EmailField('Email', 'Email address')
      );

      $actions = new FieldSet(
         new FormAction('doForm', 'Submit')
      );

      $validator = new RequiredFields(
         'FirstName',
         'Email'
      );

      parent::__construct($controller, $name, $fields, $actions, $validator);
   }

   function doForm($data, $form) {

      // Create a new member instance, loading all the form data in
      $member = new Member();
      $form->saveInto($member);

      // Set the member password and write with all the form data collected to DB
      $member->Password = Member::create_new_password();
      $member->write();

      $form->sessionMessage('Thanks, you have been signed up!', 'good');
      Director::redirectBack();
   }

}

Hope that helps.

Generally a module would be great, although it would need to be fairly abstract to allow for all combination of fields that a user can sign up with.

Sean