src/Controller/EventsArticleController.php line 60

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\EventsPageFrequencyInstance;
  4. use App\Entity\Pages\EventsPage;
  5. use App\Repository\EventsPageFrequencyInstanceRepository;
  6. use App\Repository\EventsPageRepository;
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. use Doctrine\ORM\PersistentCollection;
  9. use Gedmo\Tree\RepositoryInterface;
  10. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  11. use Symfony\Component\HttpFoundation\RedirectResponse;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Pagerfanta\Adapter\ArrayAdapter;
  14. use Pagerfanta\Exception\OutOfRangeCurrentPageException;
  15. use Pagerfanta\Pagerfanta;
  16. class EventsArticleController extends Controller
  17. {
  18.     public function serviceAction(Request $request)
  19.     {
  20.         $em $this->getDoctrine()->getManager();
  21.         $searchCategory $request->get('category') ? explode(','$request->get('category')) : null;
  22.         $searchTag $request->get('tag') ? explode(','$request->get('tag')) : null;
  23.         $pageRepository $em->getRepository(EventsPage::class);
  24.         $result $pageRepository->getArticles($request->getLocale(), nullnull$searchCategory$searchTag);
  25.         // Filter the results for this page
  26.         $adapter = new ArrayAdapter($result);
  27.         $pagerfanta = new Pagerfanta($adapter);
  28.         $pagerfanta->setMaxPerPage(10);
  29.         $pagenumber = (int)$request->get('page');
  30.         if (!$pagenumber || $pagenumber 1) {
  31.             $pagenumber 1;
  32.         }
  33.         try {
  34.             $pagerfanta->setCurrentPage($pagenumber);
  35.         } catch (OutOfRangeCurrentPageException $oore) {
  36.             $repo $em->getRepository('KunstmaanNodeBundle:NodeTranslation');
  37.             $nt $repo->getNodeTranslationByLanguageAndInternalName($request->getLocale(), 'events');
  38.             $url $nt $nt->getUrl() : '';
  39.             $url $this->get('router')->generate('_slug', array('url' => $url'_locale' => $request->getLocale()));
  40.             return new RedirectResponse($url);
  41.         }
  42.         // Add events post url's
  43.         $results $pagerfanta->getCurrentPageResults();
  44.         $context['results'] = $results;
  45.         $context['pagerfanta'] = $pagerfanta;
  46.         $context['nodeTranslation'] = $request->attributes->get('_nodeTranslation');
  47.         $request->attributes->set('_renderContext'$context);
  48.     }
  49.     public function lastEvents(Request $request$limit 12$node null, array $sports = [])
  50.     {
  51.         $em $this->getDoctrine()->getManager();
  52.         /** @var EventsPageRepository $pageRepository */
  53.         $pageRepository $em->getRepository('App:Pages\EventsPage');
  54.         /** @var EventsPageFrequencyInstanceRepository $pageInsRepository */
  55.         $pageInsRepository $em->getRepository(EventsPageFrequencyInstance::class);
  56.         $latestEventsIns $pageInsRepository->getLastEvents($request->getLocale(), null$limit$sports);
  57. //        dd($latestEventsIns);
  58. //        $result = $pageRepository->getLatestEvents($request->getLocale(), null, $limit, $sports);
  59.         return $this->render(
  60.             'Events/view.html.twig',
  61.             array(
  62.                 'eventsInstances' => $latestEventsIns,
  63.                 'node' => $node
  64.             )
  65.         );
  66.     }
  67. }