src/Controller/MeetTheTeamDefaultController.php line 73

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Annotation\CmsComponent;
  4. use App\Entity\TeamMember;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Knp\Component\Pager\PaginatorInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class MeetTheTeamDefaultController extends AbstractController
  12. {
  13.     /**
  14.      * @CmsComponent("Embed Meet the Team (All)", active=true, routeName="embed_meettheteam")
  15.      *
  16.      * @param mixed $request
  17.      */
  18.     #[Route(path'/cms-meettheteam'name'embed_meettheteam')]
  19.     public function embedTeamOverview(EntityManagerInterface $emPaginatorInterface $paginatorRequest $request): Response
  20.     {
  21.         $perpage 9;
  22.         $query $em->createQuery('SELECT e FROM App:TeamMember e WHERE e.deleted = 0 AND e.active = 1 ORDER BY e.sortOrder ASC');
  23.         $teamMembers $paginator->paginate($query$request->query->getInt('page'1), $perpage);
  24.         return $this->render('@theme/meettheteam/meettheteam.html.twig', [
  25.             'teamMembers' => $teamMembers,
  26.         ]);
  27.     }
  28.     /**
  29.      * @CmsComponent("Embed Meet the Team (Featured)", active=true, routeName="embed_meettheteam_featured")
  30.      *
  31.      * @param mixed $request
  32.      */
  33.     #[Route(path'/cms-meettheteam-featured'name'embed_meettheteam_featured')]
  34.     public function embedFeaturedTeamOverview(EntityManagerInterface $emPaginatorInterface $paginatorRequest $request): Response
  35.     {
  36.         $perpage 9;
  37.         $query $em->createQuery('SELECT e FROM App:TeamMember e WHERE e.deleted = 0 AND e.active = 1 AND e.featured = 1 ORDER BY e.sortOrder ASC');
  38.         $teamMembers $paginator->paginate($query$request->query->getInt('page'1), $perpage);
  39.         return $this->render('@theme/meettheteam/meettheteam-featured.html.twig', ['teamMembers' => $teamMembers]);
  40.     }
  41.     /**
  42.      * @CmsComponent("Embed Team Member", slug="{teammember_slug}", slugEntity="TeamMember", active=true, routeName="embed_teammember")
  43.      *
  44.      * @param mixed $request
  45.      */
  46.     #[Route(path'/cms-meettheteam/{teammember_slug}'name'embed_teammember')]
  47.     public function embedTeamMember(EntityManagerInterface $emRequest $requestmixed $teammember_slug)
  48.     {
  49.         $prev $next null;
  50.         $teamMember $em->getRepository(TeamMember::class)->findOneBy(['slug' => $teammember_slug'deleted' => false'active' => true]);
  51.         if ($this->getParameter('multilingual')) {
  52.             $teamMember $em->getRepository(TeamMember::class)->findSlugWithLocale($teammember_slug$request->getLocale());
  53.         }
  54.         if (!$teamMember) {
  55.             return new Response('Not Found');
  56.         }
  57.         $next $em->getRepository(TeamMember::class)->findNextPublished($teamMember);
  58.         $prev $em->getRepository(TeamMember::class)->findLastPublished($teamMember);
  59.         // dd($prev, $next);
  60.         return $this->render('@theme/meettheteam/embedTeamMember.html.twig', [
  61.             'teamMember' => $teamMember,
  62.             'prev' => $prev,
  63.             'next' => $next,
  64.         ]);
  65.     }
  66. }