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:

All other Modules /

Discuss all other Modules here.

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

Newsletter module subscribe form problem

Go to End

4 Posts   1429 Views


Community Member, 5 Posts

28 May 2010 at 2:24am

Hello everyone,

I'm new with SilverStripe and I have a problem with the newsletter module. I've made a subscribe form, but I cannot enable the field for the users email. The first and surname work flawless and the data entered in the form is submitted to the mailing list.

In the backoffice, I cannot enable the field for the email, as the checkbox is disabled.

Can anyone tell me what could cause this problem?



Community Member, 52 Posts

1 June 2010 at 10:17pm

Hi there,

I had trouble with the subscription page too so ended up patching one together form bits found on the forum/docs. It sits in /mysite/code/SignupPage.php

hope it helps. The key thing is to set it to the right group in $defaultGroupID


class SignupPage extends Page {
	static $db = array(
	static $has_one = array(
class SignupPage_Controller extends Page_Controller {
	// Make sure you set this to the right group.
	// See
	private	 $defaultGroupID = 3;
	* This function lets you put a form on your page, using $Form.
	function Form() {
		$fields = new FieldSet(
			// List your fields here
			new TextField("FirstName", "First name"),
			new TextField("Surname"),
			new EmailField("Email", "Email address")
		$actions = new FieldSet(
			// List the action buttons here
			new FormAction("SignupAction", "Sign up")
		$validator = new RequiredFields(
 			"FirstName", "Email"
			// List the required fields here: "Email", "FirstName"
		$form = new Form($this, "Form", $fields, $actions, $validator);
		//spam protection added - needs to be set in _config.php
		$protector = SpamProtectorManager::update_form($form,  null, array('FirstName' => 'author_name', 'Email' => 'author_email',));
		if($protector) $protector->setFieldMapping('FirstName', 'Email');

	return $form;
	* This function is called when the user submits the form.
	function SignupAction($data, $form) {
		// Create a new Member object and load the form data into it
		$member = new Member();
		// Write it to the database.  This needs to happen before we add it to a group
		// Add the member to group. (Check if it exists first)
		if($group = DataObject::get_one('Group', "ID = $this->defaultGroupID")) { 
			// Redirect to a page in this case the home page
			// Redirect to a failure page
			/* Director::redirect('failure/'); */



Community Member, 5 Posts

2 June 2010 at 12:09am

I've tried the thing above, but the result is a white page. When I remove $form from my template however, the page loads, but without the form (which is logical)


Community Member, 52 Posts

2 June 2010 at 10:24am

Hi, have you got the spamprotection module installed? If not you'll need to take that part out. It's running on ss 2.4 and the current newsletter release from