1999 Posts in 1421 Topics by 613 members
|Go to End|
1 April 2011 at 7:53pm Last edited: 1 April 2011 7:53pm
I've been trying to find a solution to this today without much luck.
I want to display a Member Registration Form next to the User Login Form. So if the user doesn't have an account they can just create one on the same page. I'm considering solving it this way - http://www.silverstripe.org/archive/show/3158?start=8#post178888
How would you go about doing this?
2 April 2011 at 10:28am
I would add the register form to my Page_Controller class (say as function RegisterForm), then create a Security_login.ss template in my Layout directory that call both $Form and $RegisterForm
2 April 2011 at 12:26pm
Ahh I see.
I was trying to extend the LoginForm class. I didn't think to add it to the Page_controller instead. IT should be easy then to just update the template with the two forms. That sounds like a hell of a lot easier way of doing it. I'll try it out on Monday.
4 April 2011 at 1:39pm Last edited: 4 April 2011 1:41pm
I've added the form now to the Page Controller and it's displaying in the template but when I submit I get this error message.
The action 'RegistrationForm' does not exist in class Security
Does anybody know how I can add this action to the Security class?. I don't really want to change the core class if I can avoid that.
5 April 2011 at 2:18pm Last edited: 5 April 2011 2:20pm
This was not as easy as I had hoped.
Overriding Security.php's $allowed_actions array worked for the Registration form but then failed for all over actions performed by $LoginForm such as "Logging In" and "Logging Out". It wasn't obvious where these are being set.
To solve this issue I eventually created a RegistrationPage class with the form and included a non-custom $LoginForm into the template.
I then set a default login destination in the config like this.
I then fixed up the Securitty.ss template to show a message when logged in / logged out as the default logout action is still to redirect to this template.
|Go to Top|