src/Controller/Front/ContactController.php line 44

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use Symfony\Component\HttpFoundation\Response;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Session\Session;
  7. use Doctrine\ORM\EntityManager;
  8. use App\Service\Search;
  9. use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3Validator;
  10. class ContactController extends FrontController
  11. {
  12. /**
  13. * @Route("/{_locale}/contact", name="contact_form")
  14. */
  15. public function form(Request $request, \Doctrine\ORM\EntityManagerInterface $em, Session $session, \App\Service\Mailer $mailer, \Symfony\Contracts\Translation\TranslatorInterface $translator, Recaptcha3Validator $recaptcha3Validator)
  16. {
  17. $form = $this->createForm(\App\Form\ContactType::class, null, [
  18. 'translator' => $translator,
  19. 'entity_manager' => $em,
  20. 'attr' => [
  21. 'novalidate' => 'novalidate'
  22. ]
  23. ]);
  24. if($request->isMethod('post')){
  25. $form->handleRequest($request);
  26. if($form->isSubmitted() && $form->isValid()){
  27. $data = $form->getData();
  28. // $score = $recaptcha3Validator->getLastResponse()->getScore();
  29. try{
  30. $mailer->sendContact($data);
  31. $session->getFlashBag()->add('notice',$translator->trans('Vos informations ont bien été transmises.'));
  32. return $this->redirectToRoute('contact_form');
  33. }
  34. catch (Exception $ex) {
  35. $session->getFlashBag()->add('error',$translator->trans("Une erreur s'est produite."));
  36. }
  37. }
  38. }
  39. return $this->render('front/forms/contact.html.twig',[
  40. 'form' => $form->createView()
  41. ]);
  42. }
  43. /**
  44. * @Route("/{_locale}/catalog", name="catalog_form")
  45. */
  46. public function catalog(Request $request, \Doctrine\ORM\EntityManagerInterface $em, Session $session, \App\Service\Mailer $mailer, \Symfony\Contracts\Translation\TranslatorInterface $translator)
  47. {
  48. $form = $this->createForm(\App\Form\CatalogType::class, null, [
  49. 'translator' => $translator,
  50. 'attr' => [
  51. 'novalidate' => 'novalidate'
  52. ]
  53. ]);
  54. if($request->isMethod('post')){
  55. $form->handleRequest($request);
  56. if($form->isSubmitted() && $form->isValid()){
  57. $data = $form->getData();
  58. try{
  59. $mailer->sendCatalog($data);
  60. $session->getFlashBag()->add('notice',$translator->trans('Vos informations ont bien été transmises.'));
  61. return $this->redirectToRoute('catalog_form');
  62. }
  63. catch (Exception $ex) {
  64. $session->getFlashBag()->add('error',$translator->trans("Une erreur s'est produite."));
  65. }
  66. }
  67. }
  68. return $this->render('front/forms/catalog.html.twig',[
  69. 'form' => $form->createView()
  70. ]);
  71. }
  72. }