src/Controller/Front/Core/CoreController.php line 74

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front\Core;
  3. use App\Entity\Events\Events;
  4. use App\Form\Front\FilterType;
  5. use App\Form\Front\RegisterType;
  6. use DateTime;
  7. use Doctrine\DBAL\Schema\View;
  8. use Exception;
  9. use Symfony\Bundle\FrameworkBundle\Console\Application;
  10. use Symfony\Component\Console\Input\ArrayInput;
  11. use Symfony\Component\Console\Output\BufferedOutput;
  12. use Symfony\Component\HttpFoundation\JsonResponse;
  13. use Symfony\Component\HttpFoundation\RedirectResponse;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use Symfony\Component\HttpFoundation\Session\Session;
  16. use Symfony\Component\HttpKernel\KernelInterface;
  17. use Symfony\Component\Routing\Annotation\Route;
  18. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  19. use Symfony\Component\HttpFoundation\Request;
  20. use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
  21. /**
  22.  * DashboardController
  23.  *
  24.  * @author Florian THUBÉ <florian@felix-creation.fr>
  25.  */
  26. class CoreController extends AbstractController
  27. {
  28.     /**
  29.      * Run socket
  30.      *
  31.      * @Route("/run-socket", methods={"GET"}, name="run_socket")
  32.      *
  33.      * @param Request $request
  34.      * @param KernelInterface $kernel
  35.      * @return RedirectResponse
  36.      * @throws Exception
  37.      */
  38.     public function runSocket(Request $requestKernelInterface $kernel)
  39.     {
  40.         $application = new Application($kernel);
  41.         $application->setAutoExit(false);
  42.         $input = new ArrayInput([
  43. //            'command' => 'fos:js-routing:debug'
  44.             'command' => 'run:websocket-server'
  45.         ]);
  46.         // You can use NullOutput() if you don't need the output
  47.         $output = new BufferedOutput();
  48.         $application->run($input$output);
  49.         // return the output, don't use if you used NullOutput()
  50.         $session = new Session();
  51.         $session->getFlashBag()->add('command'$output->fetch());
  52.         return $this->redirect($request->headers->get('referer'));
  53.     }
  54.     /**
  55.      * @Route("/", methods={"GET", "POST"}, name="homepage") *
  56.      *
  57.      * @param Request $request
  58.      *
  59.      * @return Response
  60.      */
  61.     public function index(Request $request)
  62.     {
  63.         $form $this->createForm(FilterType::class);
  64.         return $this->render('front/core/homepage.html.twig', [
  65.             'form' => $form->createView(),
  66.         ]);
  67.     }
  68.     public function slider(Request $request)
  69.     {
  70.         $manager $this->getDoctrine();
  71.         $events $manager->getRepository(Events::class)->findBy(array('popular' => true));
  72.         return $this->render('front/core/slider.html.twig', [
  73.             'events' => $events
  74.         ]);
  75.     }
  76.     public function featured(Request $request)
  77.     {
  78.         $manager $this->getDoctrine();
  79.         $events $manager->getRepository(Events::class)->findBy(array('featured' => true));
  80.         return $this->render('front/core/featured.html.twig', [
  81.             'events' => $events
  82.         ]);
  83.     }
  84.     /**
  85.      * @Route("/events", methods={"GET", "POST"}, name="page_events")
  86.      *
  87.      * @param Request $request
  88.      *
  89.      * @return Response
  90.      */
  91.     public function page_events(Request $request)
  92.     {
  93.         $manager $this->getDoctrine();
  94.         $events $manager->getRepository(Events::class)->findAll();
  95.         $form $this->createForm(FilterType::class);
  96.         return $this->render('front/core/page_events.html.twig', [
  97.             'form' => $form->createView(),
  98.             'events' => $events
  99.         ]);
  100.     }
  101.     /**
  102.      * @Route("/events/filter", methods={"GET", "POST"}, name="page_events_list", options={"expose"=true})
  103.      *
  104.      * @param Request $request
  105.      *
  106.      * @return JsonResponse
  107.      * @throws Exception
  108.      */
  109.     public function page_events_list(Request $request)
  110.     {
  111.         $manager $this->getDoctrine();
  112.         $datas = array();
  113.         parse_str($request->get('data'), $datas);
  114.         $parsedArray $datas['filter'];
  115.         unset($parsedArray['_token']);
  116.         //REMOVE USELESS ELEM
  117.         foreach($parsedArray as $key => $elem){
  118.             if($elem == ""){
  119.                 unset($parsedArray[$key]);
  120.             }
  121.         }
  122.         if(isset($parsedArray['date_begin'])){
  123.             $parsedArray['date_begin'] = new DateTime($parsedArray['date_begin']);
  124.         }
  125.         $events $manager->getRepository(Events::class)->findByFilter($parsedArray);
  126.         return new JsonResponse([
  127.             'success' => true,
  128.             'code' => 202,
  129.             'message' => $this->render('front/core/page_events_list.html.twig', [
  130.                 'events' => $events
  131.             ])->getContent()
  132.         ]);
  133.     }
  134. }