src/Controller/ContactController.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Service\Mailjet;
  4. use App\Form\ContactType;
  5. use App\Entity\ContactForm;
  6. use App\Service\StaticData;
  7. use App\Service\CheckRecaptcha;
  8. use App\Repository\PageHeaderRepository;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use App\Repository\ContactAreaRepository;
  11. use DateTime;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  16. class ContactController extends AbstractController
  17. {
  18.     public function __construct(EntityManagerInterface $managerStaticData $statics)
  19.     {
  20.         $this->manager $manager;
  21.         $this->statics $statics->getStaticData();
  22.     }
  23.     /**
  24.      * @Route("/{_locale}/contact", name="contact_index")
  25.      */
  26.     public function index(CheckRecaptcha $recaptchaRequest $requestPageHeaderRepository $pageRepoContactAreaRepository $areaRepo): Response
  27.     {
  28.         $page $pageRepo->findOneBy(['page' => 'contact']);
  29.         $area $areaRepo->findOneBy([]);
  30.         #   Formulaire de contact
  31.         $contactEntity = new ContactForm();
  32.         $contactForm $this->createForm(ContactType::class, $contactEntity);
  33.         $contactForm->handleRequest($request);
  34.         if ($contactForm->isSubmitted() && $contactForm->isValid()) {
  35.             define('SITE_KEY''6LecwkQsAAAAAJ2fiCGD_CZeXV-v5UlIpBG57OmE');
  36.             define('SECRETE_KEY''6LecwkQsAAAAAEPV_YSvd_jWoaaKZG4ja_l4PS6c');
  37.             if ($recaptcha->check($_POST['contact-recaptcha_response'], SECRETE_KEY)) {
  38.                 $data $contactForm->getData();
  39.                 $statics $this->statics['data'];
  40.                 #   Envoi d'email MailJet 
  41.                 #   client
  42.                 $mailjet = new Mailjet();
  43.                 $mail_content $this->renderView('components/mail/_contact_recap.html.twig'compact('data''statics'));
  44.                 $mailjet->send("caurettemarc@gmail.com""Colombine"$data->getEmail(), $data->getFirstName() . " " $data->getLastName(), 'Colombine | Accusé de réception'$mail_content7650701);
  45.                 #   Proprio
  46.                 $mailjet = new Mailjet();
  47.                 $mail_content $this->renderView('components/mail/_contact.html.twig'compact('data''statics'));
  48.                 $mailjet->send("caurettemarc@gmail.com"$data->getFirstName() . " " $data->getLastName(), "maximeavril.dev@gmail.com"$data->getFirstName() . " " $data->getLastName(), 'Colombine | Contact'$mail_content7650701);
  49.                 $contactEntity->setCreatedAt(new DateTime());
  50.                 $this->manager->persist($contactEntity);
  51.                 $this->manager->flush();
  52.                 return $this->json(true);
  53.             } else {
  54.                 return $this->json(false);
  55.             }
  56.         }
  57.         return $this->render('contact/index.html.twig', [
  58.             'statics' => $this->statics['data'],
  59.             'page' => $page,
  60.             'area' => $area,
  61.             'contactForm' => $contactForm->createView()
  62.         ]);
  63.     }
  64. }