Silverstripe Version:
4.0
Question:
How I can validate answer “Code == 4” in Controller and than if it is OK send form to email.
class Contect_Controller extends PageController {
private static $allowed_actions = ['ContactForm'];
public function ContactForm()
{
$fields = new FieldList(
TextField::create('Name', 'Meno a priezvisko *'),
EmailField::create('Email', 'Email *'),
TextareaField::create('Message', 'Správa'),
TextareaField::create('Code', '1 + 3 ='),
CheckboxField::create('GDPR', 'Súhlasím so spracovaním osobných údajov. *')
);
$actions = new FieldList(
new FormAction('submit', 'Send')
);
$required = new RequiredFields('Name', 'Email', 'Code', 'GDPR');
return new Form($this, 'ContactForm', $fields, $actions, $required);
return $form;
}
public function submit($data, $form)
{
$email = new Email();
$email->setTo('support@zuzanasimova.sk');
$email->setFrom('postmaster@zuzanasimova.sk');
$email->setSubject("Správa z kontaktného formuláru - zuzanasimova.sk");
$messageBody = "
<h2>Formulár zo stránky zuzanasimova.sk</h2>
<h3>{$data['Name']} píše:</h3>
<p>{$data['Message']}</p>
<p>Odosielateľa môžete kontaktovať na adrese: {$data['Email']}</p>
<h3>Súhlas s poskutnutím osobných údajov:</h3>
<p>Súhlasím so spracovaním a uchovaním osobných údajov.</p>
";
$email->setBody($messageBody);
$email->send();
return [
'SuccessMessage' => 'Váš e-mail bol odoslaný. Ďakujeme budeme vás kontaktovať.',
'Form' => ''
];
}
}