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.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

Customising the CMS /

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

SOLVED?? Multiform / action templates

Go to End

2 Posts   1848 Views


Community Member, 11 Posts

1 August 2010 at 2:22am

Edited: 01/08/2010 8:59am


I'm quite new to Silverstripe and currently trying to make a module where 2 different kinds of users can register themselves or edit their profile.

To achieve this, I would like to use the multiform module. I installed it and it works using the kind of procedure described in the tutorials and the silverstripe book (using a specific page for the registration, which can be placed in the menu).

However, I tried to make a user registration proces similar to the one in the forum module, using a "register" action in a "BusinessUser" page controller, without a specific page. It then shows step 1 of the form correctly, but doesn't proceed to step 2.

Can anyone please explain a bit what's going wrong here (so that I learn a bit more about the idea behind the system) and probably give a suggestion how to deal with it?

class BusinessRegistrationMultiForm extends MultiForm {
   public static $start_step = 'BusinessRegistrationFirstStep';

   // ...

class BusinessRegistrationFirstStep extends MultiFormStep {
	public static $next_steps = 'BusinessRegistrationLastStep';
	function getFields() {
		$fields = singleton( 'Member' )->getBusinessFirstFields();
		return $fields;

class MemberProfile extends Page_Controller {

   function register() {
      return array(
         "Title" => 'titel', 
         "Subtitle" => 'Register',
   function Link($action = null) {
      return "$this->class/$action";


class BusinessProfile extends MemberProfile {

	function BusinessRegistrationForm() {
		return new BusinessRegistrationMultiForm($this, 'BusinessRegistrationForm');

And then in

<div id="UserProfile">
	<% if CurrentMember %>
		<p><% _t('PLEASELOGOUT', 'Please logout before you register') %> - <a href="Security/logout"><% _t('LOGOUT', 'Logout') %></a></p>
	<% else %>
	<% end_if %>

Thanks, Jeroen.


Community Member, 11 Posts

1 August 2010 at 8:58am


I added the following code to all steps:

   public function Link() {
      return Controller::curr()->Link() . 'register?MultiFormSessionID=' . $this->Session()->Hash;

It works, but shouldn't this be handled by the multiform module itself? Why does it cutoff the "register" (action) part if I don't include this code in the steps?