src/Controller/EventController.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Pimcore\Controller\FrontendController;
  4. use Pimcore\Model\DataObject;
  5. use Pimcore\Model\DataObject\Event;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use App\Website\LinkGenerator\EventLinkGenerator;
  11. use App\Website\LinkGenerator\ResourceLinkGenerator;
  12. use App\Website\Navigation\BreadcrumbHelperService;
  13. use Knp\Component\Pager\PaginatorInterface;
  14. use Pimcore\Twig\Extension\Templating\HeadTitle;
  15. use Pimcore\Twig\Extension\Templating\Placeholder;
  16. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  17. use Symfony\Component\Routing\Annotation\Route;
  18. use Elasticsearch\Client;   
  19. class EventController extends BaseController
  20. {
  21.     const EVENT_DEFAULT_DOCUMENT_PROPERTY_NAME 'event_default_document';
  22.   
  23.      /**
  24.      * @param Request $request
  25.      *
  26.      * @return Response
  27.      *
  28.      * @throws \Exception
  29.      */
  30.      public function listingAction(Request $requestPaginatorInterface $paginator)
  31.     {
  32.         $eventListing = new Event\Listing();
  33.         $eventListing->setOrderKey('from_time');
  34.         $eventListing->setOrder('DESC');
  35.         $paginator $paginator->paginate(
  36.             $eventListing,
  37.             $request->get('page'1),
  38.             6
  39.         );
  40.         return $this->render('event/listing.html.twig', [
  41.             'eventListing' => $paginator,
  42.             'paginationVariables' => $paginator->getPaginationData()
  43.         ]);
  44.       //  return $this->render('event/listing.html.twig', ['eventListing' => $eventListing]);
  45.     }
  46.      /**
  47.      * @param Request $request
  48.      *
  49.      * @return Response
  50.      *
  51.      * @throws \Exception
  52.      */
  53.     public function listingDividedAction(Request $requestPaginatorInterface $paginator)
  54.     {
  55.         $eventList = new Event\Listing();
  56.         $eventList->setOrderKey('from_time');
  57.         $eventList->setOrder('ASC');
  58.         $eventList->setCondition("from_time > ?", [time()]);
  59.         $eventListPast = new Event\Listing();
  60.         $eventListPast->setOrderKey('from_time');
  61.         $eventListPast->setOrder('DESC');
  62.         $eventListPast->setCondition("from_time < ?", [time()]);
  63.         $paginator $paginator->paginate(
  64.             $eventListPast,
  65.             $request->get('page'1),
  66.             6
  67.         );
  68.         return $this->render('event/listing.html.twig', [
  69.             'eventList' => $eventList,
  70.             'eventListPast' => $paginator,
  71.             'paginationVariables' => $paginator->getPaginationData()
  72.         ]);
  73.       //  return $this->render('event/listing.html.twig', ['eventListing' => $eventListing]);
  74.     }
  75.          /**
  76.      * @param Request $request
  77.      *
  78.      * @return Response
  79.      *
  80.      * @throws \Exception
  81.      */
  82.     public function listEventsAction(Request $requestPaginatorInterface $paginator)
  83.     {
  84.         $training $request->query->get('training');
  85.         $past $request->query->get('past');
  86.         $eventList = new Event\Listing();
  87.         if (!$past) {
  88.         $eventList->setOrderKey('from_time');
  89.         $eventList->setOrder('ASC');
  90.         $eventList->setCondition("to_time > ?", [time()]);
  91.         } else {
  92.             $eventList->setOrderKey('from_time');
  93.             $eventList->setOrder('DESC');
  94.         }
  95.         if ($training) {
  96.         $eventList->addConditionParam("is_training = ?"1"AND"); 
  97.     }
  98.       
  99.              $paginator $paginator->paginate(
  100.             $eventList,
  101.             $request->get('page'1),
  102.             6
  103.         );
  104.         return $this->render('event/listing.html.twig', [
  105.             'eventList' => $paginator,
  106.             'eventListPast' => null,
  107.             'paginationVariables' => $paginator->getPaginationData(),
  108.             'training' => $training,
  109.             'past' => $past
  110.         ]);
  111.       //  return $this->render('event/listing.html.twig', ['eventListing' => $eventListing]);
  112.     }
  113.     /**
  114.       * @Route("{path}/{eventtitle}-eid{event}", name="event-detail", defaults={"path"=""}, requirements={"path"=".*?", "eventtitle"="[\w-]+", "event"="\d+"})
  115.      *
  116.      * @param Request $request
  117.      * @param HeadTitle $headTitleHelper
  118.      * @param Placeholder $placeholderHelper
  119.      * @param EventLinkGenerator $eventLinkGenerator
  120.      * @param BreadcrumbHelperService $breadcrumbHelperService
  121.      *
  122.      * @return Response
  123.      */
  124.     public function detailAction(Request $requestHeadTitle $headTitleHelperPlaceholder $placeholderHelperEventLinkGenerator $eventLinkGeneratorBreadcrumbHelperService $breadcrumbHelperService)
  125.     {
  126.         $event Event::getById($request->get('event'));
  127.         //$event = Event::getById(4);
  128.         $training $request->query->get('training');
  129.         $past $request->query->get('past');
  130.         if (!($event instanceof Event && ($event->isPublished() || $this->verifyPreviewRequest($request$event)))) {
  131.             throw new NotFoundHttpException('Event not found.');
  132.         }
  133.         $langOptions DataObject\Service::getOptionsForSelectField($event"lang");
  134.         $headTitleHelper($event->getTitle());
  135.         $breadcrumbHelperService->enrichEventPage($event);
  136.         $placeholderHelper('canonical')->set($eventLinkGenerator->generate($event, ['document' => $this->document->getProperty(self::EVENT_DEFAULT_DOCUMENT_PROPERTY_NAME)]));
  137.         return $this->render('event/detail.html.twig', [
  138.             'event' => $event,
  139.             'langOptions' => $langOptions,
  140.             'training' => $training,
  141.             'past' => $past
  142.         ]);
  143.     }
  144.     /**
  145.       * @Route("/filtertest", methods={"GET","POST"})
  146.      *
  147.      * @param Request $request
  148.      * 
  149.      * @return Response
  150.      *
  151.      * @throws \Exception
  152.      */
  153. }