/** * Create the subscription form * @return \Form */ public function McSubscribeForm() { $fieldsArr = array(); $email = new EmailField('Email', 'Email'); $email->setValue('Your e-mail'); array_push($fieldsArr, $email); if (Config::inst()->get('MailChimpController', 'country')) { $country = new CountryDropdownField('Country', 'Country'); array_push($fieldsArr, $country); } if (Config::inst()->get('MailChimpController', 'topics')) { $topicsArr = Config::inst()->get('MailChimpController', 'topicsArr'); $topics = new CheckboxSetField($name = "Topics", $title = "I am interested in the following topics", $topicsArr, $value = NULL); array_push($fieldsArr, $topics); } if (Config::inst()->get('MailChimpController', 'otherTopic')) { $otherTopic = new TextField('Other', ''); array_push($fieldsArr, $otherTopic); } $fields = new FieldList($fieldsArr); $actions = new FieldList(new FormAction('McDoSubscribeForm', 'Send Now')); $required = new RequiredFields(array('Email')); $form = new Form($this, 'McSubscribeForm', $fields, $actions, $required); return $form; }
public function internalCheck($email, $checkText, $expectSuccess) { $field = new EmailField("MyEmail"); $field->setValue($email); $val = new EmailFieldTest_Validator(); try { $field->validate($val); // If we expect failure and processing gets here without an exception, the test failed $this->assertTrue($expectSuccess, $checkText . " (/{$email}/ passed validation, but not expected to)"); } catch (Exception $e) { if ($e instanceof PHPUnit_Framework_AssertionFailedError) { throw $e; } else { if ($expectSuccess) { $this->assertTrue(false, $checkText . ": " . $e->GetMessage() . " (/{$email}/ did not pass validation, but was expected to)"); } } } }
/** * Save the changes to the form */ function submit($data, $form) { $bt = defined('DB::USE_ANSI_SQL') ? "\"" : "`"; $member = Member::currentUser(); $newMember = false; Session::set("FormInfo.Form_Form.data", $data); $emailField = new EmailField("Email"); $emailField->setValue($data["Email"]); if ($emailField) { if (!$emailField->validate($form->validator)) { $form->addErrorMessage("Blurb", $this->ErrorBadEmail, "bad"); $this->redirectBack(); return; } } if (!$member) { $newMember = true; $member = Object::create('Member'); $form->sessionMessage($this->WelcomeTitle, 'good'); $id = 0; } else { $form->sessionMessage($this->ThankYouTitle, 'good'); $id = $member->ID; } //validation if ($existingMember = Member::get()->filter(array("Email" => Convert::raw2sql($data['Email'])))->exclude(array("ID" => $id))->first()) { $form->addErrorMessage("Blurb", $this->ErrorEmailAddressAlreadyExists, "bad"); return $this->redirectBack(); } // check password fields are the same before saving if ($data["Password"]["_Password"] != $data["Password"]["_ConfirmPassword"]) { $form->addErrorMessage("Password", $this->ErrorPasswordDoNotMatch, "bad"); return $this->redirectBack(); } if (!$id && !$data["Password"]["_Password"]) { $form->addErrorMessage("Password", $this->ErrorMustSupplyPassword, "bad"); return $this->redirectBack(); } $password = $member->Password; if (isset($data["Password"]["Password"]) && strlen($data["Password"]["Password"]) > 3) { $password = $data["Password"]["Password"]; } $form->saveInto($member); $member->changePassword($password); $member->write(); if ($newMember) { $form->saveInto($member); $member->write(); } //adding to group $group = Group::get()->filter(array("Code" => self::$register_group_code))->first(); if ($group) { $member->Groups()->add($group); } if ($newMember) { $member->logIn(); $link = ContentController::join_links($this->Link(), 'welcome'); } else { $link = ContentController::join_links($this->Link(), 'thanks'); } if (!isset($_REQUEST["BackURL"]) && Session::get('BackURL')) { $_REQUEST["BackURL"] = Session::get('BackURL'); } if (isset($_REQUEST["BackURL"])) { $link = urldecode($_REQUEST["BackURL"]); Session::set('BackURL', ''); } if ($link) { return $this->redirect($link); } return array(); }