<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use App\Controller\AbstractController;
use App\Entity\Mail;
use App\Model\ContactModel;
use App\Form\ContactType;
use ReCaptcha\ReCaptcha;
use App\Misc\Flashes;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\Mime\Address;
class ContactController extends AbstractController
{
public function contact(Request $request)
{
$contact = new ContactModel();
$form = $this->createForm(ContactType::class, $contact);
$captchaError = false;
if ($request->getMethod() === 'POST') {
$recaptcha = new ReCaptcha($this->getParameter('google_recaptcha_private_key'));
$resp = $recaptcha->verify($request->request->get('g-recaptcha-response'), $request->getClientIp());
$form->handleRequest($request);
if ($resp->isSuccess()) {
if ($form->isValid()) {
// notify admin with request and link to presta page
// $mail = new Mail();
// $mail
// ->setFromEmail($this->getParameter('email_from'))
// ->setFromName($this->getParameter('name_from'))
// ->setToEmail($this->getParameter('admin_email'))
// ->setSubject('Nouveau message depuis le formulaire de contact')
// ->setContent($this->render('Email/contact.html.twig', [
// 'contact' => $contact,
// ]))
// ->setStatus('new');
// $this->getEM()->persist($mail);
// $this->getEM()->flush();
$email = (new TemplatedEmail())
->from(new Address($this->getParameter('email_from'), $this->getParameter('name_from')))
->to(new Address($this->getParameter('admin_email')))
->subject('Nouveau message depuis le formulaire de contact')
->htmlTemplate('Email/contact.html.twig')
->context(
[
'contact' => $contact,
]
);
$this->getMailer()->send($email);
$this->addFlash(Flashes::SUCCESS, 'Votre demande a été envoyée.');
// return $this->redirectToRoute('public_index');
} else {
$this->addFlash(Flashes::ERROR, 'Votre formulaire comporte des erreurs.');
}
} else {
$this->addFlash(Flashes::ERROR, 'Votre formulaire comporte des erreurs.');
$captchaError = true;
}
}
return $this->render('Public/contact.html.twig', array(
'contact_form' => $form->createView(),
'captcha_error' => $captchaError
));
}
}