src/Controller/MeetTheTeamDefaultController.php line 39

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", active=true, routeName="embed_meettheteam")
  15. *
  16. * @param mixed $request
  17. */
  18. #[Route(path: '/pcgc-meettheteam', name: 'embed_meettheteam')]
  19. public function embedTeamOverview(EntityManagerInterface $em, PaginatorInterface $paginator, Request $request): Response
  20. {
  21. $perpage = 10;
  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 Featured Team Members", active=true, routeName="embed_featuredteammembers")
  30. *
  31. * @param mixed $request
  32. */
  33. #[Route(path: '/pcgc-featuredteammembers', name: 'embed_featuredteammembers')]
  34. public function embedFeaturedTeamMembers(EntityManagerInterface $em, Request $request): Response
  35. {
  36. $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');
  37. $teamMembers = $query->getResult();
  38. return $this->render('@theme/meettheteam/featuredTeamMembers.html.twig', [
  39. 'teamMembers' => $teamMembers,
  40. ]);
  41. }
  42. /**
  43. * @CmsComponent("Embed Team Member", slug="{teammember_slug}", slugEntity="TeamMember", active=true, routeName="embed_teammember")
  44. *
  45. * @param mixed $request
  46. */
  47. #[Route(path: '/pcgc-meettheteam/{teammember_slug}', name: 'embed_teammember')]
  48. public function embedTeamMember(EntityManagerInterface $em, Request $request, mixed $teammember_slug)
  49. {
  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. return $this->render('@theme/meettheteam/embedTeamMember.html.twig', [
  58. 'teamMember' => $teamMember,
  59. ]);
  60. }
  61. }