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.

All other Modules /

Discuss all other Modules here.

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

Newsletter module subscribe form problem


4 Posts   1196 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