src/Controller/Frontend/SubscriberController.php line 70

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Frontend;
  3. use App\Entity\Subscriber;
  4. use App\Form\SubscriberType;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use ReCaptcha\ReCaptcha;
  9. use App\Entity\Hhrr;
  10. use App\Service\FileUploader;
  11. class SubscriberController extends AbstractController
  12. {
  13.     /**
  14.      *
  15.      * @Route({
  16.      *     "es":"{_locale}/suscripcion-boletin/",
  17.      *     "ca":"{_locale}/subscripcio-botlleti/",
  18.      *     "en":"{_locale}/newsletter-subscription/",
  19.      *     "cn":"{_locale}/newsletter-subscription/",
  20.      * }, name="subscribe",
  21.      *     requirements={
  22.      *          "_locale": "es|ca|en|cn",
  23.      *          "_format" : "html"
  24.      *      })
  25.      */
  26.     public function subscribe(Request $request)
  27.     {
  28.         $template 'Frontend/subscriber/form_ok.html.twig';
  29.         $subscriber = new Subscriber();
  30.         $em $this->getDoctrine()->getManager();
  31.         if ($request->request->all()['subscriber']['email'] && $request->request->all()['g-recaptcha-response']) {
  32.             $recaptcha = new ReCaptcha($_ENV['GOOGLE_RECAPTCHA_SECRET']);
  33.             $resp $recaptcha->verify($request->request->get('g-recaptcha-response'), $request->getClientIp());
  34.             if ($resp->isSuccess()) {
  35.                 if (filter_var($request->request->get('subscriber')['email'], FILTER_VALIDATE_EMAIL)) {
  36.                     if (!$this->getDoctrine()->getRepository(Subscriber::class)->findBy(['subscriber' => $request->request->get('subscriber')['email']])) {
  37.                         $subscriber->setSubscriber($request->request->get('subscriber')['email']);
  38.                         $subscriber->setCodLang($request->getLocale() === 'ca' 'ca' 'es');
  39.                         $em->persist($subscriber);
  40.                         $em->flush();
  41.                     } else {
  42.                         $template 'Frontend/subscriber/form_ko.html.twig';
  43.                     }
  44.                 } else {
  45.                     $template 'Frontend/subscriber/form_ko.html.twig';
  46.                 }
  47.             } else {
  48.                 $template 'Frontend/subscriber/form_ko.html.twig';
  49.             }
  50.         } else {
  51.             $template 'Frontend/subscriber/form_ko.html.twig';
  52.         }
  53.         //        try {
  54.         //            $em = $this->getDoctrine()->getManager();
  55.         //            $eSubscriber = new Subscriber();
  56.         //            $eSubscriber->setSubscriber($request->request->get('subscriber')['email']);
  57.         //            $eSubscriber->setCodLang($request->getLocale() === 'ca' ? 'ca' : 'es');
  58.         //            $em->persist($eSubscriber);
  59.         //            $em->flush();
  60.         //        } catch (\Exception $e) {
  61.         //            
  62.         //        }
  63.         return $this->render($template);
  64.     }
  65.     public function drawForm(Request $request)
  66.     {
  67.         $oForm $this->createForm(SubscriberType::class, null, [
  68.             'url' => $this->generateUrl('subscribe')
  69.         ]);
  70.         return $this->render('Frontend/subscriber/subscriber_form.html.twig', [
  71.             'form' => $oForm->createView()
  72.         ]);
  73.     }
  74.     /**
  75.      *
  76.      * @Route({
  77.      *     "es":"{_locale}/delete-old-subscribers/",
  78.      *     "ca":"{_locale}/delete-old-subscribers/",
  79.      *     "en":"{_locale}/delete-old-subscribers/",
  80.      *     "cn":"{_locale}/delete-old-subscribers/",
  81.      * }, name="deleteSubscribers",
  82.      *     requirements={
  83.      *          "_locale": "es|ca|en|cn",
  84.      *          "_format" : "html"
  85.      *      })
  86.      */
  87.     public function delete(Request $requestFileUploader $fileUploader)
  88.     {
  89.         $numberOfRecords 0;
  90.         $em $this->getDoctrine()->getManager();
  91.         $records $this->getDoctrine()->getRepository(Hhrr::class)->deleteOldSubscribers();
  92.         if ($records) {
  93.             foreach ($records as $record) {
  94.                 $fileUploader->removeAllRecordFiles($record->getId(), 'hhrr');
  95.                 $em->remove($record);
  96.                 $em->flush();
  97.                 $numberOfRecords++;
  98.             }
  99.         }
  100.         die($numberOfRecords ' registros eliminados');
  101.     }
  102. }