src/Controller/ActualiteController.php line 44

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\HttpFoundation\JsonResponse;
  4. use App\Entity\Event;
  5. use Symfony\Component\Mailer\MailerInterface;
  6. use Symfony\Component\Mime\Email;
  7. use App\Entity\EventFav;
  8. use App\Entity\NewsLetterUser;
  9. use App\Form\NewsletterType;
  10. use App\Form\SearchEventType;
  11. use App\Repository\CompanyRepository;
  12. use App\Repository\EventRepository;
  13. use App\Repository\NewsRepository;
  14. use App\Repository\SucessStoryRepository;
  15. use App\Repository\CoupDeProjecteurRepository;
  16. use Doctrine\Common\Collections\ArrayCollection;
  17. use Doctrine\ORM\EntityManagerInterface;
  18. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  19. use Symfony\Component\HttpFoundation\Response;
  20. use Symfony\Component\Routing\Annotation\Route;
  21. use Symfony\Component\HttpFoundation\Request;
  22. class ActualiteController extends AbstractController
  23. {
  24.     /**
  25.      * @Route("/{_locale<en|fr|de|it|es>}/actualites", name="actualites")
  26.      */
  27.     public function searchevent(
  28.         Request $request,
  29.         EventRepository $eventRepository,
  30.         NewsRepository $NewsRepository,
  31.         SucessStoryRepository $sucessStoryRepository,
  32.         CoupDeProjecteurRepository $coupDeProjecteurRepository,
  33.         CompanyRepository $companyRepository,
  34.         EntityManagerInterface $em
  35.     ) {
  36.         $em $this->getDoctrine()->getManager();
  37.         $user $this->getUser();
  38.         $date = (new \DateTime());
  39.         $eventsFav $em->getRepository(EventFav::class)->findBy(['user' => $user]);
  40.         $UpcomingeventsFav = new ArrayCollection();
  41.         $LastEventsFav = new ArrayCollection();
  42.         foreach ($eventsFav as $ev) {
  43.             if ($ev->getEvent()->getstartingDate() > $date) {
  44.                 $UpcomingeventsFav[] = $ev->getEvent();
  45.             } else {
  46.                 $LastEventsFav[] = $ev->getEvent();
  47.             }
  48.         }
  49.         // test
  50.         $News $NewsRepository->findAll();
  51.         $sucessStory $sucessStoryRepository->findAll();
  52.         $coupDeProjecteur $coupDeProjecteurRepository->findAll();
  53.         // $company = $companyRepository->findAll();
  54.         $events = [];
  55.         $output $eventRepository->findSixComingEvents($date);
  56.         $Sixlastevents array_slice($output06);
  57.         $SixPassedEvents $eventRepository->findSixPassedEvents($date);
  58.         $x 0;
  59.         $searchEventForm $this->createForm(SearchEventType::class);
  60.         if ($searchEventForm->handleRequest($request)->isSubmitted() && $searchEventForm->isValid()) {
  61.             $criteria $searchEventForm->getData();
  62.             $events $eventRepository->searchEventAdvanced($criteria);
  63.             $x 1;
  64.         }
  65.         $newLetterUser = new NewsLetterUser();
  66.         $newsLettersForm $this->createForm(NewsletterType::class, $newLetterUser);
  67.         $newsLettersForm->handleRequest($request);
  68.         return $this->render(
  69.             'actualite/actualites.html.twig',
  70.             array(
  71.                 'searchEventForm' => $searchEventForm->createView(),
  72.                 'newsLettersForm' => $newsLettersForm->createView(),
  73.                 'SixPassedEvents' => $SixPassedEvents,
  74.                 'SixUpcomingevents' => $Sixlastevents,
  75.                 'events' => $events,
  76.                 'news' => $News,
  77.                 'sucessStory' => $sucessStory,
  78.                 'coupDeProjecteur' => $coupDeProjecteur,
  79.                 'UpcomingeventsFav' => $UpcomingeventsFav,
  80.                 'LastEventsFav' => $LastEventsFav,
  81.                 //'x'=>$x,
  82.                 // 'companies' => $company
  83.             )
  84.         );
  85.     }
  86.     /**
  87.      * @Route("/{_locale<en|fr|de|it|es>}/subscribe-newsletter", name="subscribe_newsletter", methods={"POST"})
  88.      */
  89.     public function subscribeNewsletter(
  90.         Request $request,
  91.         EntityManagerInterface $em,
  92.         MailerInterface $mailer
  93.     ) {
  94.         $newLetterUser = new NewsLetterUser();
  95.         $newsLettersForm $this->createForm(NewsletterType::class, $newLetterUser, [
  96.             'csrf_protection' => false
  97.         ]);
  98.         $newsLettersForm->handleRequest($request);
  99.         if ($newsLettersForm->isSubmitted() && $newsLettersForm->isValid()) {
  100.             $em->persist($newLetterUser);
  101.             $em->flush();
  102.             $email = (new Email())
  103.                 ->from('contact@sustlivprogram.org')
  104.                 ->to($newLetterUser->getMail())
  105.                 ->subject('Subscription to Newsletter Successful')
  106.                 ->text('Thank you for subscribing to our newsletter!');
  107.             $mailer->send($email);
  108.             return new JsonResponse(['success' => true]);
  109.         }
  110.         return new JsonResponse(['success' => false]);
  111.         $this->addFlash('error''Subscription failed. Please try again.');
  112.         return $this->redirect($request->headers->get('referer'));
  113.     }
  114.     /**
  115.      * @Route("/{_locale<en|fr|de|it|es>}/actualites1(Favoris)", name="actualite(Favoris)")
  116.      */
  117.     public function searcheventfav(Request $requestEventRepository $eventRepositoryNewsRepository $NewsRepositorySucessStoryRepository $sucessStoryRepositoryCoupDeProjecteurRepository $coupDeProjecteurRepository)
  118.     {
  119.         $em $this->getDoctrine()->getManager();
  120.         $user $this->getUser();
  121.         $date = (new \DateTime());
  122.         $eventsFav $em->getRepository(EventFav::class)->findBy(['user' => $user]);
  123.         $AllUpcomingeventsFav = new ArrayCollection();
  124.         $AllLastEventsFav = new ArrayCollection();
  125.         foreach ($eventsFav as $ev) {
  126.             if ($ev->getEvent()->getstartingDate() > $date) {
  127.                 $AllUpcomingeventsFav[] = $ev->getEvent();
  128.             } else {
  129.                 $AllLastEventsFav[] = $ev->getEvent();
  130.             }
  131.         }
  132.         $UpcomingeventsFav $AllUpcomingeventsFav->slice(05);
  133.         $LastEventsFav $AllLastEventsFav->slice(05);
  134.         $News $NewsRepository->findAll();
  135.         $sucessStory $sucessStoryRepository->findAll();
  136.         $coupDeProjecteur $coupDeProjecteurRepository->findAll();
  137.         $events = [];
  138.         $output $em->getRepository(Event::class)->findSixComingEvents($date);
  139.         $Sixlastevents array_slice($output06);
  140.         $SixPassedEvents $em->getRepository(Event::class)->findSixPassedEvents($date);
  141.         $x 0;
  142.         $searchEventForm $this->createForm(SearchEventType::class);
  143.         if ($searchEventForm->handleRequest($request)->isSubmitted() && $searchEventForm->isValid()) {
  144.             $criteria $searchEventForm->getData();
  145.             $events $eventRepository->searchEventAdvanced($criteria);
  146.             $x 1;
  147.         }
  148.         return $this->render(
  149.             'page/actualitesFav.html.twig',
  150.             array(
  151.                 'searchEventForm' => $searchEventForm->createView(),
  152.                 'SixPassedEvents' => $SixPassedEvents,
  153.                 'SixUpcomingevents' => $Sixlastevents,
  154.                 'events' => $events,
  155.                 'news' => $News,
  156.                 'sucessStory' => $sucessStory,
  157.                 'coupDeProjecteur' => $coupDeProjecteur,
  158.                 'UpcomingeventsFav' => $UpcomingeventsFav,
  159.                 'LastEventsFav' => $LastEventsFav,
  160.                 'x' => $x
  161.             )
  162.         );
  163.     }
  164.     /**
  165.      * @Route("/{_locale<en|fr|de|it|es>}/actualites/{id}", name="actualites_id")
  166.      */
  167.     public function actualites2($idNewsRepository $NewsRepository)
  168.     {
  169.         $actualite $NewsRepository->find($id);
  170.         return $this->render('actualite/actualites_page2.html.twig', [
  171.             "actualite" => $actualite
  172.         ]);
  173.     }
  174. }