src/Controller/SubscribeController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Subscribe;
  4. use App\Form\SubscribeType;
  5. use App\Repository\SubscribeRepository;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use App\Service\MailTransport;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\Mime\Email;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\Mailer\MailerInterface;
  13. use PHPMailer\PHPMailer\PHPMailer;
  14. use PHPMailer\PHPMailer\SMTP;
  15. use PHPMailer\PHPMailer\Exception;
  16. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  17. class SubscribeController extends AbstractController
  18. {
  19.     #[Route('/inscription-newsletter'name'app_subscribe_newsletter')]
  20.     public function subscribe(Request $requestSubscribeRepository $subscribeRepositoryEntityManagerInterface $entityManager)
  21.     {
  22.         $subscriber= new Subscribe();
  23.         $formSubscrible $this->createForm(SubscribeType::class, $subscriber);
  24.         $formSubscrible->handleRequest($request);
  25.         if ($formSubscrible->isSubmitted() && $formSubscrible->isValid()) {
  26.             $existSubscriber $subscribeRepository->findOneByEmail($subscriber->getEmail());
  27.             if ($existSubscriber && $existSubscriber->isIsActive() == true) {
  28.                 $this->addFlash('danger'"Vous avez déjà souscrit à notre newsletter avec cet email.");
  29.                 return $this->redirectToRoute('app_home_studio');
  30.             } else if ($existSubscriber && $existSubscriber->isIsActive() == false){
  31.                 $existSubscriber->setIsActive(true);
  32.                 $existSubscriber->setToken($request->request->get('subscribe')['_token']);
  33.                 $entityManager->persist($existSubscriber);
  34.                 $entityManager->flush();
  35.                 $this->addFlash('success'"Merci d'avoir souscrit à notre newsletter.");
  36.                 return $this->redirectToRoute('app_home_studio');
  37.             } else {
  38.                 $subscriber->setToken($request->request->get('subscribe')['_token']);
  39.                 $subscriber->setIsActive(true);
  40.                 $entityManager->persist($subscriber);
  41.                 $entityManager->flush();
  42.                 $this->addFlash('success'"Merci d'avoir souscrit à notre newsletter.");
  43.                 return $this->redirectToRoute('app_home_studio');
  44.             }
  45.         }
  46.         return $this->render('footer.html.twig', [
  47.             'subscribe_form' => $formSubscrible->createView()]);
  48.     }
  49.     #[Route('/desinscription-newsletter/{email-newsletter}/{token-newsletter}'name'app_unsubscribe_newsletter')]
  50.     public function unsubscribe(Request $request)
  51.     {
  52.         $form $this->createForm(ContactType::class);
  53.         $form->handleRequest($request);
  54.         if ($form->isSubmitted() && $form->isValid()) {
  55.             return $this->render('contact/index.html.twig', [
  56.                 'contact_form' => $form->createView()
  57.             ]);
  58.         }
  59.     }
  60. }