Source of file RegistrationPage.php
Size: 2,604 Bytes - Last Modified: 2021-12-23T10:10:06+00:00
/var/www/docs.ssmods.com/process/src/code/RegistrationPage.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | <?php class RegistrationPage extends Page { } class RegistrationPage_Controller extends Page_Controller { //Allow our form as an action static $allowed_actions = array( 'RegistrationForm' ); //Generate the registration form function RegistrationForm() { $Member=Member::currentUser(); if ($Member!=null){ //Get profile page if($ProfilePage = DataObject::get_one('EditProfilePage')) { //echo "profile page exists"; //Redirect to profile page with success message return $this->redirect($ProfilePage->Link()); } } else{ $fields = new FieldList( //new DropDownField('Group','<span>*</span> Group', array('Employers' => 'Employers','Employees'=>'Employees' )), new TextField('FirstName', '<span>*</span> Firstname'), new TextField('Surname', '<span>*</span> Surname'), new EmailField('Email', '<span>*</span> Email'), new ConfirmedPasswordField('Password', '<span>*</span> Password') ); // Create action $actions = new FieldList( new FormAction('doRegister', 'Register') ); // Create action $validator = new RequiredFields('Email'); return new Form($this, 'RegistrationForm', $fields, $actions, $validator); } } //Submit the registration form function doRegister($data,Form $form) { //Check for existing member email address if($member = DataObject::get_one("Member", "`Email` = '". Convert::raw2sql($data['Email']) . "'")) { //Set error message $form->sessionMessage($data['Email'].". Sorry, that email address already exists. Please choose another.", 'bad'); //Return back to form return $this->redirectBack(); //return Director::redirectBack(); } else{ //Otherwise create new member and log them in $Member = new Member(); $form->saveInto($Member); $Member->write(); $Member->login(); //Find or create the 'user' group if(!$userGroup = DataObject::get_one('Group', "Code = 'users'")) { $userGroup = new Group(); $userGroup->Code = "users"; $userGroup->Title = "users"; $userGroup->Write(); $userGroup->Members()->add($Member); } //Add member to user group $userGroup->Members()->add($Member); //Get profile page if($ProfilePage = DataObject::get_one('EditProfilePage')) { //echo "profile page exists"; //Redirect to profile page with success message return $this->redirect($ProfilePage->Link()); } } } } |