10375 Posts in 2190 Topics by 1707 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 2514 Views |
-
Register Module - Improvements

13 June 2009 at 10:18am
I've made the following changes to my copy of the Registration module [unreleased] which Sam may want to add..
In RegisterPage_Controller class add
function init() {
parent::init();
if(!$usersGroup = DataObject::get_one("Group", "Code = 'users'")) {
$group = new Group();
$group->Code = 'users';
$group->Title = "Users";
$group->write();
}
}Replace Form() method with :
/**
* Return the edit form for the current user
*/
function Form() {
// Get the fields from a new member - seems like a good default
$member = new Member();
$fields = $member->getMemberFormFields();
$fields->replaceField('Password', new PasswordField('Password') );
$actions = new FieldSet(
new FormAction('register', 'Register')
);$form = new Form(
$this,
'Form',
$fields,
$actions,
new RequiredFields("FirstName", "Surname", "Email", "Password")
);return $form;
}this then gives a password field rather than a text field, and adds a validator
Replace register() method with :
/**
* Save the profile details
*/
function register($data, $form) {
// Create a new member and save the form into it
$member = new Member();
$form->saveInto($member);
// Write to the databsae
$member->write();
$groupMember = new Group();
$groupMember->addToGroupByName($member, 'users');
// To do: add a status message on the form, using the standard form message system// Return to the original form
Director::redirect($this->Link() . 'thanks');
}This adds the new Member to the Group we created in init() -- 'users'
-
Re: Register Module - Improvements

14 June 2009 at 9:58pm
Hi there, thanks for the updates and it works as you'd expect. I have a question tho, if I was wanting to capture additional member data, ie. Phone, Address details, City, Country ect. What is the way to achieve this? is it possible to have this data in a different table to member or just add extra fields to existing member table? thanks.
-
Re: Register Module - Improvements

14 June 2009 at 10:10pm
chrisdarl - if you want to suggest code changes to the modules please use open.silverstripe.com and submit the change as a patch / diff file so we can merge it into the module
otherwise it just sits round on the forum for years.
When you make your ticket on open.silverstripe.com please ensure you list the changes you made and why and tag it with the correct component / tags.
-
Re: Register Module - Improvements

18 June 2009 at 1:55pm
More clues here;
http://www.silverstripe.org/customising-the-cms/show/251406#post251406
and here (this link is at bottom of above post);
this tutorial may be useful for you :
http://www.ssbits.com/custom-login-form-with-group-based-redirection/Also, in one of the tutorials in suggests, if you want to just grab peoples details and not give them any 'logged in' capabilities, then don't register them (with a password) in the core members table.
The Forum module is perfect for seeing how to extend the current member table, if you do need to do it tho.
| 2514 Views | ||
|
Page:
1
|
Go to Top |


