public function customFormActions($isReadonly = false) { $fields = parent::customFormActions($isReadonly); // get the newsletters in the system $newsletterTypes = DataObject::get('NewsletterType'); $availableNewsletters = array(); $nlCheckboxes = array(); foreach ($this->Newsletters() as $subscribeTo) { $availableNewsletters[] = $subscribeTo->ID; } // create a checkbox for each newsletter if ($newsletterTypes && is_object($newsletterTypes)) { foreach ($newsletterTypes as $newsletterType) { $nlCheckboxes[] = new CheckboxField("CustomNewsletters[{$newsletterType->ID}]", $newsletterType->Title, in_array($newsletterType->ID, $availableNewsletters)); } } $fields->push(new OptionsetField('AllNewsletters', '', array(1 => 'All newsletters', 0 => 'Specific newsletters'), $this->AllNewsletters)); $fields->push(new CompositeField($nlCheckboxes)); $fields->push(new TextField('Subject', 'Subject line on confirmation', $this->Subject)); return $fields; }