<?php
namespace App\Controller;
use App\Annotation\CmsComponent;
use App\Entity\TeamMember;
use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class MeetTheTeamDefaultController extends AbstractController
{
/**
* @CmsComponent("Embed Meet the Team (All)", active=true, routeName="embed_meettheteam")
*
* @param mixed $request
*/
#[Route(path: '/cms-meettheteam', name: 'embed_meettheteam')]
public function embedTeamOverview(EntityManagerInterface $em, PaginatorInterface $paginator, Request $request): Response
{
$perpage = 9;
$query = $em->createQuery('SELECT e FROM App:TeamMember e WHERE e.deleted = 0 AND e.active = 1 ORDER BY e.sortOrder ASC');
$teamMembers = $paginator->paginate($query, $request->query->getInt('page', 1), $perpage);
return $this->render('@theme/meettheteam/meettheteam.html.twig', [
'teamMembers' => $teamMembers,
]);
}
/**
* @CmsComponent("Embed Meet the Team (Featured)", active=true, routeName="embed_meettheteam_featured")
*
* @param mixed $request
*/
#[Route(path: '/cms-meettheteam-featured', name: 'embed_meettheteam_featured')]
public function embedFeaturedTeamOverview(EntityManagerInterface $em, PaginatorInterface $paginator, Request $request): Response
{
$perpage = 9;
$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');
$teamMembers = $paginator->paginate($query, $request->query->getInt('page', 1), $perpage);
return $this->render('@theme/meettheteam/meettheteam-featured.html.twig', ['teamMembers' => $teamMembers]);
}
/**
* @CmsComponent("Embed Team Member", slug="{teammember_slug}", slugEntity="TeamMember", active=true, routeName="embed_teammember")
*
* @param mixed $request
*/
#[Route(path: '/cms-meettheteam/{teammember_slug}', name: 'embed_teammember')]
public function embedTeamMember(EntityManagerInterface $em, Request $request, mixed $teammember_slug)
{
$prev = $next = null;
$teamMember = $em->getRepository(TeamMember::class)->findOneBy(['slug' => $teammember_slug, 'deleted' => false, 'active' => true]);
if ($this->getParameter('multilingual')) {
$teamMember = $em->getRepository(TeamMember::class)->findSlugWithLocale($teammember_slug, $request->getLocale());
}
if (!$teamMember) {
return new Response('Not Found');
}
$next = $em->getRepository(TeamMember::class)->findNextPublished($teamMember);
$prev = $em->getRepository(TeamMember::class)->findLastPublished($teamMember);
// dd($prev, $next);
return $this->render('@theme/meettheteam/embedTeamMember.html.twig', [
'teamMember' => $teamMember,
'prev' => $prev,
'next' => $next,
]);
}
}