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've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

All other Modules /

Discuss all other Modules here.

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

UserForms: sending custom messages incl. variables


Go to End


2 Posts   2277 Views

Avatar
Martiman

Community Member, 7 Posts

18 August 2010 at 12:40am

Hi,

We're searching for a method to send custom messages after filling in a form, using the fields of the form in the message (for example, tell-a-friend messages).

Currently there seems to be no way of doing this with UserForms. It is possible to make a custom message in the tab "Email Recipients", but there is no way to use the information from the form itself. I would like to see some way to use the fields in messages like this:

"Dear $NameTo,
foo foo foo
Chears,
$NameFrom ($EmailFrom)"

It would be nice to get a checkbox too where you can define whether or not you want to get the whole form content glued beneath the body.

Will it be possible to implement such a function in one of the next releases? Are there some other ideas to get this functionality until the UserForms module supports this?

Thnx!

Avatar
novaweb

Community Member, 116 Posts

18 August 2010 at 9:19am

Hi Martiman,

This is easy to do if you code the form yourself.

Basically - create a new page type for your form:

MyFormPage.php

and in MyFormPage_Controller() {

you should define a form function:

function Form() {

Go here for details on the form function
http://doc.silverstripe.org/recipes:forms
http://doc.silverstripe.org/form

}

In your submit function, all your form variables will be available to send in the email in the following way:

$data["FirstName"]
$data["Email"] etc

So in the form function you could do something like the following:

	function submit($data, $form) {
	
	$form->makeReadonly();
	$email = new Email;
	$email->to = 'you@you.com';
	$email->from = 'referral@mywebsite.com';
	$email->subject = 'New Referral';
	$email->body = "Hi,<br /><br />There has been a blah blah blah from  " . $data['FirstName'] . " " . $data['LastName'] . " through the website!";
	$email->send();

	// Redirect
	

		Director::redirect('finish-page);

	
	}
	
}
 
// This code may not be perfect I had to cut a lot of sensitive data out!!!

Josh