src/Controller/Front/EventController.php line 87

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Knp\Component\Pager\PaginatorInterface;
  6. use App\Service\AppServices;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Contracts\Translation\TranslatorInterface;
  9. use Doctrine\DBAL\Connection;
  10. class EventController extends AbstractController {
  11.     /**
  12.      * @Route("/events", name="events")
  13.      */
  14.     public function events(Request $requestPaginatorInterface $paginatorAppServices $servicesTranslatorInterface $translator) {
  15.         $category "all";
  16.         $categorySlug $request->query->get('category') == "" "all" $request->query->get('category');
  17.         $keyword $request->query->get('keyword') == "" "all" $request->query->get('keyword');
  18.         $localonly $request->query->get('localonly') == "" "all" $request->query->get('localonly');
  19.         $country $request->query->get('country') == "" "all" $request->query->get('country');
  20.         $location $request->query->get('location') == "" "all" $request->query->get('location');
  21.         $startdate $request->query->get('startdate') == "" "all" $request->query->get('startdate');
  22.         $freeonly $request->query->get('freeonly') == "" "all" $request->query->get('freeonly');
  23.         $pricemin $request->query->get('pricemin') == "" || $request->query->get('pricemin') == "0" "all" $request->query->get('pricemin');
  24.         $pricemax $request->query->get('pricemax') == "" || $request->query->get('pricemax') == "10000" "all" $request->query->get('pricemax');
  25.         $audience $request->query->get('audience') == "" "all" $request->query->get('audience');
  26.         $organizer $request->query->get('organizer') == "" "all" $request->query->get('organizer');
  27.         $onlineonly $request->query->get('onlineonly') == "" "all" $request->query->get('onlineonly');
  28.         if ($categorySlug != "all") {
  29.             $category $services->getCategories(array("slug" => $categorySlug))->getQuery()->getOneOrNullresult();
  30.             if (!$category) {
  31.                 $this->addFlash('error'$translator->trans('The category can not be found'));
  32.                 return $this->redirectToRoute('events');
  33.             }
  34.         }
  35.         $events $paginator->paginate($services->getEvents(array("category" => $categorySlug'keyword' => $keyword'localonly' => $localonly'country' => $country'location' => $location'startdate' => $startdate'pricemin' => $pricemin'pricemax' => $pricemax'audience' => $audience'organizer' => $organizer'freeonly' => $freeonly'onlineonly' => $onlineonly))->getQuery(), $request->query->getInt('page'1), $services->getSetting("events_per_page"), array('wrap-queries' => true));
  36. // dd($events[0]);
  37.         
  38.         return $this->render('Front/Event/events.html.twig', [
  39.                     'events' => $events,
  40.                     'category' => $category,
  41.         ]);
  42.     }
  43.     /**
  44.      * @Route("/event/{slug}", name="event")
  45.      */
  46.     public function event($slugAppServices $servicesTranslatorInterface $translatorConnection $connection) {
  47.         if ($this->isGranted("ROLE_ADMINISTRATOR")) {
  48.             $event $services->getEvents(array("slug" => $slug"elapsed" => "all""published" => "all"))->getQuery()->getOneOrNullResult();
  49.         } elseif ($this->isGranted("ROLE_ORGANIZER")) {
  50.             $event $services->getEvents(array("slug" => $slug"elapsed" => "all""published" => "all"))->getQuery()->getOneOrNullResult();
  51.             if ($event) {
  52.                 if ($event->getOrganizer() != $this->getUser()->getOrganizer() && $event->getPublished() == false) {
  53.                     $event null;
  54.                 }
  55.             }
  56.         } else {
  57.             $event $services->getEvents(array("slug" => $slug"elapsed" => "all"))->getQuery()->getOneOrNullResult();
  58.         }
  59.         if (!$event) {
  60.             $this->addFlash('error'$translator->trans('The event not be found'));
  61.             return $this->redirectToRoute('events');
  62.         }
  63.         $event->viewed();
  64.         $em $this->getDoctrine()->getManager();
  65.         $em->persist($event);
  66.         $em->flush();
  67.         $sql "SELECT * FROM  chatbot_lists WHERE id = :id";
  68.         $params = ['id' => $event->getChatbotList()];
  69.         $statement $connection->prepare($sql);
  70.         $statement->execute($params);
  71.         $chatbot $statement->fetch();
  72.         return $this->render('Front/Event/event.html.twig', [
  73.             "event" => $event,
  74.             'chatbot_id' => isset($chatbot['chatbot_id']) ? $chatbot['chatbot_id'] : null,
  75.             'api_host' => $_ENV['CHATBOT_APIHOST'],
  76.             'chatbot_flowise' => $_ENV['CHATBOT_FLOWISE'],
  77.         ]);
  78.     }
  79.     /**
  80.      * @Route("/categories", name="categories")
  81.      */
  82.     public function categories() {
  83.         return $this->render('Front/Event/categories.html.twig');
  84.     }
  85. }